Jump to content

'PAWN Compiler Library is gestopt met werken'


Gast

Recommended Posts

Nou, ik krijg de error 'PAWN Compiler Library is gestopt met werken' als ik een command die ik heb (/l) kopiëer en even wat aanpas.

Dus als ik dan compile, geeft hij die error.

Dus ik kopiëer de /l command, verander het in /s en doe verander de ProxDetector range, en zorg dat er komt te staan 'naam shouts:'.

Als ik dat doe, krijg ik die error. Als ik hem verwijder, geeft hij geen error. Als ik die /s laat staan en verwijder de /l, doet ie het ook.

Maar als ik ze samen heb = fail.

Meer valt er niet over te zeggen denk ik.

Link to comment
Delen op andere websites

Meestal heb je dan een '}' of '{' teveel of te weinig

Beide klopt niet, als ik een } of { verwijder, werkt de script niet meer.

Als ik een } { toevoeg, doet ie het nog niet.

Ik heb er nu 4 toegevoegd ( } ) en het werkt nog niet, ik denk niet dat er zoveel moeten staan.

Link to comment
Delen op andere websites

Meestal heb je dan een '}' of '{' teveel of te weinig

Beide klopt niet, als ik een } of { verwijder, werkt de script niet meer.

Als ik een } { toevoeg, doet ie het nog niet.

Ik heb er nu 4 toegevoegd ( } ) en het werkt nog niet, ik denk niet dat er zoveel moeten staan.

Je moet niet gwn willekeurig oveeral een paar {} gaan neerzetten!!!

Post de 2 commands eens.

Link to comment
Delen op andere websites

Meestal heb je dan een '}' of '{' teveel of te weinig

Beide klopt niet, als ik een } of { verwijder, werkt de script niet meer.

Als ik een } { toevoeg, doet ie het nog niet.

Ik heb er nu 4 toegevoegd ( } ) en het werkt nog niet, ik denk niet dat er zoveel moeten staan.

Je moet niet gwn willekeurig oveeral een paar {} gaan neerzetten!!!

Post de 2 commands eens.

if(strcmp(cmd,"/l",true)==0) //
{
    if(IsPlayerConnected(playerid))
    {
    if(logged[playerid] == 0)
        {
            SendClientMessage(playerid, COLOR_RED, "You havent logged in yet !");
            return 1;
        }
		GetPlayerName(playerid, sendername, sizeof(sendername));
		new length = strlen(cmdtext);
		while ((idx < length) && (cmdtext[idx] <= ' '))
		{
			idx++;
		}
		new offset = idx;
		new result[64];
		while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
		{
			result[idx - offset] = cmdtext[idx];
			idx++;
		}
		result[idx - offset] = EOS;
		if(!strlen(result))
		{
			SendClientMessage(playerid, COLOR_GREEN, "USAGE: /l <chat>");
			return 1;
		}
			format(string, sizeof(string), "%s(%i) says: %s", sendername, playerid, result);
		}
		ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
		printf("%s", string);
	}
	return 1;
}

En /s is gewoon copy+paste en wat ge-edit.

Link to comment
Delen op andere websites

De derde accolade (zo heten die "{ } { dingen") van onder staat er volgens mij teveel (net boven "ProxDetector").

Daarnaast is de functie 'IsPlayerConnected' niet afgesloten met een accolade, maar die functie is in dit geval totaal overbodig.. een speler die niet connected is kan ook geen commando typen :puh:

Zo zou het volgens mij moeten werken (zelf niet getest, heb op dit moment geen Pawno op m'n pc staan):

if(strcmp(cmd,"/l",true)==0) //
       {
    if(logged[playerid] == 0)
               {
                   SendClientMessage(playerid, COLOR_RED, "You havent logged in yet !");
                   return 1;
               }
                       GetPlayerName(playerid, sendername, sizeof(sendername));
                       new length = strlen(cmdtext);
                       while ((idx < length) && (cmdtext[idx] <= ' '))
                       {
                               idx++;
                       }
                       new offset = idx;
                       new result[64];
                       while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                       {
                               result[idx - offset] = cmdtext[idx];
                               idx++;
                       }
                       result[idx - offset] = EOS;
                       if(!strlen(result))
                       {
                               SendClientMessage(playerid, COLOR_GREEN, "USAGE: /l <chat>");
                               return 1;
                       }
                       format(string, sizeof(string), "%s(%i) says: %s", sendername, playerid, result);
                       ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                       printf("%s", string);
               }
               return 1;
       }

groetjes, Ymosky

Link to comment
Delen op andere websites

De derde accolade (zo heten die "{ } { dingen") van onder staat er volgens mij teveel (net boven "ProxDetector").

Daarnaast is de functie 'IsPlayerConnected' niet afgesloten met een accolade, maar die functie is in dit geval totaal overbodig.. een speler die niet connected is kan ook geen commando typen :puh:

Zo zou het volgens mij moeten werken (zelf niet getest, heb op dit moment geen Pawno op m'n pc staan):

if(strcmp(cmd,"/l",true)==0) //
       {
    if(logged[playerid] == 0)
               {
                   SendClientMessage(playerid, COLOR_RED, "You havent logged in yet !");
                   return 1;
               }
                       GetPlayerName(playerid, sendername, sizeof(sendername));
                       new length = strlen(cmdtext);
                       while ((idx < length) && (cmdtext[idx] <= ' '))
                       {
                               idx++;
                       }
                       new offset = idx;
                       new result[64];
                       while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                       {
                               result[idx - offset] = cmdtext[idx];
                               idx++;
                       }
                       result[idx - offset] = EOS;
                       if(!strlen(result))
                       {
                               SendClientMessage(playerid, COLOR_GREEN, "USAGE: /l <chat>");
                               return 1;
                       }
                       format(string, sizeof(string), "%s(%i) says: %s", sendername, playerid, result);
                       ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                       printf("%s", string);
               }
               return 1;
       }

groetjes, Ymosky

Heeft niks uitgehaald.

Voor de duidelijkheid: DE SCRIPT IS GOED

Het probleem is als ik dezelfde command will hebben alleen dan andere naam (/s i.p.v /l) dan stopt ie met werken.

Link to comment
Delen op andere websites

Daar komt ie dan.

if(strcmp(cmd,"/s",true)==0) //
{
if(logged[playerid] == 0)
{
SendClientMessage(playerid, COLOR_RED, "You havent logged in yet !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GREEN, "USAGE: /s <chat>");
return 1;
}
format(string, sizeof(string), "%s(%i) shouts: %s !!", sendername, playerid, result);
ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf("%s", string);
}
return 1;
}

Link to comment
Delen op andere websites

Lijn je script gewoon van de eerste keer goed uit, dan heb je dat probleem niet.

Je ziet dan meteen waar er een accolade te veel of te weinig is.

Onderstaande code klopt tevens nog niet; Je hebt 5 keer een open accolade '{' en 6 keer een '}'.

Link to comment
Delen op andere websites

Oke, ik heb jullie advies opgevolgd. En hopelijk goed.

Dit is wat ik nu heb:

if(strcmp(cmd,"/l",true)==0) //
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GREEN, "USAGE: /l <chat>");
return 1;
}
format(string, sizeof(string), "%s(%i) says: %s", sendername, playerid, result);
ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf("%s", string);
return 1;
}

if(strcmp(cmd,"/s",true)==0) //
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GREEN, "USAGE: /s <chat>");
return 1;
}
format(string, sizeof(string), "%s(%i) shouts: %s !!", sendername, playerid, result);
ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf("%s", string);
}
return 1;
}

En het werkt perfect.

Link to comment
Delen op andere websites

Oke, ik heb jullie advies opgevolgd. En hopelijk goed.

Dit is wat ik nu heb:

if(strcmp(cmd,"/l",true)==0) //
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GREEN, "USAGE: /l <chat>");
return 1;
}
format(string, sizeof(string), "%s(%i) says: %s", sendername, playerid, result);
ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf("%s", string);
return 1;
}

if(strcmp(cmd,"/s",true)==0) //
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GREEN, "USAGE: /s <chat>");
return 1;
}
format(string, sizeof(string), "%s(%i) shouts: %s !!", sendername, playerid, result);
ProxDetector(20.0, playerid, string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf("%s", string);
}
return 1;
}

En het werkt perfect.

Bij je 2e command is er nochtans nog altijd een } te veel.

Link to comment
Delen op andere websites

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...