Kuidas new'e,define'id,jne erinevatesse failidesse jagada ja GM'i/FS'i includeda?
#1
Tere!
Jällegi on möödunud natuke aega ja mõtlesin teha järgmise õpetuse, seekord seletan ära, kuidas koodi arusaadavamaks ja optimiseeritumaks teha, pannes kõik NEW'id ja DEFINE'd ja kõik muu kompoti eraldi failidesse ja siis serveri GM'i includeda. Aga esiteks sooviks tänada kasutaja vent'i, kes seda kasutas(ka ühes abi teemas) ja selle mõtte mulle andis, mina püüan aga selle arusaadavaks teha.
1)Oot, nagu mida me siis nüüd täpselt teeme?
Me teeme faili nimi.pwn (näiteks defined.pwn) ja siis lihtsalt lisame selle GM'i. Lihtne.
2)Milleks mulle seda üldse vaja läheb?
Toon paar peamist põhjust:
1.Hoiab serveri peakskripti väiksena
2.GM'i/FS'i koodist on palju lihtsam aru saada
3.Jagades kelelgiga faile, ei pea sa midagi muutes talle kogu GM'i/FS'i saatma, vaid ainult muudetud faili
4.Kui keegi suudabki sinu GM'i rottida, siis ilma lisafailidetta ei ole tal sellega mitte midagi teha
3)Ja kuidas me seda siis teeme?
Nonii, alustuseks oletame, et sul on FS/GM koos paljude CMD'de ja NEW'idega. 1.Võta lahti oma GM/FS(Edaspidi ka kui G/F) ja keri soovitud kohani(Näiteks mine G/F algusesse, kus sul on kõik põhilised new'id) Minul on näiteks:
PHP Code:
new Rahaantud[MAX_PLAYERS];
new 
Registreeritud[MAX_PLAYERS];
new 
Sisselogitud[MAX_PLAYERS];
new 
Justlogitud[MAX_PLAYERS];
//new Text:Textdraw0;
new Text:Textdraw1
2. Kopeeri need
3. Ava tühi PWN fail(Kustuta täiesti tühjaks) ja paste'i need asjad sinna
Nüüd ongi PWN fail selline:
PHP Code:
new Rahaantud[MAX_PLAYERS];
new 
Registreeritud[MAX_PLAYERS];
new 
Sisselogitud[MAX_PLAYERS];
new 
Justlogitud[MAX_PLAYERS];
//new Text:Textdraw0;
new Text:Textdraw1
Muud ei midagi
4. Salvesta fail nüüd näites gamemodes kausta(Võid teha soovi korral sinna sisse kausta lisad näiteks)
5. Kustuta GM'ist need kopeeritud read ära ja asenda see sellega:
PHP Code:
#include "../gamemodes/((Kui otsustasid teha kausta lisad, siis tuleb siia lisad, muidu võid selle vahemiku ära kustutada))/failinimi.pwn" 
Nüüd me siis include'sime selle G/F'ile
6. Compile ja proovi, kas töötab
7. Ole uhke enda üle

PS! Alati tuleb need includeda samas kohas, kuhu muidu pannud oleksi või vähemalt ennem nede asjade kasutamist GM'is.

See ongi siis selleks korraks kõik.
Credits:
vent- näitas mulle seda ja andis idee
Oliver- kirjutas õpetuse
Reply
#2
Õpetus on täitsa hea.

Ma ise olen pikka aega mõelnud, et teen oma GMi ka sedasi üle, aga asi on jäänud poolikuks selle tõttu, et mulle meeldiks, kui iga süsteemi funktsioonid ja muutujad oleks eraldi failis. Aga kui ma kasutan esimeses failis PlayerInfo muutujat, aga defineerin selle alles ütleme, et viimases includes, siis asi ei tööta. Ehk kunagi, kui ma asja vektoritele üle olen viinud, võtan asja käsile.
Sex, Drums and Rock'n'Roll
Reply
#3
Oh, peangi rõhutama, et selle include peab panema samasse kohta, kuhu muidu pannud oleksid või vähemalt ennem nende asjade kasutamist.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)