Per šią pamoką išmoksite daryti labai paprastą dalyką, tai teksto printinimas visiems. Kaip pavizdį paimsime "SveikasPasauli". Tad nieko nelaukę ir pradėsime.
Iš pirmo jums reikia turėti jau įdiegtą AMX modą. Tada patikrinkite papkėje "AMX/examples/" ar yra failai "sc.exe" ir "sc.bat" jei jų nėra, vadinasi modas yra blogai instaliuotas. Ir ¸inoma jums reikės bet kokio teksto editoriaus, kad ir Wordpad.
Dabar sukurkite failą pavadinimas.sma ir atsidarykite su teksto editoriumi.
Kiekvienas sukurto plugino autorius turi pluginą trumpai aprašyti ir ¸inoma palikti savo inicialus. � tai kaip atrodytų tai apie ką aš kalbėjau:
/*
Sveikas pasauli, v0.1
Autorius: bl
*/
´inoma toje vietoje galite rašyti ką norite, nes su kitais mūsų plugino kodais nesipjaus, kadangi vien ¸enklas /* nurodo komentaro prad¸ią, o */ - komentaro pabaigą. Svarbiausią visų pluginų autorių taisyklė: parašyti savo kūrinio pavadinimą ir beabejo versija. Dauguma jų rašo "v0.1", nes pluginas nėra pilnai išleistas.
Einame toliau... Visi pluginai turi turėti tokią plugin_init() funkciją, jei nori, kad jis veiktų ir darytų ka¸ką ¸aidime. � tai pavizdys:
public plugin_init()
"Sveikas pasauli" - tai tavo plugino pavadinimas, "0.1" - jo versija, o "bl" - �?ia jau turėtu būti tavo vardas/nikas. Svarbiausią: nepanaikink jokių kablelių esan�?ių kode, nieko, išskyrus tai, ką pasakiau. Dėja vien tik to, mūsų plugin_init() funkcijoje neu¸tenka. Norint ¸aidime atlikti ka¸kokią komandą, viską reikia įrašyti viduje šio kodo... � tai ¸emiau esantį pavizdį įterpk į plugin_init() funkciją norint jį aktyvuoti.
register_clcmd("amx_sveikas","funkcija",ADMIN_VOTE," : pasako Sveikas Pasauly!!! visiems")
Dabar trumpai panagrynėsime ką kiekviena funkcija reiškia. register_clcmd() - ši eilutė pasako, kad mes registruojame komandą (cmd) bandant ją su klientais (cl - clients). ´inoma yra ir daugiau būdu negu naudojant šią funkciją, bet prad¸ioj apseisim ir su šia. amx_sveikas - tai ¸odis u¸fiksuojamas konsolėje, kurį parašius, pluginas atliks tam tikrą funkciją. Funkcija - tai mūsų funkcijos pavadinimas, tai nėra iš tiesų taip svarbu, svarbiausia, kad pavadinimas nebūtų per ilgas ir, kad būtų suprantamas kitiems, ką funkcija daro. ADMIN_VOTE - šis dalykas mums pasako kas gali atlikti funkciją, šiuo atveju komanda prieinama TIK admino lygio ¸aidėjams, juk nenorime, kad ¸monės naudotų priva�?ias komandas ir nenorime turėti serveryje bereikalingo "spamo". Bet jei nori, kad komanda būtų prieinama visiems, vietoj to teksto pakeisk į 0 (nulį). Taip pat daugiau priėjimo vėliavų rasi faile admin.cfg/amx.cfg (P.S: mūsų pavizdyje ADMIN_VOTE reiškia "gasp" vėliavas). Ir paskutiniai lietuviški ¸od¸iai ) reiškia jūsų trumpą apibūdinimą ką ta komanda daro, kadangi jis pasirodys ¸mogui parašius "amx_help". Na štai ir viską išnagrinėjome.
Po šių ¸ingsnių, jūsų plugin_init() funkcija turėtu atrodyti panašiai:
public plugin_init()
Kitas nesunkus ¸ingsnelis. Dabar norint mūsų pluginą sureguliuot, kad veiktų su AMX modu, reikia ka¸ką prirašyti, ir tas ka¸kas tai šios dvi eilutės:
#include#include
Pirma eilutė yra būtina, nes kaip minėjau, be jos nieko neišeitų. Antroji, ne tokia ir svarbi, bet jos reikia, todėl tiesiog perrašykit ją. � ias eilutes reikia įkelti prieš plugin_init() ir po ¸enklu */. Kad būtų aiškiau, štai koks turi būti PILNAS jūsų kodas atliktas iki šio ¸ingsnio:
/*
Sveikas Pasauli, v0.1
Autorius: bl
*/
#include
#include
public plugin_init()
Jei gavote ka¸ką ne taip, geriau pasitikrinkite, nes menkiausia klaida gali viską sugadinti. Taigi galime jau bandyti šį pluginą sukompilinti . Išsaugokite jį, įmeskite kur reikia (SMA failų kompilinimą rasite pamokų skyrelyje) ir pasileiskite sc.bat. � is bat failas sukompilina visus esan�?ius kodus ir paver�?ia AMX formatu. Jei tu nori Tik sukompilinti savo pluginą, tada pasileisk komandų langą, ir failą sc.exe iš ten. Komandų lange parašykit "sc.exe pavadinimas.sma" (kaip supratote tai jūsų SMA failo pavadinimas), ir jį pavers AMX formatu, kuris atsiras toje pa�?ioje papkėje.
Jokių klaidų rasti neturėjai, jei radai, kaip minėjau gerai pasitikrink, nes visas darbas gali nueiti veltui.
Dabar mums reikia sukurti paskutinę funkciją kuri suveiks parašius "amx_sveikas" konsolėje. Mes jau turime jai pavadinimą "funkcija" (jei neatsimenat panagrinėkite buvusius pavyzd¸ius), tad štai kaip mūsų funkcija turėtu atrodyti:
public funkcija(id,level,cid)
}
Nagrinėti visko nepradėsiu, nes tikrai susimaišys, tiesiog pasakau, jog funkcija cmd_access skirta tik tam tikriems asmenims prie komandos prieiti. Tarkim jei turi teisę prieiti prie šios komandos, viskas gerai, funkcija tęsis, bet jeigu neturi - tiesiog nieko neįvyks.
Dar norė�?iau pakomentuoti funkcijos dalį, tai "id". � i komanda naudojama "u¸laikyti" ¸aidėjo numerį. Kiekvienas ¸aidėjas gauna savo ID numerį kuris pasirodo jungiantis prie serverio, taigi ši dalis laikys ¸aidėjo numerį savyje atlikti tam tikrai funkcijai, did¸iausias ID numeris gali būti 32, kadangi maksimumas ¸monių galintys lošti serveryje, yra 32. Bet tai jau priklauso nuo jūsų serverio ¸monių skai�?iaus. Dar ID gali būti naudojamas ne tik tokiems tikslams, pvz pagal jį yra nustatomas ¸aidėjo lygis, t.y. ar jis yra adminas, ar turi priėjimą prie komandos.
Toliau. Kitos eilutės kodas būtų:
client_print(0,print_center,"Sveikas Pasauly!!!")
Vėl prasideda nagrinėjimas. client_print - tai funkcija kuri gali būti keliu rūšių, kol kas apseisim su viena. 0 - tai ¸aidėjo ID kam bus atlikta funkcija, šiuo atveju "0" reiškia, kad funkcija bus atlikta visiems ¸aidėjams, mirusiems ar gyviems, nesvarbu. print_center - parodo kurioj vietoj bus mūsų pasirinktas tekstas, galimi ir kiti atvejai, pvz: print_left (right), print_chat (tekstas bus parašytas lyg per "say" komandą). Na ir toliau seka mūsų pasirinktas tekstas, kuris turi būti būtinai kabutėse.
Ir štai beveik baigėme. Paskutinis ¸ingsnis - dar vienos eilutės pridėjimas prie mūsų funkcija() funkcijos. Jį atrodytu taip:
return PLUGIN_HANDLED
� i komanda pabaigia jūsų pluginą, ji yra labai svarbi, nes jei neparašytumėte, AMX modas tiesiog nesupras plugino "end" (pabaigos) ir pradės jums rašynėti nesąmones kaip pvz: Unknown command.
VISKAS. VIskas padaryta . � tai ką turėtumėte gauti po viso šito ką parašiau, tai jau pilnas kodas:
/*
Sveikas pasauli, v0.1
Autorius: bl
*/
#include #include public funkcija(id,level,cid)
client_print(0,print_center,"Sveikas Pasauly!!!")
return PLUGIN_HANDLED
}
public plugin_init() |
|
 |
|