Szerző Téma: /skin [1-299] {Publikálom}  (Megtekintve 2565 alkalommal)

/skin [1-299] {Publikálom}
« Dátum: 2014. november 21. - 18:13:00 »
0 Show voters
Sziasztok!Elkészítettem ezt az alap kis skin választót!

Használat:/skin [1-299]


Kicsit a filterscriptről:


-Includék:a_samp, ../include/gl_common.inc


-Sorok száma:1559


-Készítési idő:8 perc

Pwn: http://www.solidfiles.com/d/b2674ea54d/skin.pwn
Amx: http://www.solidfiles.com/d/fa6d55096a/skin.amx
Jó skinváltást!!
« Utoljára szerkesztve: 2014. november 21. - 18:25:17 írta inhofd2002 »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
/skin [1-299] {Publikálom}
« Válasz #1 Dátum: 2014. november 21. - 18:16:29 »
0 Show voters
[gmod]Bővítést kérek. 24ó + data.hu helyett máshova töltsd fel a scriptet[/gmod]
nem akarlak megbántani de amit te 1560 sorba megoldottál azt meglehet 10 sorral is.

/skin [1-299] {Publikálom}
« Válasz #2 Dátum: 2014. november 21. - 18:17:44 »
0 Show voters
Bővítés alatt mit értesz?
Csak a link?

/skin [1-299] {Publikálom}
« Válasz #3 Dátum: 2014. november 21. - 18:18:49 »
0 Show voters
Idézetet írta: inhofd2002 date=1416589980\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51441\" data-ipsquote-contentclass=\"forums_Topic
-Sorok száma:1559
-Készítési idő:8 perc[/b]
 
Ez számomra egy kicsit gyanús, azért 1559 sort nem 8 perc alatt ír meg egy ember.

/skin [1-299] {Publikálom}
« Válasz #4 Dátum: 2014. november 21. - 18:19:41 »
0 Show voters
Copy,past és csak a számokat kellett cserélgetni :)

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
/skin [1-299] {Publikálom}
« Válasz #5 Dátum: 2014. november 21. - 18:22:07 »
0 Show voters
Olvasd el a szabályzatot!
Egyébként én így oldanám meg:
 
