Szerző Téma: Parancs spam  (Megtekintve 511 alkalommal)

Nem elérhető Samp2022

  • 0
  • Discord: -
    • Profil megtekintése
Parancs spam
« Dátum: 2022. Július 11. - 00:52:10 »
0
Sziasztok

Segitséget szeretnék kérni.

Van egy parancs, amit akárhányszor belehet írni, és lényegében bespameled vele a chatet, és abban kérnék segítséget, hogy lehetne megcsinálni hogy ha pl 1 parancsot már 1x beírtunk, akkor 5 másodpercig ne lehessen újra beírni?


CMD:kickdoor(playerid, params[])
{
   static
       id = -1;

   if (GetFactionType(playerid) != FACTION_POLICE)
       return SendErrorMessage(playerid, "Nem vagy Rendőr.");

   if ((id = House_Nearest(playerid)) != -1)
   {
       if (!HouseData[id][houseLocked])
           return SendErrorMessage(playerid, "Ez a ház nyitva van.");

       ApplyAnimation(playerid, "POLICE", "Door_Kick", 4.0, 0, 0, 0, 0, 0);

      SendNearbyMessage(playerid, 10.0, COLOR_PURPLE, "** %s teljesen erővel az ajtóba rúg, abban reménykedve hogy betöri.", ReturnName(playerid, 0));
       SetTimerEx("KickHouse", 2500, false, "dd", playerid, id);
   }
   else if ((id = Business_Nearest(playerid)) != -1)
   {
      if (!BusinessData[id][bizLocked])
          return SendErrorMessage(playerid, "Ez a üzlet nyitva van.");

        ApplyAnimation(playerid, "POLICE", "Door_Kick", 4.0, 0, 0, 0, 0, 0);

      SendNearbyMessage(playerid, 10.0, COLOR_PURPLE, "** %s teljesen erővel az ajtóba rúg, abban reménykedve hogy betöri.", ReturnName(playerid, 0));
       SetTimerEx("KickBusiness", 2500, false, "dd", playerid, id);
   }
   else {
      SendErrorMessage(playerid, "Nem vagy üzlet és ház közelébe.");
   }
   return 1;
}

Nem elérhető gbr333

  • 670
    • Profil megtekintése
Re:Parancs spam
« Válasz #1 Dátum: 2022. Július 11. - 19:10:35 »
0
Szia!

Én erre a GetTickCount függvényt használtam anno.
Ez lekéri, hogy hány milliszekundum telt el a szerver indítása óta. Egy kicsit számolgatva vele simán megoldható, amit szeretnél.

new gLastDoorKick[MAX_PLAYERS] = 0;  //Ide tárolod el, hogy ki, mikor használta ezt a parancsot utoljára.

CMD:kickdoor(playerid, params[])
{

if(gLastDoorKick[playerid] > GetTickCount() - 5000)  // Ha az utolsó használat ideje nagyobb, mint a jelenlegi idő - 5 másodperc (5000ms), azaz nem telt még el 5 másodperc az utolsó használat óta.
return SendErrorMessage(playerid, "Csak 5 másodpercenként használhatod ezt a parancsot!");

static
id = -1;

if (GetFactionType(playerid) != FACTION_POLICE)
return SendErrorMessage(playerid, "Nem vagy Rendőr.");

if ((id = House_Nearest(playerid)) != -1)
{
if (!HouseData[id][houseLocked])
return SendErrorMessage(playerid, "Ez a ház nyitva van.");

ApplyAnimation(playerid, "POLICE", "Door_Kick", 4.0, 0, 0, 0, 0, 0);
SendNearbyMessage(playerid, 10.0, COLOR_PURPLE, "** %s teljesen erővel az ajtóba rúg, abban reménykedve hogy betöri.", ReturnName(playerid, 0));
SetTimerEx("KickHouse", 2500, false, "dd", playerid, id);
gLastDoorKick[playerid] = GetTickCount(); //Itt regisztrálod, hogy mikor használta utóljára. 
}
else if ((id = Business_Nearest(playerid)) != -1)
{
if (!BusinessData[id][bizLocked])
return SendErrorMessage(playerid, "Ez a üzlet nyitva van.");

ApplyAnimation(playerid, "POLICE", "Door_Kick", 4.0, 0, 0, 0, 0, 0);

SendNearbyMessage(playerid, 10.0, COLOR_PURPLE, "** %s teljesen erővel az ajtóba rúg, abban reménykedve hogy betöri.", ReturnName(playerid, 0));
SetTimerEx("KickBusiness", 2500, false, "dd", playerid, id);
gLastDoorKick[playerid] = GetTickCount();
}
else {
SendErrorMessage(playerid, "Nem vagy üzlet és ház közelébe.");
}
return 1;
}


Nem elérhető Samp2022

  • 0
  • Discord: -
    • Profil megtekintése
Re:Parancs spam
« Válasz #2 Dátum: 2022. Július 11. - 22:40:11 »
0
Nagyon szépen köszönöm, minden tökéletesen müködik.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal