Bug in weaponall -
mickos - 23.01.2014
Hallo allemaal,
Ik heb een command voor admins: /minigunall maar niet niemand krijgt de minigun, behalve de admin zelf die de command gebruikte. Wat is er fout aan dan? Hier is het command gedeelte:
pawn Code:
CMD:minigunall(playerid, params[])
{
new str[128];
if(PlayerAcc[playerid][Log] == 0) return SendClientMessage(playerid, COLOR_ORANGE, "** You are not logged in, please login first.");
if(PlayerAcc[playerid][Admin] == 0) return SendClientMessage(playerid, -1,""orange"** Sorry, only admins level 4+ can do that command.");
if(PlayerAcc[playerid][Admin] >= 4)
{
GivePlayerWeapon(playerid, 38, 9000);
format(str, sizeof(str), "~y~minigun ~r~kill ~y~time!");
GameTextForAll(str, 4000, 3);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
foreach(Player, i)
{
if(IsPlayerConnected(i) && (i != playerid) && (PlayerAcc[playerid][Admin] < PlayerAcc[i][Admin]))
{
GivePlayerWeapon(playerid, 38, 9000);
}
}
format(str, sizeof(str), "** Admin %s(ID:%d) gave everyone a minigun.", GetName(playerid), playerid);
SendClientMessageToAll(COLOR_YELLOW, str);
format(str, sizeof(str), "** You gave everyone a minigun.");
SendClientMessage(playerid, COLOR_YELLOW, str);
}
else return ErrorMessages(playerid, 5);
return 1;
}
//----
Re: Bug in weaponall -
Rzzr - 23.01.2014
Code:
&& (PlayerAcc[playerid][Admin] < PlayerAcc[i][Admin])
Als ik het zo ff snel lees zou het moeten werken als je dat stukje er uit haalt.
Re: Bug in weaponall -
mamorunl - 23.01.2014
Code geeft inderdaad aan iedereen die een hoger administratorlevel heeft dan hemzelf een minigun, de rest niet.
Re: Bug in weaponall -
Henkie - 23.01.2014
Code:
GivePlayerWeapon(playerid, 38, 9000);
Dit staat binnen je foreach loop. Zou je niet playerid vervangen naar i?
Re: Bug in weaponall -
Danny - 23.01.2014
Henkie doet 't m waarschijnlijk, ik wil alleen even toevoegen dat je nooit IsPlayerConnected hoeft te gebruiken bij foreach looping.
Re: Bug in weaponall -
mickos - 23.01.2014
Ahh okee, ik heb verwijderd wat Rzzr zei, en heb playerid vervangen naar " i " Dus het ziet er nu zo uit:
pawn Code:
CMD:minigunall(playerid, params[])
{
new str[128];
if(PlayerAcc[playerid][Log] == 0) return SendClientMessage(playerid, COLOR_ORANGE, "** You are not logged in, please login first.");
if(PlayerAcc[playerid][Admin] == 0) return SendClientMessage(playerid, -1,""orange"** Sorry, only admins level 4+ can do that command.");
if(PlayerAcc[playerid][Admin] >= 4)
{
GivePlayerWeapon(i, 38, 9000);
format(str, sizeof(str), "~y~minigun ~r~kill ~y~time!");
GameTextForAll(str, 4000, 3);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
foreach(Player, i)
{
if(IsPlayerConnected(i) && (i != playerid) )
{
GivePlayerWeapon(playerid, 38, 9000);
}
}
format(str, sizeof(str), "** Admin %s(ID:%d) gave everyone a minigun.", GetName(playerid), playerid);
SendClientMessageToAll(COLOR_YELLOW, str);
format(str, sizeof(str), "** You gave everyone a minigun.");
SendClientMessage(playerid, COLOR_YELLOW, str);
}
else return ErrorMessages(playerid, 5);
return 1;
}
Alleen deze error:
pawn Code:
D:\PlanetS 0.3x [Euro] Server 8\pawno\systemadmin.pwn(103) : warning 201: redefinition of constant/macro (symbol "pInfo")
D:\PlanetS 0.3x [Euro] Server 8\pawno\systemadmin.pwn(3314) : error 017: undefined symbol "i"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Waar moet ik ' i ' laten define?
Re: Bug in weaponall -
mamorunl - 23.01.2014
pawn Code:
if(PlayerAcc[playerid][Admin] >= 4)
{
GivePlayerWeapon(i, 38, 9000);
Deze GivePlayerWeapon moet weg. Vervang die in de foreach met bovenstaande GivePlayerWeapon, dan issie goed
Re: Bug in weaponall -
Hiddos - 23.01.2014
Overigens is het niet nodig IsPlayerConnected the gebruiken als je foreach gebruikt, die check zit daar al zelf ingebouwd
Re: Bug in weaponall -
Henkie - 23.01.2014
Quote:
Originally Posted by mickos
Ahh okee, ik heb verwijderd wat Rzzr zei, en heb playerid vervangen naar " i " Dus het ziet er nu zo uit:
pawn Code:
CMD:minigunall(playerid, params[]) { new str[128]; if(PlayerAcc[playerid][Log] == 0) return SendClientMessage(playerid, COLOR_ORANGE, "** You are not logged in, please login first."); if(PlayerAcc[playerid][Admin] == 0) return SendClientMessage(playerid, -1,""orange"** Sorry, only admins level 4+ can do that command."); if(PlayerAcc[playerid][Admin] >= 4) { GivePlayerWeapon(i, 38, 9000); format(str, sizeof(str), "~y~minigun ~r~kill ~y~time!"); GameTextForAll(str, 4000, 3); PlayerPlaySound(playerid,1057,0.0,0.0,0.0); foreach(Player, i) { if(IsPlayerConnected(i) && (i != playerid) ) { GivePlayerWeapon(playerid, 38, 9000); } } format(str, sizeof(str), "** Admin %s(ID:%d) gave everyone a minigun.", GetName(playerid), playerid); SendClientMessageToAll(COLOR_YELLOW, str); format(str, sizeof(str), "** You gave everyone a minigun."); SendClientMessage(playerid, COLOR_YELLOW, str); } else return ErrorMessages(playerid, 5); return 1; }
Alleen deze error:
pawn Code:
D:\PlanetS 0.3x [Euro] Server 8\pawno\systemadmin.pwn(103) : warning 201: redefinition of constant/macro (symbol "pInfo") D:\PlanetS 0.3x [Euro] Server 8\pawno\systemadmin.pwn(3314) : error 017: undefined symbol "i" Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Waar moet ik ' i ' laten define?
|
Code:
GivePlayerWeapon(playerid, 38, 9000);
Dit staat
binnen je foreach loop. Zou je niet playerid vervangen naar i?
Begrijpend lezen blijft lastig, ik wist gewoon dat je die andere ging veranderen xd
Quote:
Originally Posted by Danny.
Ik wil alleen even toevoegen dat je nooit IsPlayerConnected hoeft te gebruiken bij foreach looping. 
|
Quote:
Originally Posted by Hiddos
Overigens is het niet nodig IsPlayerConnected the gebruiken als je foreach gebruikt, die check zit daar al zelf ingebouwd
|
Ook hier blijft begrijpend lezen moeilijk, toch Hiddos?:P
Re: Bug in weaponall -
Hiddos - 23.01.2014
Quote:
Originally Posted by Henkie
Ook hier blijft begrijpend lezen moeilijk, toch Hiddos?:P
|
-begrijpend