Szerző Téma: Többfunkció Parancs  (Megtekintve 1063 alkalommal)

Többfunkció Parancs
« Dátum: 2018. május 24. - 07:18:54 »
0 Show voters
Helló! probálkoztam a megirással de valamiért nem sikerul valaki megoldás?
 

CMD:set(playerid,params[])
{
    if(isnull(params))
    {
        SCM(playerid, COL_MKEK, \"Használat: /set | Paraméterek | Név/id |\");
        SCM(playerid, COL_MKEK, \"[Paraméterek]: Jogsiad,Jogsiel,Adfengedely,Elfengedely\");
        return true;
    }
    new param[24],player;
    sscanf(params, \"s[24]{}u{}\", param,player);
    if(!strcmp(param, \"Jogsiad\", true))
    {
        SetIntData(player, \"jogsi\", 3);
        SCM(player,\"Kaptál egy jogositványt\");
        SCM(playerid,\"Adtál egy Jogsit!\");
        return true;
    }
    //else goto go_shelp;
    return true;
}

 
 

Többfunkció Parancs
« Válasz #1 Dátum: 2018. május 24. - 11:34:01 »
0 Show voters
Ez így biztos, hogy nem fog működni.
 

sscanf(params, \"s[24]{}u{}\", param,player);

 
 
 
Amit előszőr szeretnél felvenni, az odaírod, string esetén utána rakod a hosszúságát is, ezt követően 1-1 nyító-záró kapcsos jel.
 

sscanf(params, \"u{}\",player);

 
Utána ha ezt felvetted. és a játékost leellenőrízted pl., hogy csatlakozva van-e. akkor jön a többi paraméter. Viszont amit már felvettél, azt berakod a kapcsos zárójelbe, ergo hagyja figyelmen kívül, bár ez így kicsit nyers fogalmazás.
 

sscanf(params, \"{u}s[24]{}\",set);

 
Utána meg felveszed a többit is hasonlóképpen.
 
Ha bővíted fontos, hogy legyen utána {}
 

sscanf(params, \"{us[24]}d\",int);

 
 

Többfunkció Parancs
« Válasz #2 Dátum: 2018. május 24. - 13:28:52 »
0 Show voters
esetleg igy?
 


CMD:engedelyek(playerid,params[])
{
    new param[32],player;
    if(!IsPlayerRendor(playerid)) return  SCM(playerid, COLOR_RED, \"Nem vagy rendőr!\");
    if(sscanf(params,\"u{}\",player)) return  SCM(playerid, COLOR_WHITE, \"{269BD9}Használat:{FFFFFF}/engedélyek [Név/ID] [jogsiad,jogsiel,adfengédely,elfengédely]\");
    if(player == INVALID_PLAYER_ID) return Malibu(playerid,  \"Hibás ID.\");//lecekolom a playert h van e ilyen id
    if(sscanf(params,\"{u}s[32]{}\",param)) return SCM(playerid, COLOR_WHITE, \"{269BD9}Használat:{FFFFFF}/engedélyek [Név/ID] [jogsiad,jogsiel,adfengédely,elfengédely]\");
if(!strcmp(param, \"jogsiad\", true))
{
        SetIntData(player, \"jogsi\", 3);
   SCM(player, COLOR_RED, \"Egy rendőr adott neked egy jogositványt.\");
   SCM(playerid,COLOR_WHITE,\"Adtál egy Jogsit!\");
}
else if(!strcmp(param, \"jogsiel\", true))
{
        SetIntData(player, \"jogsi\", 0);
   SCM(player, COLOR_RED, \"Egy rendőr elvette a jogositványodat.\");
   SCM(playerid,COLOR_WHITE,\"Elvetted a Jogsit!\");
}
else if(!strcmp(param, \"adfengedely\", true))
{
        SetIntData(player, \"fegyverengedely\", 1);
   format(query, sizeof(query), \"UPDATE `players` SET `fegyverengedely`=1 WHERE `name`=\'%s\'\", pName(player));
   mysql_tquery(query);
   SCM(playerid, COLOR_WHITE, \"Adtál egy fegyverengedélyt.\");
   SCM(player, COLOR_RED, \"Egy rendőr adott neked egy fegyverengedélyt.\");
}
else if(!strcmp(param, \"elfengedely\", true))
{
   SetIntData(player, \"fegyverengedely\", 0);
   format(query, sizeof(query), \"UPDATE `players` SET `fegyverengedely`=0 WHERE `name`=\'%s\'\", pName(player));
   mysql_tquery(query);
   SCM(playerid, COLOR_WHITE, \"Elvetted a fegyverengedélyét.\");
   SCM(player, COLOR_RED, \"Egy rendőr elvette a fegyverengedélyed.\");
}
    return 1;
}

 
 

Többfunkció Parancs
« Válasz #3 Dátum: 2018. május 24. - 14:28:13 »
0 Show voters
Jaja, ennek működnie kéne.
 
 

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal