Szerző Téma: ZCMD + sscanf2 kick parancs  (Megtekintve 703 alkalommal)

ZCMD + sscanf2 kick parancs
« Dátum: 2012. Január 02. - 12:40:51 »
0 Show voters
Elkezdtem írni a saját admin rendszeremet, és az alap parancsoknál el is akadtam.
Úgy szerettem volna megoldani h ha egy admin beírja h /kick akkor kiírja neki hogy használat:......., ha beírja h /kick 1, akkor kickeli ID 1 játékost, ha beírja /kick 1 cheat akkor kickeli ID 1 játékost és kiírja mellé hogy indok: cheat
A problémám az, hogy ha azt írom be hogy /kick simán, akkor kickelné ID 0 játékost
eddig jutottam:
[pawn]
CMD:kick(playerid, params[])
{
if(AccInfo[playerid][Level] >= 2)
{
    if(strlen(params) == 0) return SendClientMessage(playerid,red,\"Használat: /kick [iD] [indok]\");
    new player, msg[100], str[100];
    sscanf(params,\"ds[100]\",player,msg);
   if(strlen(msg) == 0)
   {
      Format(str,\"Adminisztrátor \\\"%s\\\" kickelte \\\"%s\\\"-t\",pName(playerid),pName(player));
      return SendClientMessageToAll(grey,str);
    }
   else if(strlen(msg) != 0)
   {
      Format(str,\"Adminisztrátor \\\"%s\\\" kickelte \\\"%s\\\"-t | Indok: %s\",pName(playerid),pName(player),msg);
      return SendClientMessageToAll(grey,str);
   }
}
else return SendClientMessage(playerid,red,\"HIBA: Ezt a parancsot csak 2-es vagy magasabb szintû admin használhatja!\");
return 1;
}
[/pawn]

dexi

  • Vendég
ZCMD + sscanf2 kick parancs
« Válasz #1 Dátum: 2012. Január 02. - 13:01:49 »
0 Show voters
CMD:kick(playerid, params[])
{
        new player, msg[100], str[100];
if(AccInfo[playerid][Level] >= 2)
{
    if( sscanf(params,\"ds[100]\",player,msg)) return SendClientMessage(playerid, -1, \"Használat: /kick ID Ok\");
            {
                    Kick(player);
                    Format(str,\"Adminisztrátor \\\"%s\\\" kickelte \\\"%s\\\"-t . Ok: %s\",pName(playerid),pName(player),msg);
                    SendClientMessageToAll(   -1, str);
             }
        }
        else SendClientMessage(playerid, -1, \"HIBA: A parancs használatához minimum 2-es adminnak kell lenned.\");
}

 
Próbáld meg ezt.
« Utoljára szerkesztve: 2012. Január 02. - 13:03:28 írta Fl0rian »

Nem elérhető UppeR!

  • 1134
    • Profil megtekintése
ZCMD + sscanf2 kick parancs
« Válasz #2 Dátum: 2012. Január 02. - 13:02:14 »
0 Show voters
[pawn]CMD:kick(playerid, params[]) {
if(AccInfo[playerid][Level] >= 2) {
    new player, msg[50], str[128];
    if(sscanf(params, \"us[50]\", player, msg)) SendClientMessage(playerid, red, \"Használat: /kick [iD] [indok]\");
    else {
        if(player != INVALID_PLAYER_ID) {
         format(str, 128, \"Adminisztrátor \\\"%s\\\" kickelte \\\"%s\\\"-t | Indok: %s\",pName(playerid),pName(player),msg);
         SendClientMessageToAll(grey,str);
         Kick(player);
            } else SendClientMessage(playerid, red, \"Nem elérhetõ játékos!\");
   }
} else SendClientMessage(playerid,red,\"HIBA: Ezt a parancsot csak 2-es vagy magasabb szintû admin használhatja!\");
return 1;
}[/pawn]
« Utoljára szerkesztve: 2012. Január 02. - 13:04:05 írta UppeR! »

ZCMD + sscanf2 kick parancs
« Válasz #3 Dátum: 2012. Január 02. - 13:44:12 »
0 Show voters
köszi a válaszokat, de ezek nem jók, mert ha csak azt írom hogy /kick 1, akkor írja h Használat: /kick id indok
(de én olyat szeretnék h indok nélkül kickelje ID 1 játékost)
E:
megoldottam az isnull definícióval, zárok
[pawn]
#define isnull(%1) \\
((!(%1[0])) || (((%1[0]) == \'\\1\') && (!(%1[1]))))
[/pawn]
« Utoljára szerkesztve: 2012. Január 02. - 13:55:18 írta 1ST_Chr »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal