Szóval írnám a kis lőszer ácémet, erre errorozás nincs, de amikor lövök mindig kickel
new dezitolteny[MAX_PLAYERS];
new dezitoltenyy[MAX_PLAYERS];
public OnPlayerSpawn(playerid)
{
new rand = random(sizeof(RandomSpawns));
SetPlayerPos(playerid,RandomSpawns[rand][0],RandomSpawns[rand][1],RandomSpawns[rand][2]);
SetPlayerInterior(playerid,2);
GivePlayerWeapon(playerid,4,1);
new users[64];
new nev[MAX_PLAYER_NAME];
GetPlayerName(playerid,nev,sizeof(nev));
format(users,sizeof(users),\"/users/%s.txt\",nev);
dezitolteny[playerid]=200;
GivePlayerWeapon(playerid,24,200);
return 1;
}
forward OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if (weaponid==24)
{
dezitoltenyy[playerid]=dezitolteny[playerid]-1;
SetTimerEx(\"Anticheatdezi\", 500, false, \"i\", playerid);
}
return 1;
}
forward Anticheatdezi(playerid);
public Anticheatdezi(playerid)
{
if (strval(dezitoltenyy[playerid]) != GetPlayerAmmo(playerid))
{
Kick(playerid);
}
return 1;
}
Probáld ki azt hogy előszőr levonod az egyet és utánna teszed változoba tehát a
dezitolteny [playerid]-1;
dezitoltenyy[playerid]=dezitolteny[playerid];
Mondjuk nemvágom h minek van külön változoba szerintem felesleges
Meg szedd ki az strval a ac ból az nem kell oda :)
teszteltem tökéletesen működik :D
meg irtam egy kis üzenetet hogy tudja a player mért kickelték ki :D
new dezitolteny[MAX_PLAYERS];
public OnPlayerSpawn(playerid)
{
new rand = random(sizeof(RandomSpawns));
SetPlayerPos(playerid,RandomSpawns[rand][0],RandomSpawns[rand][1],RandomSpawns[rand][2]);
SetPlayerInterior(playerid,2);
GivePlayerWeapon(playerid,4,1);
new users[64];
new nev[MAX_PLAYER_NAME];
GetPlayerName(playerid,nev,sizeof(nev));
format(users,sizeof(users),\"/users/%s.txt\",nev);
dezitolteny[playerid]=200;
GivePlayerWeapon(playerid,24,200);
return 1;
}
forward OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if (weaponid==24)
{
dezitolteny[playerid]--;
SetTimerEx(\"Anticheatdezi\", 500, false, \"i\", playerid);
}
return 1;
}
forward Anticheatdezi(playerid);
public Anticheatdezi(playerid)
{
if(dezitolteny[playerid] != GetPlayerAmmo(playerid))
{
SendClientMessageToAll(0xFFFF00FF, \"AntiCheat: Több töltényed volt a megengedettnél!!\");
Kick(playerid);
}
return 1;
}