Szerző Téma: Parancs átírása  (Megtekintve 981 alkalommal)

Parancs átírása
« Dátum: 2014. június 05. - 19:06:17 »
0 Show voters
Sziasztok!
Sokat próbálkoztam, de sajnos nem igen sikerül :(
Azt szeretném megoldani hogy ez a parancs ne CMD:szr legyen hanem:   if(strcmp(cmd, \"/szr\", true) == 0)
Akár hányszor próbálgattam átírni mindig valamibe belekötött :(
Elõre is köszönöm!
Script:
 
CMD:szr(playerid, params[])
{
        new nev[MAX_PLAYER_NAME], szoveg[256], string[256];
        if(PlayerInfo[playerid][munka] == 0) return SendClientMessage(playerid, PIROS, \"Nem használhatod ezt a parancsot!\");
        if(sscanf(params, \"s\", szoveg)) return SendClientMessage(playerid, PIROS, \"Használat: /szr [szöveg]\");
        GetPlayerName(playerid, nev, sizeof(nev));
        if(PlayerInfo[playerid][munka] == SZERELO) format(string, sizeof(string), \"Szerelõ,{28ad00}%s(%s): (({f8faf7}%s))\", nev, Munkarang(playerid), szoveg);
 
        for(new i; i <MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                    if(PlayerInfo[playerid][munka] == PlayerInfo[munka])
                        {
                        SendClientMessage(i, 0xffffffAA, string);
                        if(hang[playerid] == true) PlayerPlaySound(playerid, 1190, 0, 0, 0);
                        }
            }
        }
        return 1;
}
« Utoljára szerkesztve: 2014. június 05. - 19:08:51 írta Jim Toretto »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Parancs átírása
« Válasz #1 Dátum: 2014. június 06. - 14:49:23 »
0 Show voters
OPCT-nél nincs alapból darabolva paraméter, azért nem mûködik úgy. Ha már van sscanfod, nem lesz nehéz dolgod.
 
new cmd, params[144];
sscanf(cmdtext, \"s[32]S()[32]\", cmd, params);
if(!strcmp(\"/szr\", cmd)) {
if(!strlen(params)) //Nincs beírva paraméter.
//Itt már darabolhatod a PARAMÉTEREKET tovább sscanffal.
return 1;
}

 
Sok szerencsét, további jó scriptelést! :thumbsup:
U.i.: a zcmd sokkal gyorsabb lesz, azt javaslom, hogy használd.
« Utoljára szerkesztve: 2014. június 06. - 14:53:01 írta KovaNovik »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Parancs átírása
« Válasz #2 Dátum: 2014. június 06. - 14:59:28 »
0 Show voters
Gondolom azért akarsz egy alap parancsfeldolgozó-t használni mert a ZCMD-t nem tudtad kitanulni sscanf-al.
Annyi a hiba a scriptben hogy ez helyett:
 
if(sscanf(params, \"s\", szoveg))

 
így:
 
if(sscanf(params, \"s[256]\", szoveg))

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Parancs átírása
« Válasz #3 Dátum: 2014. június 06. - 15:09:14 »
0 Show voters
Nem hinném. Az sscanf attól mûködik (32-nek veszi), csak warningot dob.

Parancs átírása
« Válasz #4 Dátum: 2014. június 05. - 19:06:17 »
0 Show voters
Sziasztok!
Sokat próbálkoztam, de sajnos nem igen sikerül :(
Azt szeretném megoldani hogy ez a parancs ne CMD:szr legyen hanem:   if(strcmp(cmd, \"/szr\", true) == 0)
Akár hányszor próbálgattam átírni mindig valamibe belekötött :(
Elõre is köszönöm!
Script:
 
CMD:szr(playerid, params[])
{
        new nev[MAX_PLAYER_NAME], szoveg[256], string[256];
        if(PlayerInfo[playerid][munka] == 0) return SendClientMessage(playerid, PIROS, \"Nem használhatod ezt a parancsot!\");
        if(sscanf(params, \"s\", szoveg)) return SendClientMessage(playerid, PIROS, \"Használat: /szr [szöveg]\");
        GetPlayerName(playerid, nev, sizeof(nev));
        if(PlayerInfo[playerid][munka] == SZERELO) format(string, sizeof(string), \"Szerelõ,{28ad00}%s(%s): (({f8faf7}%s))\", nev, Munkarang(playerid), szoveg);
 
        for(new i; i <MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                    if(PlayerInfo[playerid][munka] == PlayerInfo[munka])
                        {
                        SendClientMessage(i, 0xffffffAA, string);
                        if(hang[playerid] == true) PlayerPlaySound(playerid, 1190, 0, 0, 0);
                        }
            }
        }
        return 1;
}
« Utoljára szerkesztve: 2014. június 05. - 19:08:51 írta Jim Toretto »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Parancs átírása
« Válasz #5 Dátum: 2014. június 06. - 14:49:23 »
0 Show voters
OPCT-nél nincs alapból darabolva paraméter, azért nem mûködik úgy. Ha már van sscanfod, nem lesz nehéz dolgod.
 
new cmd, params[144];
sscanf(cmdtext, \"s[32]S()[32]\", cmd, params);
if(!strcmp(\"/szr\", cmd)) {
if(!strlen(params)) //Nincs beírva paraméter.
//Itt már darabolhatod a PARAMÉTEREKET tovább sscanffal.
return 1;
}

 
Sok szerencsét, további jó scriptelést! :thumbsup:
U.i.: a zcmd sokkal gyorsabb lesz, azt javaslom, hogy használd.
« Utoljára szerkesztve: 2014. június 06. - 14:53:01 írta KovaNovik »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Parancs átírása
« Válasz #6 Dátum: 2014. június 06. - 14:59:28 »
0 Show voters
Gondolom azért akarsz egy alap parancsfeldolgozó-t használni mert a ZCMD-t nem tudtad kitanulni sscanf-al.
Annyi a hiba a scriptben hogy ez helyett:
 
if(sscanf(params, \"s\", szoveg))

 
így:
 
if(sscanf(params, \"s[256]\", szoveg))

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
Parancs átírása
« Válasz #7 Dátum: 2014. június 06. - 15:09:14 »
0 Show voters
Nem hinném. Az sscanf attól mûködik (32-nek veszi), csak warningot dob.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal