Jump to content

Error codes in Pawn


Recommended Posts

Geplaatst: (bewerkt)

Omdat ik de laatste tijd veel topics zie met errors die makkelijk te fixen zijn, zal ik hier een paar "basis" errors neerzetten en hoe je die kan fixen en in de toekomst kan voorkomen.

We onderscheiden 3 soorten errors:

  • Fatal Errors (100 - 199)
  • Errors (1 - 99)
  • Warnings (200 - 299)

Ik ga hier niet alle errors en warnings neerzetten (moet je nagaan hoeveel werk dat is), alleen diegene die het meest voorkomen.


Fatal Errors.

Fatal Error 100: Can not read from file <file>

Fatale Fout 100: Kan niet lezen van bestand <bestand>

Deze komt vaak voor als je niet de benodigde include bestanden hebt voor een script. Zonder de juist includes kan je script niet compilen.

Vaak gaat het hier om dini of dutils of andere bekende includes.

Download:

Fatal Error 107: Too many error messages on one line

Fatale Fout 107: Te veel fouten op eén lijn

Druk op CTRL+G en typ het nummer van de lijn in waar de error zit. Vaak gaat het hier gepaard met andere soorten errors, als je die fixt, verdwijnt deze ook.


Errors

Error 001: Expected token: "token", but found "token"

Fout 001: Verwacht teken: "teken", maar gevonden "teken"

Je bent hoogstwaarschijnlijk vergeten een regel af te sluiten met een ')' en/of ';'

Error 017: Undefined symbol "symbol"

Fout 017: Symbool niet gedefiniëerd "symbool"

De variabele die je gebruikt hebt om een waarde/string in op te slaan is niet gedefiniëerd. Met andere woorden, je hebt nergens 'new symbool' staan. Meestal gaat het hier om een string om tekst in op te slaan.

Het eenvoudigste wat je kan doen, is gewoon een globale variabele aanmaken voor alle tekst die in de chat moeten worden verzonden.

// Bovenaan je script
new gString[128];

Error 021: Symbol already defined: "symbol"

Fout 021: Symbool werd al gedefiniëerd: "symbol"

Je hebt tweemaal een symbool met dezelfde naam, haal er een weg of hernoem er een. Indien het gaat om een callback, moet je die twee callbacks samenvoegen.

Error 030: Compound statement not closed at the end of file

samengestelde verklaring niet gesloten op het einde van het bestand

Onverwacht einde van het bestand. Een of meer samengestelde verklaringen zijn nog niet voltooid.

Dit wil zeggen dat het afsluitende haakje "}" niet kon worden gevonden.

Error 033: Array must be indexed (variabele "var")

Fout 033: Array moet geïndexeerd zijn (variabele "var")

Makkelijk op te lossen door je symbool aan te passen: new var[128];


Warnings

Warning 202: Number of arguments does not match definition

Waarschuwing 202: aantal argumenten komt niet overeen met declaratie

Deze komt voor als je foutief gebruikt maak van een functie/callback. Bijvoorbeeld:

SendClientMessage(playerid, "message"); // kleur ontbreekt, warning 202

Warning 203: Symbol is never used:"symbol"

Waarschuwing 203: Symbool is nooit gebruikt: "symbol"

Je hebt ergens een new symbol staan die nergens in je script gebruikt wordt. Als je er geen gebruik van gaat maken, kun je die het beste verwijderen.

Warning 217: Loose indentation

Waarschuwing 217: Verkeerde indentatie

Makkelijke manier om dit op te lossen (raad ik niet aan omdat je script zo erg onoverzichtelijk wordt en/of mogelijk niet meer goed werkt):

// Bovenaan
#pragma tabsize 0

Je code is niet goed geïndent. Na elke '{' spring je 4 spaties (1 tab) in, en na elke '}' ga je dat weer terug. Bijvoorbeeld:

// Fout:
public Functie()
{
anderefunctie();
noganderefunctie();
return 1;
}

// Goed:
public Functie()
{
anderefunctie();
noganderefunctie();
return 1;
}

Warning 225: Unreachable code

Waarschuwing 225: Onbereikbare code

Komt voor als de code nooit kan uitgevoerd worden. Oplossing: Code weghalen.

Bijvoorbeeld:

public Functie()
{
if(iets == true)
{
	// code
	return 1;
}
else
{
	// andere code
	return 1;
}
return 1; // <= Unreachable code
}

Warning 235: Public function lacks forward declaration

Waarschuwing 235: Public funtions hebben een forward declaratie nodig

Je hebt ergens een nieuwe public aangemaakt, maar hem niet geforwarded (bv. forward OnPropertyUpdate();)


