Szerző Téma: Hogyan is készül egy /try parancs?  (Megtekintve 5380 alkalommal)

Nem elérhető doboka98

  • 1002
    • Profil megtekintése
Hogyan is készül egy /try parancs?
« Válasz #15 Dátum: 2012. október 19. - 11:57:19 »
+1 Show voters
Idézetet írta: banbence date=1350588702\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28631\" data-ipsquote-contentclass=\"forums_Topic
Azt hogy lehet megcsinálni, hogy ha valaki csak annyit ír be, hogy: /try    akkor azt írja ki, hogy Használata: /try [cselekvés]
Meg ha valaki beírja /try enni és kiírja hogy Józsi megpróbálta ....   <- Ezt a szöveget színezni. Én próbáltam minden,hogyan de nem sikerült.  :no:
 

    CMD:try(playerid, params[])
    {
            new some[32 + 1];//létrehozzuk a változót, ami tárolni fogja azt a szöveget, amit beírunk a /try parancs után
            new name[32 + 1];
            GetPlayerName(playerid, name, sizeof(name));// a name változóba kikérjük a játékos nevét
            if( !sscanf(params, \"s[32]\", some) ) //ez a feltétel, akkor teljesül ha a szöveg ténylegesen egy szöveg és nem szám vagy egyéb
            {
                    switch(random(2)) //itt a switch egy megadott lehetõség. körülbelül úgy kell elképzelni, mint egy kart, amit húzigálhatunk
                    {
                        case 0://ha az elsõ eset következik be.
                            {
                                    new string[ 64 + 1 ];
                                    format(string, sizeof(string), \"%s megpróbál(ja) %s, és sikerül neki!\", name, some);//megformáljuk a szöveget
                                    SendClientMessage(playerid, -1, string);
                            }
                            case 1://ha a második eset következik be.
                            {
                                    new string[ 64 + 1 ];
                                    format(string, sizeof(string), \"%s megpróbál(ja) %s, és nem sikerül neki!\", name, some);//megformáljuk a szöveget
                                    SendClientMessage(playerid, -1, string);
                            }
                    }
            }
   else {
       SendClientMessage(playerid, -1, \"HASZNÁLAT: /try [cselekvés]\");
   }
            return 1;
    }

Hogyan is készül egy /try parancs?
« Válasz #16 Dátum: 2012. október 19. - 12:36:30 »
0 Show voters
Nagyon szépen köszönöm!:)

Nem elérhető krisk

  • 2380
    • Profil megtekintése
Hogyan is készül egy /try parancs?
« Válasz #17 Dátum: 2012. október 21. - 07:18:28 »
+1 Show voters
Idézetet írta: doboka98 date=1350391118\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28631\" data-ipsquote-contentclass=\"forums_Topic


 

Kiíródik csak egy kis hülyeséget csináltam, javítom, de amúgy nem kell 128.
 

/try megmenteni egy aranyos fehér cicát a felé száguldó új tipusú fehér-kék intercity vonat elõl

 
mibe, hogy ezt nem írja ki, mert több, mint 32 karakter?
 
[/quote]
Ha valakinek több kell, átírja :). Mindenbe nem kell belekötni. Már nem azért, nem akarok veszekedni, de csak úgy megemlítem, hogy eddig mindenki mindenbe belekötött, amit én csináltam, elismerem, hogy hibázok, de akkor más hibáiba miért nem köttök bele? :)
 
[/quote]
Azért, mert így javul az ember. Ha mindenki azt írná be a másik leírásába, hogy fú de f***a topic lett ez! Mindent tök f***án elmagyaráztál, csak így tovább!, akkor abból mit tanulsz?
Mindenki leírásában lehet hibát találni, amiket én általában el is szoktam mondani, és kifejezetten elvárom másoktól is, hogyha találnak egy hibát az én tutomban vagy esetleges scriptemben (amibõl még egy sincs a fórumon), vagy ha találnak valami fejleszteni valót, esetleg egy jópofa dolgot, amit oda lehet írni, akkor hozzák a tudomásomra.
Tessék csak megnézni a PAWN tutorialomat, mennyi ember írta, hogy ezt és ezt elírtam, meg ezt és ezt bele lehetne még írni, vagy, hogy a legfrissebbet említsem, amit írtam Anthony bitmûveletes tutjába. Szerintem egyik sem ütötte meg azt a hangnemet, meg az itt lévõ topicban lévõ kritika sem, annyit kellett volna írni, hogy kösz, javítom, és ennyi.
Mindig lehet hova fejlõdni, és ezzel nem lecseszni akarunk, csak jobbá tenni.


De hogy ne offoljunk, egy kicsit lehetne ezt egyszerûsíteni. Ha egybõl kiírjujk azt, hogy hogy kell használni a parancsot, majd return 1-el megszakítjuk a parancs lefutását, sokkal szebben néz ki a kód és könnyebb az esetleges troubleshooting.
 
    CMD:try(playerid, params[])
    {
            new some[32 + 1];//létrehozzuk a változót, ami tárolni fogja azt a szöveget, amit beírunk a /try parancs után
            new name[32 + 1];
            GetPlayerName(playerid, name, sizeof(name));// a name változóba kikérjük a játékos nevét
            if(sscanf(params, \"s[32]\", some) ) { SendClientMessage(playerid, -1, \"HASZNÁLAT: /try [cselekvés]\"); return 1; }
                    switch(random(2)) //itt a switch egy megadott lehetõség. körülbelül úgy kell elképzelni, mint egy kart, amit húzigálhatunk
                    {
                        case 0://ha az elsõ eset következik be.
                            {
                                    new string[ 64 + 1 ];
                                    format(string, sizeof(string), \"%s megpróbál(ja) %s, és sikerül neki!\", name, some);//megformáljuk a szöveget
                                    SendClientMessage(playerid, -1, string);
                            }
                            case 1://ha a második eset következik be.
                            {
                                    new string[ 64 + 1 ];
                                    format(string, sizeof(string), \"%s megpróbál(ja) %s, és nem sikerül neki!\", name, some);//megformáljuk a szöveget
                                    SendClientMessage(playerid, -1, string);
                            }
                    }
            }
            return 1;
    }
« Utoljára szerkesztve: 2012. október 21. - 09:54:46 írta krisk »

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
Hogyan is készül egy /try parancs?
« Válasz #18 Dátum: 2012. október 21. - 20:08:59 »
0 Show voters
Szerintem meg isnull-t kell használni, és megvan oldva a hosszúság problémája is...

Hogyan is készül egy /try parancs?
« Válasz #19 Dátum: 2012. október 21. - 21:19:39 »
0 Show voters
Idézetet írta: DrAkE date=1350842939\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28631\" data-ipsquote-contentclass=\"forums_Topic
Szerintem meg isnull-t kell használni, és megvan oldva a hosszúság problémája is...
 
Igazad van, csak akkor tuti nem fog kiférni az üzenet, ha túl sok karaktert ír be, na mindegy írtam egy változatot, nem teszteltem. (ha jelzitek ha van hiba, akkor javítom  :angel:)
 
CMD:try(playerid, params[])
{
if(isnull(params) || strlen(params) > 32) return SendClientMessage(playerid, -1, \"HASZNÁLAT: /try [cselekvés] -- Nincs megadva cselekmény vagy túl sok karaktert írtál be, max 32.\");
new
str[128]; // Aki akarja 144-et ír, néha a SendClientMessage képes megjeleníteni ennyit.
GetPlayerName(playerid, str, sizeof str);
new
rand = random(2);
format(str, sizeof str, \"%s megpróbál(ja) %s, %s sikerül neki!\", str, params, (rand)?(\"és\"):(\"és nem\"));
SendClientMessage(playerid, -1, str);
// És a jutalmazás:  :D
if(rand)
{
Kick(playerid);
} else {
Ban(playerid);
}   
return 1;
}

 
Ui:
Azért idegesítõ hogy a sscanfet úgymond ilyen hitvány kis dolgokhoz alkalmazzák holott teljesen felesleges ilyen apróságokhoz alkalmazni.
Komplikáltabb feladatokra lett kitalálva a sscanf plugin, az ilyen egy két paraméteres parancsokhoz bõven elég az alap dolgok használata mint az strlen, strval, isnull, stb..
« Utoljára szerkesztve: 2012. október 21. - 21:22:39 írta ɐʞzssǝlosz »

Nem elérhető krisk

  • 2380
    • Profil megtekintése
Hogyan is készül egy /try parancs?
« Válasz #20 Dátum: 2012. október 22. - 20:43:30 »
0 Show voters
Idézetet írta: DrAkE date=1350842939\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28631\" data-ipsquote-contentclass=\"forums_Topic
Szerintem meg isnull-t kell használni, és megvan oldva a hosszúság problémája is...
 
Ez így van, de nem akartam \"újraírni\" a készítõ scriptjét.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal