Sziasztok.
Olyan problémám van, ha veszek fegyvert pl. egy shotgunt nem veszi le a pénzt.
A fegyvert, a töltényeket megkapom , de az előtte lévő fegyverekhez is kapok ugyanannyi töltényt..
Miért van ez?
if(strcmp(cmd, \"/fegyvervesz\", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, \"Használat: /fegyvervesz [id] [töltény]\");
SendClientMessage(playerid, COLOR_GRAD2, \"Fegyver árakat és az ID-t a falon találod.\");
return 1;
}
new fegyverid = strval(tmp);
tmp = strtok(cmdtext, idx);
new tolteny = strval(tmp);
if(fegyverid < 2 || fegyverid > 9) { SendClientMessage(playerid, COLOR_GRAD2, \"A fegyver ID-nek 2 és 9 között kell lennie.\"); return 1; }
if(tolteny < 1 || tolteny > 500) { SendClientMessage(playerid, COLOR_GRAD2, \"A töltényszámnak 1 és 500 között kell lennie!\"); return 1; }
if(!PlayerToPoint(30.0, playerid, 290.1126,-109.3564,1001.5156)){ SendClientMessage(playerid, COLOR_GRAD2, \"Nem vagy fegyverboltba.\"); return 1; }
{
if(PlayerInfo[playerid][fegyver2] == 1) //------------- Baseball ütő
{
if(PlayerInfo[playerid][Penz] < tolteny*3000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny2] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*3000;
format(stringx,sizeof(stringx), \"Vettél még pár baseball ütőt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
else if(PlayerInfo[playerid][fegyver2] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*3000)+0) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
PlayerInfo[playerid][fegyver2] = 1;
PlayerInfo[playerid][tolteny2] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*3000)+0;
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
format(stringx,sizeof(stringx), \"Vettél még pár baseball ütőt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
if(PlayerInfo[playerid][fegyver3] == 1) //------------- Kés
{
if(PlayerInfo[playerid][Penz] < tolteny*1500) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny3] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*1500;
format(stringx,sizeof(stringx), \"Vettél még pár kést %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
else if(PlayerInfo[playerid][fegyver3] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*1500)+0) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
PlayerInfo[playerid][fegyver3] = 1;
PlayerInfo[playerid][tolteny3] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*1500)+0;
format(stringx,sizeof(stringx), \"Vettél egy kést %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
if(PlayerInfo[playerid][fegyver4] == 1) //------------- 9MM
{
if(PlayerInfo[playerid][Penz] < tolteny*300) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny4] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*300;
format(stringx,sizeof(stringx), \"Vettél 9mm töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
else if(PlayerInfo[playerid][fegyver4] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*300)+20000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
PlayerInfo[playerid][fegyver4] = 1;
PlayerInfo[playerid][tolteny4] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*300)+20000;
format(stringx,sizeof(stringx), \"Vettél 9mm-t %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
if(PlayerInfo[playerid][fegyver5] == 1) //------------- Desert Eagle
{
if(PlayerInfo[playerid][Penz] < tolteny*300) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny5] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*300;
format(stringx,sizeof(stringx), \"Vettél Desert Eagle töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
else if(PlayerInfo[playerid][fegyver5] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*300)+23000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][fegyver5] = 1;
PlayerInfo[playerid][tolteny5] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*300)+23000;
format(stringx,sizeof(stringx), \"Vettél Desert Eagle-t %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
if(PlayerInfo[playerid][fegyver9] == 1) //------------- Shotgun
{
if(PlayerInfo[playerid][Penz] < tolteny*350) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny9] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*350;
format(stringx,sizeof(stringx), \"Vettél Shotgun töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
else if(PlayerInfo[playerid][fegyver9] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*350)+32000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][fegyver9] = 1;
PlayerInfo[playerid][tolteny9] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*350)+32000;
format(stringx,sizeof(stringx), \"Vettél Shotgunt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
if(PlayerInfo[playerid][fegyver6] == 1) //------------- MP5
{
if(PlayerInfo[playerid][Penz] < tolteny*380) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny6] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*380;
format(stringx,sizeof(stringx), \"Vettél MP5 töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
else if(PlayerInfo[playerid][fegyver6] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*380)+40000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][fegyver6] = 1;
PlayerInfo[playerid][tolteny6] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*380)+40000;
format(stringx,sizeof(stringx), \"Vettél MP5-öt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
if(PlayerInfo[playerid][fegyver7] == 1) //------------- AK47
{
if(PlayerInfo[playerid][Penz] < tolteny*400) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny7] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*400;
format(stringx,sizeof(stringx), \"Vettél AK47 töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
else if(PlayerInfo[playerid][fegyver7] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*400)+50000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][fegyver7] = 1;
PlayerInfo[playerid][tolteny7] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*400)+50000;
format(stringx,sizeof(stringx), \"Vettél AK47-et %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
}
}
}
return 1;
}
Nos, ahogy mondtad a fegyverid volt az egyik probléma, felhasználtam , mostmár megkapom azt a fegyvert amit szeretnék, és annyi töltényt amennyit kérek.
Egy probléma. A pénzt még mindig nem vonja le.. se azt ha nincs fegyverem es akkor veszek se akkor ha van es csak toltenyt veszek..
if(strcmp(cmd, \"/fegyvervesz\", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, \"Használat: /fegyvervesz [id] [töltény]\");
SendClientMessage(playerid, COLOR_GRAD2, \"Fegyver árakat és az ID-t atáblán találod.\");
return 1;
}
new fegyverid = strval(tmp);
tmp = strtok(cmdtext, idx);
new tolteny = strval(tmp);
if(fegyverid < 2 || fegyverid > 9) { SendClientMessage(playerid, COLOR_GRAD2, \"A fegyver ID-nek 2 és 9 között kell lennie.\"); return 1; }
if(tolteny < 1 || tolteny > 500) { SendClientMessage(playerid, COLOR_GRAD2, \"A töltényszámnak 1 és 500 között kell lennie!\"); return 1; }
if(!PlayerToPoint(30.0, playerid, 290.1126,-109.3564,1001.5156)){ SendClientMessage(playerid, COLOR_GRAD2, \"Nem vagy fegyverboltba.\"); return 1; }
{
if(fegyverid==2)
{
if(PlayerInfo[playerid][fegyver2] == 1) //------------- Baseball ütő
{
format(stringx,sizeof(stringx), \"Már van egy ütőd..\");
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
else if(PlayerInfo[playerid][fegyver2] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*3000)+0) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
PlayerInfo[playerid][fegyver2] = 1;
PlayerInfo[playerid][tolteny2] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*3000)+0;
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
format(stringx,sizeof(stringx), \"Vettél még pár baseball ütőt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
}
if(fegyverid==3)
{
if(PlayerInfo[playerid][fegyver3] == 1) //------------- Kés
{
format(stringx,sizeof(stringx), \"Már van egy késed..\");
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
else if(PlayerInfo[playerid][fegyver3] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*1500)+0) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
PlayerInfo[playerid][fegyver3] = 1;
PlayerInfo[playerid][tolteny3] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*1500)+0;
format(stringx,sizeof(stringx), \"Vettél egy kést %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
}
if(fegyverid==4)
{
if(PlayerInfo[playerid][fegyver4] == 1) //------------- 9MM
{
if(PlayerInfo[playerid][Penz] < tolteny*300) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny4] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*300;
format(stringx,sizeof(stringx), \"Vettél 9mm töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
else if(PlayerInfo[playerid][fegyver4] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*300)+20000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
PlayerInfo[playerid][fegyver4] = 1;
PlayerInfo[playerid][tolteny4] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*300)+20000;
format(stringx,sizeof(stringx), \"Vettél 9mm-t %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
}
if(fegyverid==5)
{
if(PlayerInfo[playerid][fegyver5] == 1) //------------- Desert Eagle
{
if(PlayerInfo[playerid][Penz] < tolteny*300) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny5] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*300;
format(stringx,sizeof(stringx), \"Vettél Desert Eagle töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
else if(PlayerInfo[playerid][fegyver5] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*300)+23000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][fegyver5] = 1;
PlayerInfo[playerid][tolteny5] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*300)+23000;
format(stringx,sizeof(stringx), \"Vettél Desert Eagle-t %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
}
if(fegyverid==9)
{
if(PlayerInfo[playerid][fegyver9] == 1) //------------- Shotgun
{
if(PlayerInfo[playerid][Penz] < tolteny*350) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny9] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*350;
format(stringx,sizeof(stringx), \"Vettél Shotgun töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
else if(PlayerInfo[playerid][fegyver9] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*350)+32000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][fegyver9] = 1;
PlayerInfo[playerid][tolteny9] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*350)+32000;
format(stringx,sizeof(stringx), \"Vettél Shotgunt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
}
if(fegyverid==6)
{
if(PlayerInfo[playerid][fegyver6] == 1) //------------- MP5
{
if(PlayerInfo[playerid][Penz] < tolteny*380) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny6] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*380;
format(stringx,sizeof(stringx), \"Vettél MP5 töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
else if(PlayerInfo[playerid][fegyver6] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*380)+40000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][fegyver6] = 1;
PlayerInfo[playerid][tolteny6] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*380)+40000;
format(stringx,sizeof(stringx), \"Vettél MP5-öt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
}
if(fegyverid==7)
{
if(PlayerInfo[playerid][fegyver7] == 1) //------------- AK47
{
if(PlayerInfo[playerid][Penz] < tolteny*400) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][tolteny7] += tolteny;
PlayerInfo[playerid][Penz] -= tolteny*400;
format(stringx,sizeof(stringx), \"Vettél AK47 töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
else if(PlayerInfo[playerid][fegyver7] == 0)
{
if(PlayerInfo[playerid][Penz] < (tolteny*400)+50000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
PlayerInfo[playerid][fegyver7] = 1;
PlayerInfo[playerid][tolteny7] += tolteny;
PlayerInfo[playerid][Penz] -= (tolteny*400)+50000;
format(stringx,sizeof(stringx), \"Vettél AK47-et %dft-ért.[/elővesz az elővételhez.]\",Penz);
SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
return 1;
}
}
}
}
return 1;
}