Indien je wilt dat ik een error expliciet uitleg, plaats dan de error in dit topic.

Dit topic wordt nog geüpdate! (Sticky? :puh: )

Bewerkt: door Big Boss
  • Reacties 33
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Big Boss

    4

  • dmbekker

    4

  • Crusher!!

    3

  • 007 Harings

    3

Geplaatst:

Goeie zet :puh:.

maar errors / warns ficksen is meestal wel makkelijk, want het staat er precies <line> <error>

maar ik heb er nog een paar die je kan toevoegen:

warning 203: symbol is never used: "Hoi"
warning 202: number of arguments does not match definition
warning 235: public function lacks forward declaration (symbol "OnPlayerHoi")

Geplaatst:

Who,

Dit is erg handig,

Vroeger toen ik zo'n error had zocht ik het op op google.

Maar dan krijg je een script waar die error ergens in zit, zonder duidelijke oplosing,

De meeste errors weet ik nu wel te fixen maar ik zie wel iets dat mischien kan helpen bij een van mijn filterscripts ook al geeft het geen error aan.

  • 1 maand later...
Geplaatst:

Ik heb telkens last van deze error:

C:\Documents and Settings\Eigenaar\Bureaublad\SAMP\filterscripts\jobsystem.pwn(254) : error 030: compound statement not closed at the end of file (started at line 245)

Wat kan ik hieraan doen??

Geplaatst:

Ik heb telkens last van deze error:

C:\Documents and Settings\Eigenaar\Bureaublad\SAMP\filterscripts\jobsystem.pwn(254) : error 030: compound statement not closed at the end of file (started at line 245)

Wat kan ik hieraan doen??

Je bent ergens een } vergeten, in de buurt van regel 254.

  • 1 maand later...
Geplaatst:

Ik heb het volgende probleem ik wil een teleport maken en ik krijg de volgende errors:

C:\Documents and Settings\Gebruiker\Mijn documenten\Eigen server script\Untitled.pwn(40) : error 029: invalid expression, assumed zero

C:\Documents and Settings\Gebruiker\Mijn documenten\Eigen server script\Untitled.pwn(40) : error 029: invalid expression, assumed zero

C:\Documents and Settings\Gebruiker\Mijn documenten\Eigen server script\Untitled.pwn(40) : error 017: undefined symbol "cmdtext"

C:\Documents and Settings\Gebruiker\Mijn documenten\Eigen server script\Untitled.pwn(40) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

4 Errors.

public OnGameModeInit()

{

// Don't use these lines if it's a filterscript

SetGameModeText("Blank Script");

AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

// Teleport

if (new strcmp("/gotoroof", new cmdtext, true, 10) == 0)

{

SetPlayerPos(playerid,(1,1564.9501,-1666.9240,28.3956,177.3533,0,0,0,0,0,0);

SendClientMessage(playerid, COLOR_GREEN, "You're succesfully teleported to the roof.");

// Teleport 2

if (new strcmp("/gotogarage", new cmdtext, true, 10) == 0)

{

SetPlayerPos(playerid,(1,1568.6327,-1690.0637,6.2188,352.1397,0,0,0,0,0,0);

SendClientMessage(playerid, COLOR_GREEN, "You're succesfully teleported to the garage.");

return 1;

}

Kan iemand het dan voo me verbeteren?

Geplaatst: (bewerkt)
(114) : error 010: invalid function or declaration
(2476) : error 001: expected token: "-identifier-", but found "-integer value-"
(2506) : error 001: expected token: "-identifier-", but found "-integer value-"

2476:		new level = strval(tmp);
2506:		new level = strval(tmp);

Bewerkt: door Raptor6
  • 3 maanden later...
Geplaatst:

Hoi,

Ik heb nu deze errors ik heb zoals in dit topic vermeld de stappen gevolgd maar hij wil niet echt

error

D:\david\destkop\server gta\gamemodes\filmen.pwn(148) : error 029: invalid expression, assumed zero

D:\david\destkop\server gta\gamemodes\filmen.pwn(148) : error 017: undefined symbol "Iedereen"

D:\david\destkop\server gta\gamemodes\filmen.pwn(148) : error 017: undefined symbol "in"

D:\david\destkop\server gta\gamemodes\filmen.pwn(148) : fatal error 107: too many error messages on one line

code

SendClientMessageToAll(COLOR_RED, “***LET OP: Iedereen in zijn positie Censuur en David in de Blade en Censuur alvast opstijgen met de heli!!!”);

weten jullie wat ik fout doe ???

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...