Szerző Téma: Jail  (Megtekintve 1076 alkalommal)

Jail
« Dátum: 2013. December 14. - 17:42:28 »
0 Show voters
Üdv!
Itt van ez a /jail parancs most töltöttem le, hogy építhetem bele azt ha egy admin berak valakit a börtönbe tiltsa le a parancsot számára és írja ki, hogy nem használhatsz parancsot a börtönben.. És az unjailba pedig oldja neki ezt a parancs letiltást
Jail:
 
CMD:jail(playerid, params[])
{
new giveplayerid, time,reason[128];
new name[MAX_PLAYER_NAME], giveplayername[MAX_PLAYER_NAME];
if(!sscanf(params,\"dds\",giveplayerid,time,reason))
{
    if(AccInfo[playerid][Admin] >= 2)
    {
        if(IsPlayerConnected(giveplayerid))
        {
           if(AccInfo[giveplayerid][Jailed] == 0)
           {
               SetPlayerInterior(giveplayerid, 0);
               AccInfo[giveplayerid][JailTime] = time*1000*60;
               JailTimer[giveplayerid] = SetTimerEx(\"UnJail\",AccInfo[giveplayerid][JailTime],0,\"d\",giveplayerid);
               SetPlayerPos(giveplayerid,1690.80004883,-1950.59997559,9.80000019);
               AccInfo[giveplayerid][Jailed] = 1;
         GetPlayerName(playerid,name,sizeof(name));
         GetPlayerName(giveplayerid,giveplayername,sizeof(giveplayername));
         format(reason,sizeof(reason),\"%s börtönbe zárta %s -t, %d percre. Indok: %s\",name,giveplayername,time,reason);
         SendClientMessageToAll(COLOR_PURPLE, reason);
      }
      else
      {
         SendClientMessage(playerid, COLOR_RED,\"Ez a játékos már börtönben van!\");
      }
   }
   else
   {
       SendClientMessage(playerid, COLOR_RED,\"Hiba: Rossz ID\");
   }
}
else
{
   SendClientMessage(playerid, COLOR_RED,\"Nem vagy elég magas szintû adminsztrátor!\");
}
}
else
{
    SendClientMessage(playerid, COLOR_RED,\"Használat: /jail [Playerid] [Perc] [indok]\");
}
return 1;
}

 
Unjail:
 
CMD:unjail(playerid, params[])
{
new giveplayerid, giveplayername[MAX_PLAYER_NAME];
new name[MAX_PLAYER_NAME];
if(!sscanf(params,\"i\",giveplayerid))
{
    if(AccInfo[playerid][Admin] >= 2)
    {
        if(IsPlayerConnected(giveplayerid))
        {
            if(AccInfo[giveplayerid][Jailed] == 1)
            {
                new string[128];
                UnJail(giveplayerid);
                GetPlayerName(giveplayerid,giveplayername,sizeof(giveplayername));
                GetPlayerName(playerid,name,sizeof(name));
                format(string,sizeof(string),\"%s Kiengedte a Börtönbõl %s-t\",name,giveplayername);
                SendClientMessageToAll(COLOR_PURPLE, string);
      }
      else
      {
         SendClientMessage(playerid, COLOR_RED,\"Hiba: A játékos nincs börtönben.\");
      }
   }
   else
   {
       SendClientMessage(playerid, COLOR_RED,\"Hiba: Rossz ID\");
   }
}
else
{
    SendClientMessage(playerid, COLOR_RED,\"Nem vagy elég magas szintû adminisztrátor!\");
}
}
else
{
    SendClientMessage(playerid, COLOR_RED,\"Használat: /unjail [Playerid]\");
}
return 1;
}

 

public UnJail(giveplayerid)
{
AccInfo[giveplayerid][Jailed] = 0;
KillTimer(JailTimer[giveplayerid]);
SpawnPlayer(giveplayerid);
SendClientMessage(giveplayerid, COLOR_RED,\"Kiengedtek!\");
return 1;
}
« Utoljára szerkesztve: 2013. December 14. - 17:57:17 írta ninjo98 »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Jail
« Válasz #1 Dátum: 2013. December 14. - 17:54:39 »
+2 Show voters
Rcon adminnál:
 
if(IsPlayerAdmin(playerid))

 
Saját adminrendszernél:
 
if(/* Változó */ >= /* Ahányas adminszinttõl */

Jail
« Válasz #2 Dátum: 2013. December 14. - 17:57:00 »
0 Show voters
Lehet nem írtam le jól  :Cry2: Akit az admin berak a börtönbe ne tudjon parancsot használni..
És ha kiengedik tudjon :)

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Jail
« Válasz #3 Dátum: 2013. December 14. - 18:16:10 »
+2 Show voters
Ja bocs :D Létrehozol egy logikai változót minden játékosnak, pl. a bortonbenvane[playerid]-t. Ennek adj false értéket alapból. Ám amikor börtönbe kerül, akkor állítsd át truera, ha meg kikerül, ismét falsera. De ezt lehet sima változóval is, számokkal, ez most mindegy. Ha true az érték, tehát a játékos börtönben van, akkor tiltod neki a parancsok használatát. ZCMD-vel nem foglalkozom, mert szerintem nem valami hasznos, max kezdõknek, sok hátránya is van. Éppen ezért nem tudom, hogy itt egyszerre hogy tudod az összes parancsnál letiltani a használatot, de az úgy megoldható, hogy minden parancshoz odaírod, higy csak igaz érték esetén teljesüljenek a dolgok.

Jail
« Válasz #4 Dátum: 2013. December 14. - 18:21:14 »
0 Show voters
Elméletbe megy csak hasonlót még nem készítettem, és nem is találtam  :(
Egy mintát tudnál linkelni vagy csinálni

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Jail
« Válasz #5 Dátum: 2013. December 14. - 18:39:07 »
+2 Show voters
Basszus alapszintû programozás... Egy darab értékadás, és elágazás az egész... Tabon vagyok, itt rossz forráskódot írni, de valamit kihozok neked.. A parancsba:
 
if(valtozo == 1)
{
   print(\"Jailban vagy, nem tudsz parancsokat használni!\");
}
else
{
   // Ide azt, amit csináljon a parancs.
}

 
Ezt oda írd, ahol berakod a börtönbe a játékost:
 
valtozo = 1;

 
Ezt meg oda, ahol kijön a jailból:
 
valtozo = 0;

Jail
« Válasz #6 Dátum: 2013. December 14. - 18:44:38 »
0 Show voters
Basszus még mindig nem értem  :facepalm:
Bele építené valaki nekem ?

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Jail
« Válasz #7 Dátum: 2013. December 14. - 18:49:53 »
+2 Show voters
Ennél jobban nem tudom elmagyarázni :confused: Majd más beleépíti neked, az, aki PC-n van, de én most biztosan nem.
Azonban valaki megcsinálja helyetted, és kész, de ettõl még nem fogod tudni, hogy is van ez, csak úgy ott lesz. Úgy pedig ne programozz, hogy nem is tudod, mit csinálsz!

Jail
« Válasz #8 Dátum: 2013. December 14. - 19:44:22 »
0 Show voters
Találtam egy ilyet és jó :)
 
public OnPlayerCommandReceived(playerid, cmdtext[])
{
   if(Börtön[playerid][Jailed] == 1)
{
       SendClientMessage(playerid, 0xFF0000AA, \"Börtönbe nincs parancs használat!\");
return 0;
}
return 1;
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal