Jump to content

[HELP] Error bij compilen van /freeze command


Gast

Recommended Posts

Ik had een /freeze command gemaakt die alleen op jezelf werkte. Nu had ik giverplayerid toegevoegd, maar dat werkte niet.

Nu gebruik ik Sandra's /freeze command alleen dan werkt hij nog niet.

Dit is de code:

223 if(strcmp(cmd, "/freeze", true)==0)
224     {
225          if(adminlevel[playerid] >= 1) {
226         new giveplayerid;
227         tmp = strtok(cmdtext, idx);
228         if(!strlen(tmp))
229         {
230            SendClientMessage(playerid, COLOR_WHITE, "USAGE: /freeze <playerid>");
231            return 1;
232         }
233         giveplayerid = strval(tmp);
234         if(!IsPlayerConnected(giveplayerid))
235         {
236             SendClientMessage(playerid, COLOR_WHITE, "Player is not connected"); 
237 return 1;
238         }
239         TogglePlayerControllable(giveplayerid, 0);
240         Frozen[giveplayerid] = 1;
241         SendClientMessage(playerid, COLOR_YELLOW, "Player has been frozen");
242         SendClientMessage(giveplayerid, COLOR_YELLOW, "You are frozen.");
243         return 1;
244     }

Error:

merp.TMP(226): warning 219: local variable "giveplayerid" shadows a variable at a preceding level
merp.TMP(247): warning 217: loose identation
merp.TMP(318:error 029:invalid expression, assumed zero
merp.TMP(318:error 004:function "OnPlayerDisconnect" is not impltented
merp,TMP(337): error 030: compound statement not closed at the end of file (started at line 225)

Als ik new giveplayerid verwijder zegt hij:

merp.TMP(247: warning 217: loose identation
merp.TMP(318): error 029: invalid expresson, assumed zerp
merp.TMP(318): error 004: function "OnPlayerDisconnect" is not implemented
merp.TMP(337): error 030: compound statement not closed at the end of file (started at line 225)

Als ik if(adminlevel[playerid] >= 1) { verwijder dan zegt hij dit:

Compiled successfull

Maar ik heb die adminlevel check nodig..

Bewerkt: door Gast
Link to comment
Delen op andere websites

merp.TMP(226): warning 219: local variable "giveplayerid" shadows a variable at a preceding level

De variabele giveplayerid is al gebruikt (bij een hogere blok of als globale variabele).

Als ik if(adminlevel[playerid] >= 1) { verwijder dan zegt hij dit:

Toon eens de declaratie van adminlevel.

Bewerkt: door GTAguillaume
Link to comment
Delen op andere websites

merp.TMP(226): warning 219: local variable "giveplayerid" shadows a variable at a preceding level

De variabele giveplayerid is al gebruikt (bij een hogere blok of als globale variabele).

Als ik if(adminlevel[playerid] >= 1) { verwijder dan zegt hij dit:

Toon eens de declaratie van adminlevel.

Hij heeft ook else of return vergeten

dit is wat je hebt:

if(adminlevel[playerid] >= 1) {

zo moet het zijn:

if(adminlevel[playerid] >= 1) 
{
// als degene boven admin level 1 is
}
else
}
// als die dat niet is
{

Link to comment
Delen op andere websites

Een else (met return) is niet noodzakelijk.

Maar ik zag net dat je ook nog een '}' vergeten bent, tenzij je een '}' te weinig gekopieerd hebt naar hier.

Als ik dat doe, dan zegt hij dat PAWN Compiler library niet meer werkt.

Link to comment
Delen op andere websites

223 if(strcmp(cmd, "/freeze", true)==0)
224     {
225          if(adminlevel[playerid] >= 1) {    //<-------------------
226         new giveplayerid;
227         tmp = strtok(cmdtext, idx);
228         if(!strlen(tmp))
229         {
230            SendClientMessage(playerid, COLOR_WHITE, "USAGE: /freeze <playerid>");
231            return 1;
232         }
233         giveplayerid = strval(tmp);
234         if(!IsPlayerConnected(giveplayerid))
235         {
236             SendClientMessage(playerid, COLOR_WHITE, "Player is not connected"); 
237 return 1;
238         }
239         TogglePlayerControllable(giveplayerid, 0);
240         Frozen[giveplayerid] = 1;
241         SendClientMessage(playerid, COLOR_YELLOW, "Player has been frozen");
242         SendClientMessage(giveplayerid, COLOR_YELLOW, "You are frozen.");
243         return 1;
244     }

De bracket, aangegeven met de pijl, wordt nooit gesloten.

Link to comment
Delen op andere websites

223 if(strcmp(cmd, "/freeze", true)==0)
224     {
225          if(adminlevel[playerid] >= 1) {    //<-------------------
226         new giveplayerid;
227         tmp = strtok(cmdtext, idx);
228         if(!strlen(tmp))
229         {
230            SendClientMessage(playerid, COLOR_WHITE, "USAGE: /freeze <playerid>");
231            return 1;
232         }
233         giveplayerid = strval(tmp);
234         if(!IsPlayerConnected(giveplayerid))
235         {
236             SendClientMessage(playerid, COLOR_WHITE, "Player is not connected"); 
237 return 1;
238         }
239         TogglePlayerControllable(giveplayerid, 0);
240         Frozen[giveplayerid] = 1;
241         SendClientMessage(playerid, COLOR_YELLOW, "Player has been frozen");
242         SendClientMessage(giveplayerid, COLOR_YELLOW, "You are frozen.");
243         return 1;
244     }

De bracket, aangegeven met de pijl, wordt nooit gesloten.

met deze code heb ik anders geen problemen:

if(strcmp(cmd, "/adminhelp", true) == 0)
{
if(adminlevel[playerid] >= 1) {
SendClientMessage(playerid, COLOR_WHITE, "===========================");
SendClientMessage(playerid, COLOR_WHITE, " mehRP ADMIN COMMAND LIST");
SendClientMessage(playerid, COLOR_WHITE, "===========================");
SendClientMessage(playerid, COLOR_WHITE, "PLAYER:: /freeze /unfreeze /ban /kick /tempban /money");
SendClientMessage(playerid, COLOR_WHITE, "VEHICLE:: /spawnvehicle");
SendClientMessage(playerid, COLOR_WHITE, "ADMIN:: /adminduty on /adminduty off");
}

Ik had een /* */ gedaan bij mijn commands, en toen kreeg ik:

merp.TMP(318): error 029: invalid expresson, assumed zerp
merp.TMP(318): error 004: function "OnPlayerDisconnect" is not implemented
merp.TMP(337): error 030: compound statement not closed at the end of file (started at line ...)

Hij geeft dan bij (started at line ...) verschillende lines waar die admin check staat, maar voor die freeze command had ik geen problemen. En als ik die freeze command verwijderd, heb ik het nog steeds alleen dan doet ie dit:

merp.TMP(318): error 029: invalid expresson, assumed zerp
merp.TMP(318): error 004: function "OnPlayerDisconnect" is not implemented
merp.TMP(337): error 030: compound statement not closed at the end of file (started at line 87)

87 new cmd[256],tmp[256], tmp2[256];

Bewerkt: door Gast
Link to comment
Delen op andere websites

De bracket, aangegeven met de pijl, wordt nooit gesloten.

Dat bedoelde ik.

Als ik dat doe, dan zegt hij dat PAWN Compiler library niet meer werkt.

Heb je dit al opgelost?:

merp.TMP(226): warning 219: local variable "giveplayerid" shadows a variable at a preceding level

De variabele giveplayerid is al gebruikt (bij een hogere blok of als globale variabele).

Als ik if(adminlevel[playerid] >= 1) { verwijder dan zegt hij dit:

Toon eens de declaratie van adminlevel.

Bewerkt: door GTAguillaume
Link to comment
Delen op andere websites

De bracket, aangegeven met de pijl, wordt nooit gesloten.

Dat bedoelde ik.

Als ik dat doe, dan zegt hij dat PAWN Compiler library niet meer werkt.

Heb je dit al opgelost?:

merp.TMP(226): warning 219: local variable "giveplayerid" shadows a variable at a preceding level

De variabele giveplayerid is al gebruikt (bij een hogere blok of als globale variabele).

Ik heb het opgelost door die giveplayerid te verwijderen.

Wat bedoel je toon eens de decleratie van adminlevel?

Decleratie heeft normaal iets met geld te maken.

Bewerkt: door Gast
Link to comment
Delen op andere websites

De bracket, aangegeven met de pijl, wordt nooit gesloten.

Dat bedoelde ik.

Als ik dat doe, dan zegt hij dat PAWN Compiler library niet meer werkt.

Heb je dit al opgelost?:

merp.TMP(226): warning 219: local variable "giveplayerid" shadows a variable at a preceding level

De variabele giveplayerid is al gebruikt (bij een hogere blok of als globale variabele).

Ik heb het opgelost door die giveplayerid te verwijderen.

Wat bedoel je toon eens de decleratie van adminlevel?

Decleratie heeft normaal iets met geld te maken.

hij bedoelt waar je de adminlevel hebt gedefinieerd denk ik.

Link to comment
Delen op andere websites

De bracket, aangegeven met de pijl, wordt nooit gesloten.

Dat bedoelde ik.

Als ik dat doe, dan zegt hij dat PAWN Compiler library niet meer werkt.

Heb je dit al opgelost?:

merp.TMP(226): warning 219: local variable "giveplayerid" shadows a variable at a preceding level

De variabele giveplayerid is al gebruikt (bij een hogere blok of als globale variabele).

Ik heb het opgelost door die giveplayerid te verwijderen.

Wat bedoel je toon eens de decleratie van adminlevel?

Decleratie heeft normaal iets met geld te maken.

hij bedoelt waar je de adminlevel hebt gedefinieerd denk ik.

new adminlevel[MAX_PLAYERS];

/register

dini_IntSet(udb_encode(playername), "adminlevel", 0);

/login

adminlevel[playerid] = dini_Int(udb_encode(playername), "adminlevel");

Link to comment
Delen op andere websites

De bracket, aangegeven met de pijl, wordt nooit gesloten.

Dat bedoelde ik.

Als ik dat doe, dan zegt hij dat PAWN Compiler library niet meer werkt.

Heb je dit al opgelost?:

merp.TMP(226): warning 219: local variable "giveplayerid" shadows a variable at a preceding level

De variabele giveplayerid is al gebruikt (bij een hogere blok of als globale variabele).

Ik heb het opgelost door die giveplayerid te verwijderen.

Wat bedoel je toon eens de decleratie van adminlevel?

Decleratie heeft normaal iets met geld te maken.

hij bedoelt waar je de adminlevel hebt gedefinieerd denk ik.

new adminlevel[MAX_PLAYERS];

/register

dini_IntSet(udb_encode(playername), "adminlevel", 0);

/login

adminlevel[playerid] = dini_Int(udb_encode(playername), "adminlevel");

Jep, dat ;)

Link to comment
Delen op andere websites

Toon eens je nieuwe code, want normaal zou het nu moeten werken?!

Zo te zien ligt het niet aan de admin check, ik heb dat gefixed.

Ik had

if(logged[playerid] == 1) {

if(adminlevel[playerid] >= 1) {

Veranderd naar

if(logged[playerid] == 1)

if(adminlevel[playerid] >= 1)

{

Nu zegt hij het bij lijn 87:

new cmd[256], tmp[256], tmp2[256];

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