Geplaatst: 3 januari 201015 jaren comment_1563721 Ik probeer dus een keypad script te makne met: /setcode [4 nummbers] (/setcode 9999 als voorbeeld) en /armory [4 numbers] (/armory [9999] Dus als je /setcode 9999 intypt, dat je daarna /armory 9999 moet doen zodat er een variable verandert. maar hoe kan ik deze dus synchroon laten lopen?
Geplaatst: 3 januari 201015 jaren comment_1563866 new CommandCode = 9873; public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256],tmp[256]; new idx; cmd = strtok(cmdtext, idx); if (strcmp("/setcode", cmd, true) == 0) { if(!IsPlayerAdmin(playerid)) return 0; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000AA, "USE: /setcode [code]"); CommandCode = strval(tmp); return 1; } if (strcmp("/armory", cmd, true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000AA, "Use: /armory [code]"); if(strval(tmp) != CommandCode) return SendClientMessage(playerid, 0xFF0000AA, "Wrong code"); SetPlayerArmour(playerid, 100); return 1; } return 0; }
Geplaatst: 3 januari 201015 jaren Auteur comment_1564022 new CommandCode = 9873; public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256],tmp[256]; new idx; cmd = strtok(cmdtext, idx); if (strcmp("/setcode", cmd, true) == 0) { if(!IsPlayerAdmin(playerid)) return 0; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000AA, "USE: /setcode [code]"); CommandCode = strval(tmp); return 1; } if (strcmp("/armory", cmd, true) == 0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000AA, "Use: /armory [code]"); if(strval(tmp) != CommandCode) return SendClientMessage(playerid, 0xFF0000AA, "Wrong code"); SetPlayerArmour(playerid, 100); return 1; } return 0; } o.O bedankt Sandra je bent de beste EDIT: probleempje: C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(120) : warning 217: loose indentation C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(126) : error 017: undefined symbol "strtok" C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(126) : error 033: array must be indexed (variable "cmd") C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(130) : error 017: undefined symbol "strtok" C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(130) : error 033: array must be indexed (variable "tmp") C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(132) : error 017: undefined symbol "CommandCode" C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(138) : error 017: undefined symbol "strtok" C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(138) : error 033: array must be indexed (variable "tmp") C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(140) : error 017: undefined symbol "CommandCode" C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(125) : warning 203: symbol is never used: "idx" C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(125 -- 148) : warning 225: unreachable code C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(125 -- 148) : warning 217: loose indentation C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(235) : warning 217: loose indentation C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(241) : warning 217: loose indentation C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(247) : warning 217: loose indentation Bewerkt: 3 januari 201015 jaren door TEH_GTA_COLLECTOR
Geplaatst: 3 januari 201015 jaren comment_1564035 Je moet de strtok-functie nog toevoegen aan je script (gewoon onderaan zetten): strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
Geplaatst: 3 januari 201015 jaren Auteur comment_1564086 Je moet de strtok-functie nog toevoegen aan je script (gewoon onderaan zetten): strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(132) : error 017: undefined symbol "CommandCode" C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(140) : error 017: undefined symbol "CommandCode"
Geplaatst: 3 januari 201015 jaren comment_1564109 Je bent new CommandCode = 9873; vergeten toe te voegen boven aan je script. Wel onder #include <...>
Geplaatst: 3 januari 201015 jaren comment_1564207 Ja, je bent de bovenste regel in mijn 1e reactie vergeten
Geplaatst: 3 januari 201015 jaren Auteur comment_1564229 Volgend probleem: public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/gear", cmdtext, true, 10) == 0) //No GTeam so rebels can break in and raid the armory. { if(PlayerToPoint(1.0, playerid, 240.52, 1876.69, 11.46)) { if lock[playerid]=1 { ResetPlayerWeapons(playerid); ShowMenuForPlayer(Gear, playerid); } } return 1; } new cmd[256],tmp[256]; new idx; cmd = strtok(cmdtext, idx); if (strcmp("/setcode", cmd, true) == 0) { //Ad UC parameter here, so UC can change the code. tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000AA, "USE: /setcode [code]"); CommandCode = strval(tmp); return 1; } if (strcmp("/armory", cmd, true) == 0) { //Do not add parameter here, so Rebels are avle to crack the code. tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000AA, "Use: /armory [code]"); if(strval(tmp) != CommandCode) return SendClientMessage(playerid, 0xFF0000AA, "Wrong code"); armed[playerid]=1; return 1; } if (strcmp("/closearmory", cmd, true) == 0) { armed[playerid]=0; } return 0; } return 1; } Wat is er mis? Hij geeft me errors. C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(118) : warning 211: possibly unintended assignment C:\Users\Robin\Downloads\samp03asvr_R3_win32\NEW FILES THAT NEED UPLOADS\armory.pwn(119) : error 029: invalid expression, assumed zero
Ik probeer dus een keypad script te makne met:
/setcode [4 nummbers] (/setcode 9999 als voorbeeld)
en
/armory [4 numbers] (/armory [9999]
Dus als je /setcode 9999 intypt,
dat je daarna /armory 9999 moet doen zodat er een variable verandert.
maar hoe kan ik deze dus synchroon laten lopen?