Radiant kulcsok
Írta: Szendvics - Dátum: 2010. November 03. 21:01:25
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