habe ein problem mit dem befehl /give
wenn ein user /give macht und dann z.b /give drogen id -131313 macht kriegt die id die drogen obwohl der nix hat der im was gibt
hier der code
if(strcmp(cmd, "/give", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_GOLD, "|____________________ Befehlshilfe ___________________|");
SendClientMessage(playerid, COLOR_GOLD, "Benutzung: /give [Name] [Spieler ID] ([Menge])");
SendClientMessage(playerid, COLOR_GOLD, "Namen: Drogen, Waffe, Materialien");
return 1;
}
if(strcmp(x_nr,"Drogen",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /give Drogen [Spieler ID] [Menge]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(giveplayerid,x,y,z);
if(!PlayerToPoint(5, playerid, x, y, z))
{
SendClientMessage(playerid, COLOR_GRAD1, "Spieler nicht in deiner Nähe!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /give Drogen [Spieler ID] [Menge]");
return 1;
}
new dammount;
dammount = strval(tmp);
if(dammount > PlayerInfo[playerid][pDrugs])
{
SendClientMessage(playerid, COLOR_GREY, "Du hast nicht soviele Drogen!"); return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
PlayerInfo[playerid][pDrugs] -= dammount;
PlayerInfo[giveplayerid][pDrugs] += dammount;
format(string, sizeof(string), "* %s gibt %s Drogen.", sendername, giveplayer);
ProxDetector(6.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Spieler ist Offline!");
return 1;
}
}
else if(strcmp(x_nr,"Waffe",true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /givewaffe [PlayerID]");
return 1;
}
new playa;
playa = ReturnUser(tmp);
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, playa))
{
if(playa == playerid)
{
SendClientMessage(playerid, COLOR_GREY, "Du kannst dir selber keine Waffe geben!");
return 1;
}
if(IsPlayerInAnyVehicle(playa))
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keinem im Auto eine Waffe übergeben!");
return 1;
}
new gunID = GetPlayerWeapon(playerid);
new needed = GetPlayerAmmo(playerid);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GivePlayerWeapon(playa, gunID, needed);
RemovePlayerWeapon(playerid, gunID);
format(string, sizeof(string), "%s gibt %s seine Waffe.", sendername, giveplayer);
ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht nah genug!");
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist offline.");
}
}
}
else if(strcmp(x_nr,"Materialien",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /give Materialien [Spieler ID] [Menge]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(giveplayerid,x,y,z);
if(!PlayerToPoint(5, playerid, x, y, z))
{
SendClientMessage(playerid, COLOR_GRAD1, "Spieler nicht in deiner Nähe!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /give Materialien [Spieler ID] [Menge]");
return 1;
}
new dammount;
dammount = strval(tmp);
if(dammount > PlayerInfo[playerid][pMats]) { SendClientMessage(playerid, COLOR_GREY, "Du hast nicht soviele Materialien!"); return 1; }
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
PlayerInfo[playerid][pMats] -= dammount;
PlayerInfo[giveplayerid][pMats] += dammount;
format(string, sizeof(string), "* %s gibt %s Materialien.", sendername, giveplayer);
ProxDetector(6.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Spieler ist Offline!");
return 1;
}
}
}
return 1;
}