Jump to content
Geplaatst:
comment_1627718

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

Featured Replies

Geplaatst:
comment_1627761

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

Geplaatst:
comment_1627778

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
{

Geplaatst:
comment_1627807

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.

Geplaatst:
comment_1627825

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.

Geplaatst:
comment_1627833

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

Geplaatst:
comment_1627836

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

Geplaatst:
comment_1627842

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

Geplaatst:
comment_1627872

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.

Geplaatst:
comment_1627898

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");

Geplaatst:
comment_1627902

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 ;)

Geplaatst:
comment_1627910

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];

Geplaatst:
comment_1627920

Dus het is nu volledig gefixt?

Ik heb het gefixed door dit aan het einde van public OnPlayerCommandText (playerid, cmdtext[])

dit toe tevoegen:

return 0;

}

}

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

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.