GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Brand - 2016. február 09. - 20:05:11

Cím: Fegyver miatt kick
Írta: Brand - 2016. február 09. - 20:05:11
Sziasztok!
A kódomnak annyit kéne csinálnia ,hogy lekérdezi ,hogy van e a játékos kezében fegyver, és ha van akkor kickelje, sajnos ez a kickelés nem mindig történik meg, mi lehet a probléma?
 
            new weapon, ammo;
      for(new i=0;i<14;i++)
      {
          GetPlayerWeaponData(playerid, i, weapon, ammo);
         if(weapon != 0 && ammo != 0)
         {
            Kick(playerid);
            return 1;
         }
      }
Cím: Fegyver miatt kick
Írta: BVZS - 2016. február 09. - 20:09:39
Próbáld
 
if(weapon != 0 && ammo != 0)

 
helyett
 
if(weapon != 0)

 
Nem tuti hogy jó lesz így, de most teszt szerveremen kipróbáltam hogy mivan akkor ha egy 0 \"lőszeres\" baseball ütőt adok magamnak, és megadta.
Cím: Fegyver miatt kick
Írta: Brand - 2016. február 09. - 20:42:28
Továbbra is van 1 személy akit nem dob ki sajnos.
Cím: Fegyver miatt kick
Írta: Flash - 2016. február 09. - 20:54:03
A kóddal nincs baj. Hol helyezkedik el?
Cím: Fegyver miatt kick
Írta: Brand - 2016. február 09. - 21:55:24
Az elhelyezkedés a következő:
 
public OnPlayerSpawn(playerid)
{
Object(playerid);
}
public Object(playerid)
{
TogglePlayerControllable(playerid, false);
SetTimerEx(\"ObjectOff\", 2000, 0,\"e\",playerid); //Az \"ObjectOff\" meghívása 2 másodperc múlva
return 1;
}
public ObjectOff(playerid)
{
TogglePlayerControllable(playerid, true);    
if(!IsPlayerNPC(playerid))
{
if(sobeit[playerid] == 0)
{
    new weapon, ammo;
   for(new i=0;i<14;i++)
   {
       GetPlayerWeaponData(playerid, i, weapon, ammo);
      if(weapon != 0 && ammo != 0)
      {
 
            KickEx(playerid,PIROS,\"(([AntiCheat]: Kérlek a segédprogramot töröld le!))\");
            Ment(playerid);
            new S[128];
            format(S,sizeof(S),\"%s kirúgva a rendszer által! || Indok: Segédprogram\",Nev(playerid));
            SendClientMessageToAll(0xFF0000AA,S);
 
            return 1;
      }
      else
      {
            sobeit[playerid] = 1;
      }
   }
}
}
return 1;
}
Cím: Fegyver miatt kick
Írta: Kovacs_Richard - 2016. február 10. - 09:36:01
Idézetet írta: Brand date=1455044711\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59489\" data-ipsquote-contentclass=\"forums_Topic
Sziasztok!
A kódomnak annyit kéne csinálnia ,hogy lekérdezi ,hogy van e a játékos kezében fegyver, és ha van akkor kickelje
...
GetPlayerWeaponData(playerid, i, weapon, ammo);
 
http://wiki.sa-mp.com/wiki/GetPlayerWeapon
http://wiki.sa-mp.com/wiki/GetPlayerWeaponData
Nézd meg a kettő között a különbséget...amit te kérdezel le az az összes fegyver ami a játékosnál van, nem a kezében levő.
 
SetTimerEx(\"ObjectOff\", 2000, 0,\"e\",playerid);

 
http://wiki.sa-mp.com/wiki/SetTimerEx
SpecifierMeaning
iInteger.
dInteger.
Szóval \"e\" format helyett \"d\", vagy \"i\" kell!
Ezek a módosítások után nézd meg, más hibát most hirtelen nem látok.
Cím: Fegyver miatt kick
Írta: Brand - 2016. február 10. - 10:00:52
Akkor rosszul írtam, elnézést, az a célom ,hogy az összeset kérje le, és ha van valami nálla dobja ki.