Serverio Veikimas
From SA-MP Wiki
Pagrindinis |
Funkcijos |
Callback'ai |
Resursai |
Contents |
Serverio failų gavimas
Norint sukurti SA-MP serverį turėti SA-MP klientą neužtenka. Serveriui kurti mums prireiks specialių serverio failų. Dabartinė SA-MP serverio stabili versija yra 0.3e R2. Kaskart atsinaujinus SA-MP, naujausius serverio failus galite atsisiųsti iš oficialios modifikacijos svetainės www.sa-mp.com. Tinklalapyje paspauskite ant nuorodos pavadinimu Downloads ir nueisite į siuntinių skyrių. Atsivėrusiame puslapyje turėtumėte matyti kelių rušių SA-MP serverio failus.
Operacinė sistema | Versija |
---|---|
SA-MP Windows Server | 0.3e |
SA-MP Linux Server (x86) | 0.3e |
Šie failai skirti specialiai operacinei sistemai, kurioje jūs planuojate kurti savo SA-MP serverį. Jei naudosite Windows aplinką ( Windows 7, Windows Vista, Windows XP, Windows Server 2003, ... ) pasirinkite pirmąjį variantą. Jei jūsų operacinė sistema yra Linux, tuomet pasirinkite antrąjį variantą.
Turbūt pas daugumą kompiuteriuose yra naudojama Windows operacinė sistema, tuomet kyla klausimas, "Kur naudoti Linux serverio failus?". Atsakymas paprastas. Dauguma serverių su projektais nėra laikomi paprastuose buitiniuose kompiuteriuose, kadangi kompiuterį tektų laikyti įjungti gana ilgai, o tai nemažai kainuotų, be to reiktų gana greito interneto. Tokių serverių savininkai nuomojasi VPS ( Virtualų privatų serverį ) ir jame laiko serverį. Toks serverio laikymas kainuoja žymiai pigiau, bei saugiau, kadangi daugumoje tokių serverių naudojama Linux operacinė sistema.
Jei norite išbandyti bandomąsias San Andreas Multiplayer versijas, kurios yra kūrimo stadijoje bei nesiūlomos naudoti viešiems serveriams, atsisiųskite šias nurodytas bylas:
Klientas | Serveris | Versija | Data |
---|---|---|---|
Šiuo metu jokių bandomųjų versijų nėra. |
Serverio įdiegimas
Serverio įdiegimas nėra sudėtingas procesas, kaip gali atrodyti iš pirmo žvilgsnio. Atsisiuntę serverio failus savo naudojamai operacinei sistemai, juos atsidarykite su archyvavimo programa, kadangi failai bus archyve. Tam galima naudoti įvairius archyvatorius. Aš naudosiu turbūt gana dažnam žinomą programą WinRAR. Paspaudžiame ant serverio failų archyvo su dešiniu klavišu ir pasirenkame pasirinkimą "Extract to ...". Archyvatorius turėtų išskleisti failus į naują katalogą.
Serverio failai
Dabar atsidarykime atsiradusį aplankalą ir apžvelgsime jame esančius serverio failus.
Pradėsime nuo tekstinių bylų.
Failas | Paskirtis |
---|---|
server-readme | Serverio paleidimo instrukcija anglų kalba. |
samp-license | Licenziją, kurią turėdami galite laisvai sukurti SA-MP serverį. Taip pat jį vertėtų pasiskaityti prieš pradedant kurti serverį, nes jame surašytos taisyklės, kurių reikia laikytis kitaip licenzija, kurią turite, negalios. |
server.cfg | Pagrindiniai serverio nustatymai. Su šiais nustatymais susipažinsime vėliau. (*) |
(*) Neišsigąskite jog failo piktograma skiriasi nuo prieš tai minėtų tekstinių bylų. Ji turi kitą failo plėtinį cfg. Ji atidaroma su bet kuriuo tekstinių bylų redaktoriumi.
Ką gi... Likę failai yra svarbiausios serverio dalys.
Failas | Paskirtis |
---|---|
samp-server.exe | Šis failas yra pagrindinė serverio dalis. Jame vyks jūsų suprogramuoti procesai. |
samp-npc.exe | Šis failas bus naudojamas tik tuomet jei savo serveryje naudosite NPC. |
announce.exe | Failas reikalingas norint jog jūsų serveris pasiektų pagrindinį Sa-MP serverį, kuriame saugoma informacija apie jūsų serverį. Kitaip tariant, jis padeda jūsų serverį rodyti kitiems žaidėjams savo Sa-MP serverių naršyklėje. |
Pereikime prie serverio aplankų.
Failas | Paskirtis |
---|---|
filterscripts | Jame laikomi serverio priedai ( įvairūs suprogramuoti skriptai ), kuriuos galite atjungti/prijungti prie serverio veikimo nesustabdę serverio darbo. |
gamemodes | Laikomi jūsų serverio pagrindiniai suprogramuoti skriptai, be kurių serveris neveiks. |
include | Šis aplankas nėra būtinas. Jame galite saugoti norimą informaciją. Taippat galite sukurti savo norimą aplanką su norimu pavadinimu, kuriame laikysite savo informaciją, kurią galėsite naudoti serverio tikslams. |
npcmodes | Aplankas skirtas saugoti prieš tai minėtų NPC informacijai. |
pawno | Speciali programa, skirta programuoti Sa-MP skriptams. |
scriptfiles | Aplankas skirtas saugoti įvarius duomenis. |
Serverio įjungimas
Serverio įjungimas nėra sudėtingas dalykas. Pirmiausia atsidarykime savo serverio aplanką ir susiraskime anksčiau minėtą failą samp-server. Paspauskite ant jo 2 kartus. Jeigu buvote atidūs, turėjote pastebėti juodą programos langą, kuris staiga išsijungė. Išsijungimo priežastis yra ta, jog serverio nustatymai nepilnai sukonfigūruoti.
Vėl atsidarykite savo serverio aplanką ir turite pamatyti naujai susikūrusią tekstinę bylą server_log. Atsidarykime ją su betkokiu tekstinių bylų redaktoriumi. Šioje byloje bus laikomi visi įrašai, kurie bus atspausdinami serverio konsolėje ( tame juodame lange, kuris prieš tai staiga išsijungė ). Taigi matote jog byloje kažkas užrašyta angliškai:
Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3b R2, (C)2005-2010 SA-MP Team [14:05:08] Error: Your password must be changed from the default password, please change it.
Byloje skaitome tekstą nuo apačios ir ieškome pirmos klaidos dėl kurios išsijungė serveris. Jei mokate anglų kalba, pamatę žodį Error, turėjote suprasti, jog kažkur įvyko klaida. Paskaičius klaidos aprašymą suprantame jog serveris neįsijungia dėl to jog serverio slaptažodis nėra nustatytas.
Norint nustatyti slaptažodį atsidarykime kitą tekstinę bylą server. Primenu jog šioje byloje laikomi serverio pagrindiniai nustatymai. Atsidarę bylą susiraskime eilutę su žodžiu rcon_password. Prie jo matome kitą žodį changeme. Tai prieš tai esančio žodžio reikšmė. Pakeiskime žodį changeme į kitą reikšmę, pvz: 123456. Išsaugome bylos pakeitimus. Nuo šiol mūsų serverio slaptažodis bus 123456.
Vėl du kartus spustelkite ant samp-server programos. Jei serverį įjungiate pirmą kartą, jums turėtų atsiverti papildomas Windows Security langas su pranešimu apie programos prašymą prisijungti prie interneto. Paspauskite Unblock pasirinkimą. Dabar serveris galės prisijungti prie interneto.
Grįžkime prie serverio lango. Matome jog jame yra įvairaus teksto, su įvairias pranešimais. Ką gi sėkmingai serverį įjungėme. Dabar galima serverį išjungti. Tai padarykime išjungę programą, kaip ir kitas programas.
Serverio nustatymai
Visų pirma serverį galima kontroliuoti įvairiais būdais. Pirmasis valdymo būdas - tai serverio kontroliavimas naudojant pačio serverio console'ę.
Įsijunkime savo serverį. Norėdami vykdyti įvairius veiksmus, komandas turėsime rašyti atsidariusioje console'ėje. Pirmiausia įrašykime komandą cmdlist ir paspauskime ENTER klavišą. Matome jog serveris atspausdino tam tikrą tekstą, pažvelkime į jį:
Console Commands: echo exec cmdlist varlist exit kick ban gmx changemode say reloadbans reloadlog players banip unbanip gravity weather loadfs unloadfs reloadfs
Taigi ši komanda cmdlist atvaizduoja komandų sąrašą, kurias galime naudoti console'lėje. Deja čia atvaizduotos ne visos įmanomos komandos. Štai jų pilnas sąrašas su paaiškinimais:
Komanda | Parametrai | Veiksmas |
---|---|---|
cmdlist | (-) | Atvaizduojamas komandų sąrašas. |
varlist | (-) | Atvaizduojami serverio pagrindiniai kintamieji, bei jų reikšmės. |
exit | (-) | Sustabdomas serverio veikimas. |
echo | tekstas[] | Atspausdinamas įvestas tekstas console'ėje. |
hostname | name[] | Pakeičiamas serverio pavadinimas į įvestą tekstą. |
gamemodetext | pavadinimas[] | Pakeičiamas serveryje naudojamo gamemode pavadinimas į įvestą tekstą. |
mapname | pavadinimas[] | Pakeičiamas serverio žemėlapio pavadinimas į įvestą tekstą. |
exec | failo_pavadinimas[] | Atidaromas tekstinė byla, kurios pavadinimą įvedėte. |
kick | id | Išspiriamas iš serverio žaidėjas, kurio ID įvedėte. |
ban | id | Užblokuojamas žaidėjas, kurio ID įvedėte. |
changemode | gamemode[] | Pakeičiamas serveryje naudojamas gamemode į jūsų įrašytą gamemode. |
gmx | (-) | Serveris įjungs patį pirmąjį gamemode, kuris nustatytas server.cfg byloje. |
reloadbans | (-) | Bus ištrinama informacija iš samp.ban bylos, kurioje saugoma blokavimų informacija. |
reloadlog | (-) | Bus ištrinama informacija iš server_log bylos. |
say | tekstas[] | Parodomas įvestas tekstas, žaidėjams esantiems žaidime. |
players | (-) | Rodoma serveryje esančių žaidėjų informaciją, įskaitant IP adresus, bei ping. |
banip | ip[] | Užblokuojamas įvestas IP adresas. |
unbanip | ip[] | Atblokuojams įvestas IP adresas. |
gravity | float:gravitacija | Pakeičiama serverio gravitaciją į jūsų įvestą realujį skaičių. |
weather | oras | Pakeičiamas serverio oras į jūsų įvestą. |
loadfs | filterscript[] | Paleidžiamas įvestas filterscript'as. |
unloadfs | filterscript[] | Sustabdomas įvesto filterscript'o veikimas. |
reloadfs | filterscript[] | Sustabdomas bei paleidžiamas iš naujo įvestas filterscript'as. |
rcon_password | slaptažodis[] | Pakeičiamas serverio slaptažodis į įvestąjį. |
announce | 0 arba 1 | Pakeičiamas privatumas. 0 - serveris nebus rodomas Sa-MP serverių naršyklėje, 1 - rodomas. |
bind | ip[] | Priverčia serverį naudoti įvestą ip, tačiau nurodytas ip turi būti suderintas su tinklo plokšte. |
port | prievadas[] | Nustatomas serverio prievadas. |
filterscripts | filterscriptai[] | Aktyvių filterscriptų sąrašas. |
gamemode0 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode1 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode2 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode3 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode4 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode5 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode6 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode7 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode8 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode9 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode10 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode11 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode12 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode13 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode14 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
gamemode15 | gamemode[], kiekis | Nustatomas pasirinktas gamemode bei kiekis, kiek kartų bus naudojamas šis gamemode. |
incar_rate | rate | Minimalus milisekundžių kiekis, per kurį žaidėjo informacija siunčiama serveriui kuomet jis būna tranporto priemonėje. |
onfoot_rate | rate | Minimalus milisekundžių kiekis, per kurį žaidėjo informacija siunčiama serveriui kuomet jis nėra tranporto priemonėje. |
weapon_rate | rate | Minimalus milisekundžių kiekis, per kurį žaidėjo informacija siunčiama serveriui kuomet jis naudojasi ginklais. |
stream_distance | atstumas | Atstumas dvimatėje plokštumoje, kuriam esant tarp prisijungusių žaidėjų bus atnaujinama žaidėjų informacija. |
stream_rate | rate | Milisekundžių kiekis, kuris turi praeiti kol tikrins stream_distance atstumą su atstumu esančių tarp žaidėjų. |
lanmode | 0 arba 1 | Pakeiča lanmode rėžimą. 0 - išjungia, 1 - įjungia. |
maxnpc | npc_kiekis | Nustato maksimalų leistiną NPC kiekį serveryje. |
max_players | žaidėjų_kiekis | Nustato maksimalų leistiną žaidėjų kiekį serveryje. |
password | slaptažodis[] | Nustatomas slaptažodis, kurį reikės įvesti norint prisijungti į serverį. |
plugins | plugin'ai[] | Serverio naudojamų plugin'ų sąrašas. |
rcon | 0 arba 1 | Nustatomas nuotolinio serverio valdymo galimybė. 0 - išjungia, 1 - įjungta. |
version | tekstas[] | Serverio versija. |
weburl | adresas[] | Pakeičiamas serverio internetinis puslapis į įvestąjį. |
worldtime | laikas | Nustatomas globalus serverio laikas į įvestąjį. |
timestamp | 0 arba 1 | 1 - įjungiamas laiko žymeklis prie kiekvieno įrašo server_log byloje, 0 - išjungiamas. |
nosign | tekstas[] | Reikšmė nežinoma. |
myriad | 0 arba 1 | Reikšmė nežinoma. |
query | 0 arba 1 | 0 - išjungiamas galimas jungimasis prie serverio (dvipusis ryšys - angl. „socket connection“), 1 - ryšys įgalinamas. |
logqueries | 0 arba 1 | 1 - įjungiamas jungimųsi prie serverio fiksavimas, 0 - išjungiamas. Įjungus šį parametrą, bus parodomi visi prisijungimai prie serverio aprašyti prie aukščiau esančio kintamojo „query“. |
sleep | kintamasis | Laiko tarpas tarp serverio vykdomų procesų, per kurį serveris nieko nevykdo. Naudojant didesnę reikšmę, serveriui prireiks mažiau išteklių, kadangi procesai vyks rečiau, tačiau dėl to kentės žaidimo kokybė. Naudojant mažesnę reikšmę, serveris sunaudos daugiau resursų, tačiau pagerės serverio darbas, visi jo vykdomi procesai taps tikslesni. |
output | 0 arba 1 | 1 - ?, 0 - ?.Šis nustatymas neturi įtakos, jei serveris veikia Windows platformoje. |
Nuo SA-MP 0.3c R2 versijos galimos komandos:
Komanda | Parametrai | Veiksmas |
---|---|---|
logtimeformat | datos_formatas[] | Nustato datos formatą, ties kiekvienu sakiniu server_log byloje. Pavyzdžiui nustačius reikšmę į "[%Y/%m/%d/ %H:%M:%S]", data bus atvaizduojama taip: "[metai/mėnuo/diena/ valanda:minutė:sekundė]". |
Nuo SA-MP 0.3e R2 versijos galimos komandos:
Komanda | Parametrai | Veiksmas |
---|---|---|
chatlogging | reikšmė | Kontroliuojamas pokalbių lango pranešimų saugojimą į „server_log.txt“ bylą. 1 - žinutės bus įrašomos į bylą, 0 - nebus. |
Reikšmė |
---|
Šio parametro naudojamo serveris neriboja. |
Šio parametro keisti negalima, jei serveris aktyvus. |
Šio parametro keisti negalima. |
Serverio nustatymai, kurie nebeegzistuoja dabartinėje SA-MP 0.3e R2 versijoje:
Komanda | Parametrai | Veiksmas | Panaikinta |
---|---|---|---|
anticheat | 0 arba 1 | 1 - nurodoma, jog serveris turi naudoti apsaugos priemones, 0 - apsaugos priemonės nenaudojamos. | 0.2.2 R3 |
instagib | 0 arba 1 | Nurodo, ar žaidėjas turi mirti peršautas nuo vienos kulkos. 1 - ypatybė įjungiama, 0 - išjungiama. | 0.3 |
incar_rate_idle | rate | Reikšmė nežinoma. Šis nustatymas egzistavo tik SA-MP 0.2.5 versijoje, kurios oficialaus išleidimo nebuvo. | n/a |
onfoot_rate_idle | rate | Reikšmė nežinoma. Šis nustatymas egzistavo tik SA-MP 0.2.5 versijoje, kurios oficialaus išleidimo nebuvo. | n/a |
density_multiplier | multiplier | Reikšmė nežinoma. Šis nustatymas egzistavo tik SA-MP 0.2.5 versijoje, kurios oficialaus išleidimo nebuvo. | n/a |
Daugumą šių nustatymų galite kontroliuoti tekstinėje byloje server su plėtiniu cfg. Atsidarykite jį ir prie norimos komandos parašykite jums reikalingą reikšmę. Jei byloje nėra jums reikiamos komandos, tuomet ją įrašykite naujoje eilutėje.
Kitas būdas valdyti serverį - tai serverio valdymas per nuotolį (ang. remote console). Šis įrankis yra jūsų GTA San Andreas žaidimo pagrindiniame aplanke bei pačioje SA-MP kliento programoje.
Šiuo metu RCON įrankis nėra įdiegtas pačiame kliente, todėl norėdami jį pasileisti turite jo paleidimą atlikti rankiniu būdu. Jei apie tai nenusimanote, patariame pasinaudoti vienu iš šių skriptų ( daugiau informacijos apie jį surasite paspaudę atitinkamą nuorodą ):
Failas | Autorius |
---|---|
Bat RCON Tool | Mike Garber |
RCON remote console starter | Kwarde |
Gamemode nustatymas
Dabar pabandysime paleisti konkretų gamemode serveryje.
Pirmiausia atsidarykite savo serverio pagrindinį aplanką bei suraskite jame gamemodes aplanką. Atidarę jį jau turėtumėte matyti keletą failų. Tai gamemode failai. Norint, jog serveris taisyklingai paleistų gamemode'ą, aplanke turi būti leidžiamo gamemode'o failas su amx plėtiniu. Taigi... Į aplanką gamemodes įkelkite norimo gamemode amx failą.
Įkėlę failą gryžkite į pagrindinį serverio aplanką ir atidarykite nustatymų failą server.cfg. Jame susiradę eilutę gamemode0 prie jos prirašykite leidžiamo gamemode'o failo pavadinimą. Mano atveju tai bus:
gamemode0 lvdm 1
Primenu, jog "1" reiškia šio gamemode'o paleidimo kartus.
Uždarykite šią bylą išsaugoję pakeitimus. Dabar galite įjungti serverį ir išbandyti norimą gamemode'ą.
Filterscript'ų kontroliavimas
Filterscript'ai valdomi taippat kaip gamemode'ai.
Norėdami paleisti filtersctipt'ą, pirmiausia atidarykite serverio aplanke esantį aplanką - filterscripts. Tai aplankasm kuriame turės būti laikomi filterscript'ų failai su amx plėtiniu.
Susiradę norimą filterscript'ą, įkelkite jo amx failą į nurodytą katalogą ir atsidarykite server.cfg bylą. Joje susiraskite eilutę filterscripts. Prie jos prirašykite naudojamo filterscript'o failo pavadinimą.
Pavyzdys:
filterscripts adminspec
Norėdami prie serverio prijungti daugiau filterscriptų, jų pavadinimus atskirkite tarpo simboliu. Tik neužmirškite jog maksimalus filterscriptų kiekis yra 16.
Jei serveriui veikiant užsimanysite atjungti filtersctipt'ą, tuomet jums reikės serverio konsolėje pasinaudoti komanda unloadfs. Įvedė šią komandą prie jos parašykite norimo atjungti filterscript'o pavadinimą. Apie veiksmo sekmę jums praneš pats serveris:
Plugin'ų naudojimas
SA-MP modifikacijoje yra galimybė prie serverio prijungti įvairius plugin'us, kurie atlieka tam tikrą paskirtį. Jų naudojimas nėra sudėtingas dalykas. Svarbiausia, jog plugin'o failai būtų serverio pagrindiniame aplanke esančiame plugins aplanke.
Taigi norėdami prijungti kokį nors plugin'ą... Įkelkime jo failus į nurodytą aplanką. Svarbu nepamiršti, jog dažniausiai kiekvienai operacinei sistemai reikia turėti atskirus plugin'o failus. Įkėlę plugnio failus, atsidarykite serverio nustatymų tekstinę bylą server.cfg ir joje susiradę eilutę plugins, prie jos surašykite visus naudojamus pluginus. Štai ir viskas. Paleidus serverį, automatiškai bus paleistas ir pluginas.