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.