CMD:skin(playerid, params[]) {
if(!(-1 < strval(params) < 301)) return SendClientMessage(playerid, -1, \"Skin ID-k 0 - 300 között vannak.\");
if(isnull(params)) return SendClientMessage(playerid, -1, \"Csak szmáoakt írhatsz be.\");
SetPlayerSkin(playerid, strval(params));
return 1;
}

 
Vagy ilyesmi

/skin [1-299] {Publikálom}
« Válasz #6 Dátum: 2014. november 21. - 18:24:35 »
0 Show voters
Csak nem olyan régóta scriptelek.
Én így tudtam megoldani. :)

/skin [1-299] {Publikálom}
« Válasz #7 Dátum: 2014. november 21. - 18:40:13 »
+1 Show voters
Te atya úr isten..
Teljesen felesleges 1500 sort gyakorlatilag egyetlen egy parancsra használni.
A felesleges definiálásokról, és az OnGameModeInit használatáról nem is beszélve.
Az sscanf plugin képes szétválasztani a begépelt parancsot.
Így a paramétert lementheted egy változóba, és tulajdonképpen azzal dolgozhatsz. Ellenőrizheted hogy mit írt be, stb
De mivel csak egyetlen egy feldolgozandó paraméter van, nem szükséges az SSCANF használata, hanem simán ellenőrizhetjük az egész paramétersort amit begépelt a parancs után.
Ehhez pedig a ZCMD include segít, ami rettentő egyszerűvé teszi a paraméterfeldolgozást. A parancsnak szükséges megadni egy playerid változót amiben a parancsot begépelő játékos ID-jét fogja eltárolni, csakúgy mint az OnPlayerCommandText eljárás. Ez mellé még társulhat egy másik is, méghozzá a params[] amire szükség van jelen esetben - de ez nem kötelező - ebben pedig a parancs után beírtakat tárolja el, amit aztán majd az sscanf feldolgozna, de mint írtam, most nem kell.
Ez látható Flash scriptjében.
A te scriptedben egy parancsnak 4 sort is használsz. Mivel ha nem használsz nyitó- és záró tageket ( { } ) akkor a program alapból az azt követő egyetlen egy funkciót fogja végrehajtani, a többit nem.
Tehát még így is rövidebb, és működő lenne a scripted (példa):
 
    if(strcmp(cmdtext, \"/skin 0\", true) == 0) return SetPlayerSkin(playerid, 0);

 
Remélem nem hagytam ki semmit. :D

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
/skin [1-299] {Publikálom}
« Válasz #8 Dátum: 2014. november 21. - 19:09:46 »
0 Show voters
[gmod]Elfogadom.[/gmod]

/skin [1-299] {Publikálom}
« Válasz #9 Dátum: 2014. december 30. - 13:02:37 »
0 Show voters
Én ezt a megoldást egy kicsit egyszerűbbnek találom
 
#include <a_samp>
#define narancs 0xFF9933AA
#define piros 0xAA3333AA
#include <zcmd>
#include <sscanf>
new nev[MAX_PLAYER_NAME];
CMD:skin(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
new skinid;
if(sscanf(params,\"i\",skinid)) return SendClientMessage(playerid,narancs,\"Így használd: /skin [itt add meg a skin ID-ét 0-tól 299-ig]\");
{
if(skinid < 300 && skinid >= 0)
{
GetPlayerName(playerid,nev,sizeof(nev));
SetPlayerSkin(playerid,skinid);
SendClientMessage(playerid,narancs,\"A skined sikeresen megváltozott!\");
}
else SendClientMessage(playerid,narancs,\"Skin ID-k csak 0-tól 299-ig vannak\");
}
}
else SendClientMessage(playerid,piros,\"Hiba a kapcsolatban!\");
return 1;
}

 
1500 sor? Felesleges pazarlás!

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
/skin [1-299] {Publikálom}
« Válasz #10 Dátum: 2014. december 30. - 15:03:40 »
+2 Show voters
Aztán most le kell ugatni szegény gyereket, mert próbál szkriptelni tanulni, illetve az első ilyen szkriptjét felrakta. :nuke:
A lényeg az lenne hogy elkészítette, és működik (már ha valóban működik). Aki nem akarja, szimpatikusabb neki a 10 soros, az azt használja, aki pl tanulni szeretne, gyakorolni elágazásokat, stb, az meg átnézi ezt.


Viszont igaza van a srácoknak abban, hogy ezekkel sokkal könnyebben boldogulsz, de ezeket el lehetne mondani normálisan is. Ajánlom az sscanf2-zcmd plugin párost, sokat fog segíteni, illetve munkád megkönnyíted vele. Példa szkript (most írtam gyorsan, nincs tesztelve):
 

// Ezt a módba/szkriptbe akárhova, a függvénykönyvtár-beágyazásokat (include) érdemes a többi mellé
#include <zcmd>
#include <sscanf2>
CMD:skin(playerid,params[])
{
    new Skin;
    if(sscanf(params, \"u\", Skin)) SendClientMessage(playerid, -1, \"Használat: /skin <0-299>\");
    else
    {
        if(Skin < 300 && Skin >= 0) SetPlayerSkin(playerid, Skin);
        else return 0;
    }
    return 1;
}

 


Up: Most olvastam végig Blackdog476 kommentjét, igaza van neki. Ő legalább képes volt normálisan elmagyarázni :)
« Utoljára szerkesztve: 2014. december 30. - 15:05:49 írta Zharko »

/skin [1-299] {Publikálom}
« Válasz #11 Dátum: 2014. december 31. - 20:46:02 »
0 Show voters
Én is kezdő vagyok és tudom használni a zcmd-t és az sscanf-t. És egy 20 soros scriptet nem 1500 sorba oldom meg!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal