Szerző Téma: Csak admin tudja használni a teleportot.  (Megtekintve 1100 alkalommal)

Csak admin tudja használni a teleportot.
« Dátum: 2013. november 04. - 16:27:03 »
0 Show voters
Sziasztok!
Szeretnék segítséget kérni még pedig készítettem egy teleport scriptet és szeretném, hogy csak admin tudja használni tudnátok segíteni?
 
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/t347\", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid,0xFF000000,\"Teleportok:\");
ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,\"Teleportok:\",\"/vmi\",\"Választ\", \"\");//Dialog ID: 1
return 1;
}
return 0;
}

 
Lényeg az lenne hogy ezt át írni admin parancsba, hogy csak admin tudja használni
Elõre is köszönöm!
« Utoljára szerkesztve: 2013. november 04. - 16:38:40 írta lionorgames »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Csak admin tudja használni a teleportot.
« Válasz #1 Dátum: 2013. november 04. - 16:40:09 »
+1 Show voters
public OnPlayerCommandText(playerid, cmdtext[])
{
       if (strcmp(\"/t347\", cmdtext, true, 10) == 0)
       {
               if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, \"nem vagy admin!\");
               SendClientMessage(playerid,0xFF000000,\"Teleportok:\");
               ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,\"Teleportok:\",\"/vmi\",\"Választ\", \"\");//Dialog ID: 1
               return 1;
}
       return 0;
}

Csak admin tudja használni a teleportot.
« Válasz #2 Dátum: 2013. november 04. - 17:06:24 »
0 Show voters
Rendben és úgy meglehetne csinálni hogy ne csak rcon admin tudjon hanem 1lvl-tõl fölfele?
« Utoljára szerkesztve: 2013. november 04. - 17:27:48 írta lionorgames »

Csak admin tudja használni a teleportot.
« Válasz #3 Dátum: 2013. november 04. - 17:29:01 »
0 Show voters
Ahoz már külön adminrendszer kell

Nem elérhető JBauer

  • 1407
    • Profil megtekintése
Csak admin tudja használni a teleportot.
« Válasz #4 Dátum: 2013. november 04. - 18:04:33 »
0 Show voters
Rossz helyre nyitottad, átraktam ide.

Csak admin tudja használni a teleportot.
« Válasz #5 Dátum: 2013. november 04. - 18:12:38 »
0 Show voters
    public OnPlayerCommandText(playerid, cmdtext[])
   {
           if (strcmp(\"/t347\", cmdtext, true, 10) == 0)
           {
                   JatekosInfo[playerid][AdminSzint] >= 1) return SendClientMessage(playerid, HIBA, \"* Ezt a parancsot 1-es vagy annál nagyobb szintû adminisztrátor használhatja.\");
                   SendClientMessage(playerid,0xFF000000,\"Teleportok:\");
                   ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,\"Teleportok:\",\"/vmi\",\"Választ\", \"\");//Dialog ID: 1
                   return 1;
    }
           return 0;
   }

 
De amúgy is rosszul csináltad, mivel a csetre írja a Teleportokat, de Dialógust nyit neki, amibe felesleges a / jel.
Így kezd el:
Szín:
 
#define COLOR_HIBA 0xFF0000FF // Piros
#define COLOR_SIKERES_TELEPORT 0x00FF00FF // Zöld

 
A parancs:
 
public OnPlayerCommandText(playerid, cmdtext[])
{
           if (strcmp(\"/teleport\", cmdtext, true, 10) == 0)
    {
                   JatekosInfo[playerid][AdminSzint] >= 1) return SendClientMessage(playerid, COLOR_HIBA, \"* Ezt a parancsot 1-es vagy nagyobb admin használhatja.\");
                   ShowPlayerDialog(playerid,1, DIALOG_STYLE_LIST,\"Választható teleportok:\",\"Teleport 1.\\nTeleport 2.\\nTeleport 3.\",\"Kiválaszt\", \"Mégsem\");
                   return 1;
    }
    return 0;
}

 
A dialógus:
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(response) // Azaz van \"Mégsem\".
       switch(listitem) // Választható értékek.
       {
            case 0: // Teleport 1.
            {
   SetPlayerPos(playerid, x, y, z); // Adj meg adatot.
   SendClientMessage(playerid, COLOR_SIKERES_TELEPORT, \"* Sikeresen teleportáltál. Hely: Teleport 1.\");
            }
            case 1: // Teleport 2.
            {
   SetPlayerPos(playerid, x, y, z); // Adj meg adatot.
   SendClientMessage(playerid, COLOR_SIKERES_TELEPORT, \"* Sikeresen teleportáltál. Hely: Teleport 2.\");
            }
           case 2: // Teleport 3.
            {
   SetPlayerPos(playerid, x, y, z); // Adj meg adatot.
   SendClientMessage(playerid, COLOR_SIKERES_TELEPORT, \"* Sikeresen teleportáltál. Hely: Teleport 3.\");
     }
          }
}
return 1; // És így tovább...
}
« Utoljára szerkesztve: 2013. november 04. - 18:26:39 írta AdamHawer »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Csak admin tudja használni a teleportot.
« Válasz #6 Dátum: 2013. november 05. - 13:16:59 »
0 Show voters
Ádám nem kell túlbonyolítani.
Annyi az egész hogy mindenhol máshogy kérdezik le az admin szintet. Mivel én nem tudom milyen adminrendszert használsz (gondolom változósat) ezért leírok neked egy példát.
Na szóval, ha így kérdezed le az adminszintet, hogy: playerdata[playerid][Adminszint] akkor így fog kinézni a kódod:
 
public OnPlayerCommandText(playerid, cmdtext[])
{
       if (strcmp(\"/t347\", cmdtext, true, 10) == 0)
       {
               if(playerdata[playerid][Adminszint] < 1) return SendClientMessage(playerid, -1, \"Ehhez a parancshoz minimum 1 es adminszint szükséges.\");
               SendClientMessage(playerid,0xFF000000,\"Teleportok:\");
               ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,\"Teleportok:\",\"/vmi\",\"Választ\", \"\");//Dialog ID: 1
               return 1;
}
       return 0;
}

 
Ha viszont azt szeretnéd, hogy 2-es adminszinttõl lehessen használni a /t347 parancsot, akkor a playerdata[playerid][Adminszint] < 1 helyett playerdata[playerid][Adminszint] < 2 -t írsz és így tovább..!  ;)

Csak admin tudja használni a teleportot.
« Válasz #7 Dátum: 2013. november 05. - 17:38:09 »
0 Show voters
Kedves Flash,
Lényegében ugyan azt a kódot írtad le mint én, csak épp a return üzenet és a \"playerdata\" lett más.
Igen ehhez kell enum...

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal