Kedves fórumozók!
Ebben a témában az alapokról lesz szó, hogy hogyan is kell a Call of Duty 2 nevezetű játékot szerkeszteni.
A nevezett játékot elég egyszerű szerkeszteni, mivel a fájlokat .iwd-ben tárolja amit könnyet megtudsz nyitni WinRar-al.
Amiket tudni kell, a játék szerkesztéséhez:
xmodelsurfs, xmodelparts, xmodel - ezekben vannak a modellek és a hozzájuk tartozó fájlok. (nincs kiterjesztés)
materials, images - ezekben vannak a képek és a hozzájuk tartozó fájlok. (images (.iwi) materials (nincs kiterjesztés))
weapons/mp vagy weapons/sp - ezekben vannak a fegyverek adatai és a 2 közül az mp mappa kell leginkább mivel abba vannak a multiplayer fegyverek. (nincs kiterjesztés)
ui_mp, ui_mp/scriptmenus - ezekbe vannak a menük és a hozzájuk tartozó fájlok. (.menu)
sound - ebbe vannak a hangok. (.wav, .mp3, stb)
soundaliases - ebben vannak a hangok kódjai "frekvencia" nélkülük nem játszaná le a hangot a cod2. (.csv)
fx - ebben vannak az effektek. (.efx)
localizedstrings - ebben vannak a menühöz tartozó ki írások pl.: főmenüben: Start new server, Options. (.str)
mp - ebben vannak pl.: a pályanevek (.arena)
maps/mp - ebben vannak a pályák (.d3dbsp) és a hozzájuk tartozó scriptek.
maps/mp/gametypes - ebben vannak a játéktípusok és a hozzájuk tartozó egyéb scriptek. (.gsc)
Mindennek az alapja a játéktípus (A játéktípus scripteket az iw_15 (.iwd) és az iw_07-be (.iwd) találhatóak.)
Minden script függvényekből áll. Fontos függvények:
Callback_StartGameType() // a játék indulásakor fut le
Callback_PlayerConnect() // csatlakozáskor fut le a csatlakozó/csatlakozott játékosnak.
Callback_PlayerDisconnect() // lelépéskor fut le a lelépő játékosnak.
Callback_PlayerDamage() // a játékos sebződésekor fut le a sebződött játékosnak.
Callback_PlayerKilled() // a játékos halálakor fut le a halott játékosnak.
spawnPlayer() // spwanoláskor fut le a spawnolt játékosnak.
menuSpectator() // spectatorba lépéskor fut let az odalépő játékosnak.
menuAutoAssign() // véletlenszerű csapatkiválasztáskor fut le az adott játékosnak.
menuAllies() // alliesba lépéskor fut le az odalépő játékosnak. (brit,orosz,amcsi)
menuAxis() // axisba lépéskor fut le az odalép játékosnak. (német)
Minden script függvényekből áll. Fontos függvények:
Callback_StartGameType() // a játék indulásakor fut le
Callback_PlayerConnect() // csatlakozáskor fut le a csatlakozó/csatlakozott játékosnak.
Callback_PlayerDisconnect() // lelépéskor fut le a lelépő játékosnak.
Callback_PlayerDamage() // a játékos sebződésekor fut le a sebződött játékosnak.
Callback_PlayerKilled() // a játékos halálakor fut le a halott játékosnak.
spawnPlayer() // spwanoláskor fut le a spawnolt játékosnak.
menuSpectator() // spectatorba lépéskor fut let az odalépő játékosnak.
menuAutoAssign() // véletlenszerű csapatkiválasztáskor fut le az adott játékosnak.
menuAllies() // alliesba lépéskor fut le az odalépő játékosnak. (brit,orosz,amcsi)
menuAxis() // axisba lépéskor fut le az odalép játékosnak. (német)
Script íráskor csak az angol ABC betűit használhatjuk számmal együtt.
Kezdjük a magyarázattal:
// valami...
/* sok
sok
sok
sok
valami...
*/
Persze magyarázatkor használhatunk ékezet is.
Kezdjük a magyarázattal:
// valami...
/* sok
sok
sok
sok
valami...
*/
Persze magyarázatkor használhatunk ékezet is.
Kezdjük akkor egy alap script írással:
Code:
fuggveny()
{ // minden függvényt kapcsos zárójellel kezdünk.
valami1(); // a függvényen belül mindent ;-vel zárunk és egy függvényen belül több függvényt is meghívhatunk.
valami2();
} // minden függvényt kapcsos zárójellel zárunk.
Itt már nem használunk ékezetet csak a magyarázatban és "fontos" még a tabulátor használata:
Code:
fuggveny()
{
valami1();
valami2();
}
2 fajta meghívás van:
Code:
valami1();
Code:
thread valami1();
A 2. variációnál a hívó és a hívott függvény együtt fut. (fuggveny(), valami1();).
Jöjjenek a változók, amiket 3 fele csoportosíthatunk:
Code:
level.valtozo // ez bárhol elérhető
Code:
self.valtozo // ez csak az adott játékosnál érhető el
Code:
valtozo // ez csak az adott függvényen belül érhető el
A változók is csak az angol ABC betűiből és számokból állhatnak, de számmal nem kezdődhetnek.
A függvényen belül feltételeket is szabhatunk:
Code:
fuggveny()
{
if(self.health==0) self iprintlnbold("Meghaltál!"); else self iprintlnbold("Még élsz!"); // == -> egyenlőséget jelent, iprintlnbold -> középre író függvény de van iprintln -> ez meg az oldalra író függvény.
ugyan ez egyszerűbben: if(!self.health) self iprintlnbold("Meghaltál!"); else self iprintlnbold("Még élsz!"); // az if részben a ! az azt jelenti hogy ha 0 az életed akkor ki írja hogy meghaltál ha viszont a feltétel nem igaz akkor az else után rész fut le.
if(self.pers["team"]=="axis") self iprintlnbold("Németben vagy!"); // ezen kívül még lehet allies, spectator
if(self.sessionstate=="dead") self iprintlnbold("Meghaltál!"); // ezen kívül még lehet playing, spectator, intermission
if(self.sessionteam=="axis") self iprintlnbold("Németben vagy!"); // ezen kívül még lehet allies, spectator
}
Egy kis jelmagyarázat:
== értékellenőrzés
= értékadás
!, != ha valami nem egyenlő egy adott értékkel
/, * osztás, szorzás
% maradékkal való osztás
+, - összeadás, kivonás
++, -- egy változó értékét megnöveli 1-el vagy el vesz belőle 1-et
+=, -= egy változóhoz hozzá ad valamennyit vagy el vesz belőle
&& és jel (and) tehát: if(valtozo1==2 && valtozo2==2) self iprintlnbold("A változó értékeid egyenlők 2-vel"); // ha a valtozo1 és a valtozo2 egyenlő 2-vel akkor ki írja a szöveget.
|| vagy jel (or) tehát: if(valtozo1==2 || valtozo2==2) self iprintnlbold("Valamelyik változód egyenlő 2-vel"); // ha a valtozo1 vagy a valtozo2 egyenlő 2-vel akkor ki írja a szöveget.
== értékellenőrzés
= értékadás
!, != ha valami nem egyenlő egy adott értékkel
/, * osztás, szorzás
% maradékkal való osztás
+, - összeadás, kivonás
++, -- egy változó értékét megnöveli 1-el vagy el vesz belőle 1-et
+=, -= egy változóhoz hozzá ad valamennyit vagy el vesz belőle
&& és jel (and) tehát: if(valtozo1==2 && valtozo2==2) self iprintlnbold("A változó értékeid egyenlők 2-vel"); // ha a valtozo1 és a valtozo2 egyenlő 2-vel akkor ki írja a szöveget.
|| vagy jel (or) tehát: if(valtozo1==2 || valtozo2==2) self iprintnlbold("Valamelyik változód egyenlő 2-vel"); // ha a valtozo1 vagy a valtozo2 egyenlő 2-vel akkor ki írja a szöveget.
Sipex