Scriptelés egy percben: Egyedi kulcs létrehozása az Entityben
(PDF: http://dl.dropbox.com/u/4410106/coduo/scripteles_egypercben/radiant_kulcs/egyedi_radiant_kulcs.pdf) Miért jó ez? Gondolom készítettél már komplexebb, objektumokat CODban (ha még nem, akkor majd fogsz ). Lényeg ilyenkor célszerű a könnyű kezelhetőség és átláthatóság érdekében az egyedi kulcsok létrehozása az entityben!
Létre kell hozni egy egyedi kulcsot: • Nyissuk meg a Radiant mappát, másoljuk ki belőle a pakuo01.pk3\radiant\gmi_keys.txt fájlt nyissuk meg! • Láthatjuk, hogy szabályos struktúrája van, itt tudunk egyedi entityben megadható kulcsokat megadni! • (Ez azért fontos, mert ha ezt a műveltet kihagyjuk rossz lesz az inicializálás, mert az egyedi kulcsokra undefined értéket kapunk vissza!) • Most az UO könyvtárba készítsük egy radiant mappát, abba tegyünk bele pl: sajat_keys.txt készítsük el a fájl, olyan névvel, amivel akarjuk! • A másik, amire figyelni kell, hogy egy-egy változót NEM szabad csak arra használni, hogy eltároljon egy sztringet és kiírassuk (ennek a hátterét sajnos nem tudom, de a fejlesztők kommentekben erőteljesen kiemelik a dolgot… tehát arra ne csak erre használjuk: iprintlnbold(mg42.bigyo);
Gmi_keys: // syntax: // float floatVar // int intVar // string stringVar
// Note: In order to use the float/int/string, it must be used/referenced in the script // before it's even acknowledged by the code. And prints do NOT work, if that's all that // the variable is doing in the script. ie, println(mg42.blah).
Láthatjuk, először jönnek a float, majd int majd a string típusú változók! (Mellé ne felejtsük kifejteni megjegyzésben, hogy miért van ott, hogy akinek a mod a kezébe kerül, annak ne kelljen keresgetnie!)
Felmerülhet a kérdés mire jó ez az egész: próbáljuk ki hogy az adott objektumhoz (pl: script_origin) Radinatban beírjuk entitybe: enkulcsom->1 értéket anélkül, hogy az előzőt eljátszottuk volna! Egy hasonló kódot lefuttatva:
potencial_objects = getentarray("script_origin","classname"); for(i=0;i< potencial_objects.size;i++){ if(isdefined(potencial_objects[i].enkulcsom)){ iprintlnbold("Talalptam egyet!"); } }
Láthatjuk, hogy az if-es feltétel a kulcsok nélkül nem fog soha teljesülni, tehát erre az egészre azért volt szükség, hogy ne undefined értéket kapjunk vissza! Mehet a radiant könyvtár pk3-ba!
Ha megnézünk gyári kódokat ott is alkalmazzák ezt a módszert!
Szendvics |
|
|
Üzenet küldéséhez be kell jelentkezned!
|
|
|