[1 Pamoka] Įžanga

Šiame forume galima rasti pamokas, patarimus, skriptus ir kitą naudingą informciją.
Locked
User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

[1 Pamoka] Įžanga

Post by aaarnas »

Sveiki tie, kurie pasiryžo pradėti mokytis kurti amxmodx modifikacijos pluginus. Gal atrodo, kad įžanga nereikalinga ir iš karto pereit prie pamokų, bet vis dėl to patariu paskaityti, nes taip lengviau bus pagauti pradžią.

Amxmodx programavimas tai nėra labai sudėtingas dalykas, bet nebūtinai visiems įkandamas. Tik perskaičius pamokas modo nesukursite, tam dar reikės daug tobulėti savarankiškai. Tai nėra dalykas, kuris išmokstamas, programuoti mokomasi visą gyvenimą, nes kalbos ir bibliotekos yra nuolatos atnaujinamos, o ir žmogus negali visada visko prisiminti, ypatingai to ko paprastai niekada nereikia, bet staiga prireikia. Programavimas - sistemos kūrimas, o lietuviškai sakant algoritmų kūrimas (funkcijų) iš kurių ir susideda visa sistema. Jūsų užduotis parašyti tokį failiuką, kuris atliktų kažkokias funkcijas žaidime. Atsidarius .sma failą pamatysite begalę kodų, ženklų, skaičių ir dar kitko. Visą tai yra rašoma rankomis ir reikia viską žinoti, kas kur kaip ir kodėl vyksta. Na dabar jau pamatėte, kad laukia ilgas darbas? Jei dar yra noro, tada tęskime!

Visų pirma amxmodx pluginų kūrimui buvo pasitelkta Pawn programavimo kalba, kuri seniau vadinosi Small. Tai gana nesudėtinga kalba, ir ji puikiai tinka pluginų kūrimui. Amxmodx moduliai bei pats žaidimo variklis bei bibliotekos kurtos C++ kalba, bet to mums nereikės, nes tai jau sudėtingas programavimas, ką gali daryti tik rimti specialistai. Kuriant pluginus jums reikės gerai suprasti serverio veikimą, kas ir kur kaip vyksta, kitaip bus sudėtinga. Na šito taip pat išmoksite besimokydami.

Dabar apie visą veikimo principą. Pagrindinis dalykas visame šiame reikale yra žaidimo variklis, kurį pasitelkus pluginus galima valdyti įvairiausiais būdais ir išspausti iš jo viską, ką galima, pridėti į cs žaidimą tokių dalykų, kokių jame nėra, arba keisti pačius dalykus. Pagrindinis tarpininkas tarp variklio ir jūsų pluginų yra metamod. Jis tiesiogiai dirba su žaidimo varikliu ir tik dėl jo yra įmanoma padaryti visas tokias modifikacijas kaip amxmodx ir panašiai. Metamod taip pat turi pluginus kuris vienas iš jų ir yra amxmodx modifikaciją. Tad duomenys iš metamod šitokiu būdu gauna amxmodx, toliau jau keliauja viskas į amxmodx modifikacijos modulius, o šie perduoda pluginams, kuriuos mes ir kursime. Tad hierarchija tokia:
variklis <-> metamod <-> amxmodx <-> amxmodx moduliai <-> pluginai.
Tad pluginų valdymas yra gan lėtas, nes kol įvykdoma komanda, duomenys turi pereiti per šitiek modifikacijų, bet dėl didelio kompiuterių darbo greičio, mes to nepajuntame.

Visas valdymas pluginais yra paremtas komandomis native ir forwards. Forwards yra funkcijos nuolatos iškviečiamos tam tikru momentu (tarkim prasideda naujas raundas, žaidėjas prisikelia, miršta). Native tai komandos, kurias iškviesdami funkcijose jūs pakeisite kažką žaidime, tarkim žaidėjo gyvybes, nužudysite ką nors ir panašiai. Svarbu, kad tą patį dalyką visada galima padaryti keliais būdais, bet tik vienas iš jų yra optimaliausiais, dėl kurio kompiuteriui teks mažiausiai dirbti, o rezultatas bus tas pats. Tai vadinama optimizavimu. Optimizavimas taip pat labai svarbus programavime, nes taip jūsų pluginas suvalgo mažiau resursų, o blogai optimizuoti pluginai kartais gali ir užlaužti serverį.

Kokios tos komandos yra, mums parodo moduliai, kurie mums suteikia galimybes juos valdyti per šias komandas. Modulių yra ne vienas. Kiekvienas iš jų kažkuo skiriasi, gali tai ko negali kitas, tad su jų galimybėmis taip pat reikės susipažinti.

Na dėkoju, kad skaitėte. Dabar galite pereiti prie pamokų :)

Šis gidas priklauso Amxmodx.lt forumui.
Bet koks šios informacijos platinimas be autoriaus sutikimo yra griežtai draudžiamas.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Locked

Who is online

Users browsing this forum: No registered users and 5 guests