Offline |
|
|
Csatlakozott: 2008.09.15. 16:41 Hozzászólások: 76
Megköszönték neki: 6 alkalommal
|
Sokat gondolkodtam, hogy mi lehet a hiba pl egy zombi szerver összerakásakor. Sok embernél láttam, hogy fejetlenül csak összedobálják a plugineket és utána jönnek rá, hogy valami hiba van a szerveren, utána meg itt kérnek segítséget a fórumon, persze az ember, ha tud akkor segít de azért ez néha (információ hiányában) elég nehéz. Először is be kellene tartani bizonyos programozási alapszabályokat: 1. tervezés 2. kivitelezés (bővebben: saját magad írod meg/át a plugint) 3. ellenőrzés (log) 4. ellenőrzés 5. ellenőrzés 6. ellenőrzés . . . A tervezés a legegyszerűbb dolog. Egy példa (részlet) zombi szerverre: ► Spoiler mutatása ember fajok ember speed:240 gravity:800
ember bossok survivor speed: gravity: fegyver:minigun +unlimited clip(round) vásárlás:sandbag sniper speed: gravity: fegyver:awp+unlimited clip(round)+quaddamage+awpskin vásárlás: speed spy speed: gravity: fegyver:usp +unlimited clip(round)+quaddamage+uspskin+láthatatlanság vásárlás: speed,deadlyshoot wesker speed: gravity: fegyver:deagle +unlimited clip(round)+quaddamage+deagleskin vásárlás: speed,deadlyshoot plasmaman speed: gravity: fegyver:plazma +unlimited clip(round)+speed vásárlás: ----- fireman speed: gravity: fegyver:fireplazma +unlimited clip(round) vásárlás: ----- iceman speed: gravity: fegyver:iceplazma +unlimited clip(round) vásárlás: -----
zombi fajok:
alap HEALTH = 5000 SPEED = 240 GRAVITY = 1.00 KNOCKBACK = 0.50 páncélos HEALTH = 8000 SPEED = 230 GRAVITY = 1.00 KNOCKBACK = 0.70 vadász(kétfejű) HEALTH = 4000 SPEED = 260 GRAVITY = 1.00 KNOCKBACK = 0.30 vámpír HEALTH = 3500 SPEED = 240 GRAVITY = 1.00 KNOCKBACK = 0.50 minden sebzésnél + 400hp healer HEALTH = 4000 SPEED = 240 GRAVITY = 1.00 KNOCKBACK = 0.40 minden 5.sec 10%ot healel saját magán (csapaton 5%-ot) regenerator HEALTH = 4000 SPEED = 240 GRAVITY = 1.00 KNOCKBACK = 0.30 megkeresni a régi számolást (fél másodpercenként x %) Múmia HEALTH = 4500 SPEED = 240 GRAVITY = 1.00 KNOCKBACK = 0.25 duplaugrás leaper HEALTH = 4500 SPEED = 230 GRAVITY = 1.00 KNOCKBACK = 0.10 hosszúugrás sikoly HEALTH = 4000 SPEED = 240 GRAVITY = 1.00 KNOCKBACK = 0.30 sikítás 25 mp-enként kaszás HEALTH = 4000 SPEED = 300 GRAVITY = 1.00 KNOCKBACK = 0.10 düh 10mp husk (tüzes) HEALTH = 4000 SPEED = 230 GRAVITY = 1.00 KNOCKBACK = 0.20 tűzgolyót lő 20 mpenként elektro HEALTH = 4000 SPEED = 230 GRAVITY = 1.00 KNOCKBACK = 0.20 fegyverelrontás 30mp-enként team healer HEALTH = 8000 SPEED = 260 GRAVITY = 1.00 KNOCKBACK = 0.70 csapattársat healel ha hozzáér fly HEALTH = 1000 SPEED = 250 GRAVITY = 1.00 KNOCKBACK = 0.10 repül
zombi bossok: nemesis HEALTH = 2000*pl SPEED = 250 GRAVITY = 0.5 KNOCKBACK = painfree leap,duplaugrás,sebzés 250 assassin HEALTH = 1000*pl SPEED = 230 GRAVITY = 0.5 KNOCKBACK = painfree leap,duplaugrás,sebzés 99,sötét pálya bombardier HEALTH = 1000*pl SPEED = 230 GRAVITY = 1.0 KNOCKBACK = painfree dobál:kill gránát,fertőző gránát,pajzsnyelő gránát predator HEALTH = 1000*pl SPEED = 250 GRAVITY = 0.8 KNOCKBACK = 1.0 láthatatlanság kaszás HEALTH = 1000*pl SPEED = 300 GRAVITY = 1.0 KNOCKBACK = 0.5 5mp düh 20 mp-enként használható
zombi extrák: zombi veszi fel BOLTBAN zseton(bolt,talált) (dobja:halálkor a gyilkosnak random) (max999/round,max999/map) 100lcs antidote (bolt,talált) (dobja: ember) 1alk (max 4/round) 50lcs düh (bolt,talált) (dobja: kaszás) 10 sec (max 4/round) 50lcs zombi típusváltás azonnal (bolt)(-------) 1alk (max2/map) 1000lcs
RAKTÁRBAN ember veszi fel
hosszú ugrás (talált) (dobja:leaper) 30 sec (max 1x/round,max 4/map) 100lcs multijump (talált) (dobja:múmia) 30sec (max 1x/round,max 4/map) 100lcs health (talált) (dobja:healer) 60sec (max 1x/round,max4/map) 120lcs regenerate(talált) (dobja:regenerator) 30 sec (max 2x/round,max4/map) 150lcs lockerz(talált) (dobja:lockerz) 1alk (max1x/round,max4/map) 50lcs scream(talált) (dobja:sikoly) 1alk (max1x/round,max4/map) 50lcs kill gránát (talált)(dobja:vámpír) 1alk (max1/round,max2/map) 200lcs páncélgránát (talált) (dobja:páncélos zombi) 1alk (max 4/round,max8/map) 100lcs fertőző gránát(talált) (dobja:alap zombi) 1alk (max1/round,max2/map)150lcs
nemezis(talált) (dobja:kockázás) 1alk (max1/round,max1/map csak körkezdés előtt, ha más még nem használta) assassin(talált) (dobja:kockázás) 1alk (max1/round,max1/map csak körkezdés előtt, ha más még nem használta) láthatatlanság (talált) (dobja:kockázás) 10sec (max 1x/round)
ember extrák:
lasermine (bolt) (----------) 1alk (max 4/round,max999/map) 40lcs sandbag (bolt) (--------) 1alk (max8/round,max999/map) 10lcs gázmaszk (bolt,talált) (dobja:kockázás) 1alk (max8/round,max999/map) 200lcs (megjegyzés:aki az aurájában van az zöld"glow"-al rendelkezik, vizsgálni mp-enként,1gázmaszk 3egység védelemmel rendelkezik, 1 gránát 5 sebzéssel, egyszerre csak 1 vehető) fegyverek 2xsebzéssel: arany deagle(bolt,talált) (dobja:láda) 1alk (max1/round,max8/map) 80lcs aranym4 (bolt,talált) (dobja:láda) 1alk (max1/round,max8/map) 100lcs aranyak47 (bolt,talált) (dobja:láda) 1alk (max1/round,max8/map) 120lcs arany xm1014 (bolt,talált) (dobja:láda) 1alk (max1/round,max8/map) 150lcs
egyéb fegyverek: plazma(awp) (bolt,talált) (dobja:kockázás) 1alk (max1/round,max2/map) 200lcs fireplasma(awp) (bolt,talált) (dobja:kockázás) 1alk (max1/round,max2/map) 300lcs frozenplasma (awp) (bolt,talált) (dobja:kockázás) 1alk (max1/round,max2/map) 500lcs minigun(m249) (bolt,talált) (dobja:kockázás) 1alk (max1/round,max2/map)
ember veszi fel armor (bolt,talált) (dobja: páncélos zombi) 1alk (max4/round,max40/map) 80lcs silent hill rádió(bolt,talált) (dobja: alap zombi) 1alk (max1/round,max999/map) 20lcs deadly shoot (bolt,talált) (dobja:husk) 30sec(max1/round,max4/map) 100lcs norecoil (bolt,talált) (dobja:lockerz) 30sec (max1/round,max4/map) 100lcs double damage (bolt,talált) (dobja:múmia) 30sec (max1/round,max4/map) 200lcs (tulajdonság:ezüst nyyomvonal) unlimited clip (bolt,talált) (dobja:regenerator) 30sec (max2/round,max8/map)200lcs speed (bolt,talált) (dobja:kétfejű) 10sec (max2/round,max8/map) 50lcs
unlimited clip round(bolt) (NEM LÁTHATÓ A LISTÁN) 1 alk (csak BOSS KAPJA AUTOMATIKUSAN) 0LCS quaddamage round (bolt) (NEM LÁTHATÓ A LISTÁN) 1 alk (csak BOSS KAPJA AUTOMATIKUSAN) 0LCS (tulajdonság:sárga nyyomvonal) speed round (bolt) (NEM LÁTHATÓ A LISTÁN) 1 alk (csak BOSS KAPJA AUTOMATIKUSAN) 0LCS láthatatlanság round (bolt) (NEM LÁTHATÓ A LISTÁN) 1 alk (csak BOSS KAPJA AUTOMATIKUSAN) 0LCS awpskin round (bolt) (NEM LÁTHATÓ A LISTÁN) 1 alk (csak BOSS KAPJA AUTOMATIKUSAN) 0LCS uspskin round(bolt) (NEM LÁTHATÓ A LISTÁN) 1 alk (csak BOSS KAPJA AUTOMATIKUSAN) 0LCS deagleskin round(bolt) (NEM LÁTHATÓ A LISTÁN) 1 alk (csak BOSS KAPJA AUTOMATIKUSAN) 0LCS
túlélő (talált) (dobja:kockázás) 1alk (max1/round,max1/map csak körkezdés előtt, ha más még nem használta) sniper (talált) (dobja:kockázás) 1alk (max1/round,max1/map csak körkezdés előtt, ha más még nem használta)
közös extrák: lőszercsomag 100 (talált)(dobja:kockázás) 1alk (max999/round,max999/map) lőszercsomag 500 (talált)(dobja:kockázás) 1alk (max999/round,max999/map) lőszercsomag 1000 (talált)(dobja:kockázás) 1alk (max999/round,max999/map) zseton(bolt,talált) (dobja:halálkor a gyilkosnak boss 5x ) (max999/round,max999/map) 100lcs 3rdpersonview (bolt) (----------) (max999/round,max999/map) 0lcs respawnaszombie(talált) (dobja:kockázás) (max1/round,max 4/map,csak ha még van zombi és van ember és csak többszörös és raj módés csak kör vége előtt) respawnashuman(talált) (dobja:kockázás) (max1/round,max 4/map,csak ha még van zombi és van ember és csak többszörös és raj mód csak kör vége előtt)
team közös extrák teamprefix (bolt) (---------) (jogosultság:nonteamplayer,ha nincs még ilyen az adatbázisban)(10000LCS) tulajdonság: mysql insert 'teams' (teamname = <teamprefix>,banned='0/1',leadlastjoin) and insert teamplayers (name = <bank accountname>,teamname = <teamprefix>,invite ='1',leader ='1' joined = 'datetime', lastjoin = 'datetime') (prune mapváltás után delete * from teamplayers where (lastjoin < dtetime + 1év> and leader = '1') > teamslot (bolt) (-------) (teamleader) 1000lcs unlock regenerator (bolt) (-------) (teamleader) 1000lcs unlock kaszás (bolt) (----------) (teamleader) 1000 lcs unlock electro (bolt) (--------) (teamleader) 1000 lcs unlock fly (bolt) (--------) (teamleader) 100000 lcs unlock plazma (bolt) (--------) (teamleader) 1000 lcs unlock fireplazma (bolt) (--------) (teamleader) 1000 lcs unlock frozenplazma (bolt) (--------) (teamleader) 1000 lcs emberskin1 (bolt) (---------) (teamleader) (0lcs) (körkezdéskor vizsgálni a játékosnál, hogy tagja-e teamnek) emberskin2 (bolt) (---------) (max 1/map,max teamleader) (2000lcs) emberskin3 (bolt) (---------) (max 1/map,max teamleader) (3000lcs) emberskin4 (bolt) (---------) (max 1/map,max teamleader) (4000lcs) emberskin5 (bolt) (---------) (max 1/map,max teamleader) (5000lcs) emberskin6 (bolt) (---------) (max 1/map,max teamleader) (6000lcs) emberskin7 (bolt,moderátorjog szükséges, nem látszik a listán) (---------) (max 1/map,max teamleader) (7000lcs) emberskin8(bolt,adminjog szükséges,nem látszik a listán) (---------) (max admin) (8000lcs) unlock raktár(bolt) (---------) (max teamleader) 10000 lcs unlock zseton a boltban (bolt) (---------) (max teamleader) (10000lcs) jog a kockázáshoz(lcs) (bolt) (---------) (max teamleader) (10000lcs) jog a kockázáshoz(nemesis) (bolt) (---------) (max teamleader) (20000lcs) jog a kockázáshoz(assassin) (bolt) (---------) (max teamleader) (30000lcs) jog a kockázáshoz(láthatatlanság) (bolt) (---------) (max teamleader) (50000lcs) jog a kockázáshoz(survivor) (bolt) (---------) (max teamleader) (20000lcs) jog a kockázáshoz(sniper) (bolt) (---------) (max teamleader) (30000lcs) jog a kockázáshoz(plasma) (bolt) (---------) (max teamleader) (50000lcs) jog a kockázáshoz(fireplasma) (bolt) (---------) (max teamleader) (50000lcs) jog a kockázáshoz(frozenplasma) (bolt) (---------) (max teamleader) (50000lcs) jog a kockázáshoz(minigun) (bolt) (---------) (max teamleader) (50000lcs) lcsbank bővítés (10k->50k) (bolt) (---------) (max teamleader) (10000lcs) lcsbank bővítés (50k->100k) (bolt) (---------) (max teamleader) (40000lcs) lcsbank bővítés (100k->1m) (bolt) (---------) (max teamleader) (99000lcs)
fragverseny (bolt,adminjog szükséges hozzá,csak az első két körben vehető) (max admin vagy teamleader) 55000lcs
(megjegyzés prefixeknél:jogra van az admin,főadmin és kell lenni tiltólistának is amiről letilthatóak bizonyos teamnevek, ilyenkor "tiltott" nevű lesz a klán) teamleadereknek rendelkezésre áll új (chat)parancs: /teaminvite (felhasználónévhez kötött)(játékosmenüvel, saját magára nem érvényes és csak nem tagokra használható) a felvételhez ,elfogadáskor a teamleaderrel egyező vásárolt jogokat megkapja /teamkick (felhasználónévhez kötött)(játékosmenüvel, saját magára nem érvényes és csak tagokra használható)a kirugáshoz, kidobja a mysql teamlistáról a játékost /teamban (felhasználónévhez kötött) (játékosmenüvel, saját magára nem érvényes és csak tagokra használható,account nevet banol) /teamdestroy (teamnévhez kötött)(megszünteti a teamet a mysqlben) /teamlead (teamleader jog átadása)
játékosoknak rendelkezésre álló parancs(mindenki): /whisper: chat a játékosok között,admin látja /teamértékelések : adminjoghoz kötött,konzolba kiírja a függőben levő értékeléseket id-vel. /teamaccept<id>:adminjoghoz kötött, elfogadja az adott sorszámú értékelést /teamdecline<id>:adminjoghoz kötött, elutasítja az adott sorszámú értékelést
teamtagoknak: /teamleave:kilépés a teamból /teamértékelés <indoklás>: konzolparancs teamtag használhatja mielőtt kilép (admin/moderátor jóváhagyás szükséges)az értékelés +10-el indulhat, egy teamet egy ember csak egyszer értékelhet, értékelés elfogadásának elutasításakor törlődik az értékelés a mysqlben /teaminfo:infot ír ki konzolban a teamtagokról (aktuális játékosnév,account név,nsinfo,online info,mióta tag,aktuális online info,leader) /team: kiírja a megvásárolt teamjogokat konzolban (teamleader jogai)
zombiraktár:
zseton (csak jog szerint dobhat) antidote (csak sima zombi használhatja) düh (csak sima zombi használhatja) hosszú ugrás (csak sima zombi használhatja) multijump (csak sima zombi használhatja) health (csak sima zombi használhatja) regenerate (csak sima zombi használhatja) lockerz (csak sima zombi használhatja) scream (csak sima zombi használhatja) kill gránát (csak sima és főzombi zombi használhatja) páncélgránát (csak sima és főzombi zombi használhatja) fertőző gránát (csak sima és főzombi zombi használhatja) nemezis (csak körkezdés előtt,jog szerint) assassin (csak körkezdés előtt,jog szerint) láthatatlanság (csak sima zombi használhatja,jog szerint) respawnaszombie (csak halottnak) respawnashuman (csak halottnak)
emberraktár: zseton (csak jog szerint dobhat) aranydeagle aranym4 aranyak47 aranyxm1014 plasma (jog szerint) fireplasma (jog szerint) frozenplasma (jog szerint) minigun (jog szerint) armor silent hill rádió deadly shoot norecoil double damage unlimited clip speed respawnaszombie (csak halottnak) respawnashuman (csak halottnak)
túlélő (csak körkezdés előtt,jog szerint) sniper (csak körkezdés előtt,jog szerint)
team mysql elképzelés
tábla1 (teams): teamnév banned leadlastjoin slot(alap 4 max 10) teamjog1(megvásárláskor hozzáadva) teamjog2(megvásárláskor hozzáadva) teamjog3(megvásárláskor hozzáadva) stb tábla2 (teamplayer) accnév teamnév leaderjog invitejog
raktár raktártételek kiolvasása ini fileból mapkezdéskor (elmentve a raktártípus is) játékos loginnál kiolvasás mysql-ből ini lapján játékos halálkor, ládanyitáskor, kockázáskor, hullából felvételkor játékosnak hozzáadni menüből használatkor levonni
adminrendszer: tulajdonos mnden jog főadmin minden jog kivéve config, zombi menü hozzáférések,unban,ungag admin (fizetős) kick,ban,pályaváltás,gag, slap,slay,zombi menü hozzáférése nincs moderátor kick,ban,pályaváltás,gag vip (fizetős) full lcsbank, jog a kockázáshoz,raktárhasználat,unlock zombitípusok,
HUDmegoldás (menüvel bal oldalon másodpercenként frissítve amíg tovább nem lép): 0. menü köv lap 1.élet: (vásárol egy antidote-ot) 2.páncél: (vásárol 1-páncélt)(hudmenu) 3.egyéb forward gázmaszk: (vásárol 1-et)(hudmenu) 4.lőszercsomag(itt jeleníti meg a plusz szerzettet is):(előhozza az extramenüt) 5.egyéb forward team: (előhozza a teaminfo menüt) 6.egyéb forward raktár:(előhozza a raktárat)(+ kiírja a felvett dolog nevét) 7.egyéb forward zseton:(előhozza a kockázásmenüt) 8.egyéb forward zsák: (letesz 1-et )(hudmenu) 9.egyéb forward lézer: (letesz 1-et)(hudmenu) menu köv lap: 0. kör hátralevő idő (menükövlap) 1.egyéb forward cooldown (jelzése iiiii töltődve, hateljes akkor nem villog az utolsó és zöld a szine) h:speed z:leap 2.egyéb forward cooldown (jelzése iiiii töltődve, hateljes akkor nem villog az utolsó és zöld a szine) h:doubledamage Z:multijump 3.egyéb forward cooldown (jelzése iiiii töltődve, hateljes akkor nem villog az utolsó és zöld a szine) h:dshoot Z: heal 4.egyéb forward cooldown (jelzése iiiii töltődve, hateljes akkor nem villog az utolsó és zöld a szine) h:unlimited clip Z: regenerate 5.egyéb forward cooldown (jelzése iiiii töltődve, hateljes akkor nem villog az utolsó és zöld a szine) h:norecoil Z: láthatatlanság 6.egyéb forward cooldown (jelzése iiiii töltődve, hateljes akkor nem villog az utolsó és zöld a szine) h: Z: 7.egyéb forward cooldown (jelzése iiiii töltődve, hateljes akkor nem villog az utolsó és zöld a szine) h: Z: 8.egyéb forward cooldown (jelzése iiiii töltődve, hateljes akkor nem villog az utolsó és zöld a szine) h: Z:
teaminfo menü: 1. leader (kilép(hudmenu)) 2. alapítva (kilép(hudmenu)) 3. teamslot (max8)(kilép(hudmenu)) 3. tagok (új menüt nyit: team tagok)
teamtagok menu
1. kick v ban a teamból vagy invite vagy teamleader jog (invite jog kivételével mindegyiknél rákérdez menüvel) 2....x név (invite jog)(belépett)(online) (leader) (hudmenu)
raktár menü (összes tétel száma):
1....x raktártételek (mennyiség) (vásárol és (hudmenu))
kockázás menü (zsetonok száma):
1.kockázás (kockázás menüt nyit) 2. kilép (hudmenu)
sorrend: zpmod addons teammod skinek zombi classok extrák
zombi fertőzés/kill után 5 ammot kap zombiboss kill után 5 ammot kap ember 300 dmg után 1 ammot kap játékos 5 percenként 50 ammot kap boss nyerés esetén +50 ammot kap (nem annyira kidolgozott még, meg lehet hogy csak én értem jelenleg, de attól még ez egy terv) Kivitelezésnél sokat segít, ha a letöltött és a saját magad által írt pluginokat is egyforma koncepcióra húzod rá. Gondolok itt például a roundstart eventre, amire sokféleképpen tudnak hivatkozni megírt kódokban: ► Spoiler mutatása register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_event("HLTV", "roundstart", "a", "1=0", "2=0") register_event("HLTV", "newround", "a", "1=0", "2=0") tehát itt is válassz egyet és következetesen az összes pluginban írd át. Az összes kódban érdemes valamilyen sorrendiséget megtartani a funkcióknál (nagyjából ebben a sorrendben futnak le az alábbi tételek): [spoil] //ezek itt a szerverre vonatkoznak: public plugin_precache() public plugin_init() public plugin_cfg() public plugin_natives() //játékosra vonatkozó funkciók: public client_connect(id) public client_authorized(id) public client_putinserver() public client_disconnected(id) //mapra vonatkozó funkciók: public event_round_start() public event_round_end() [spoil] Harmadik lépésben pedig, minden pluginba érdemes tenniolyan funkciót ami a hibát logolja (még ha csak "kapcsolható" is) és mikor elindítod a szervert a kész pluginekkel akkor sűrűn olvasgasd a log fileokat, sok minden kiderül belőlük. Röviden ennyi lenne, hogy mire kellene figyelni ha nekiállsz amxx alá kódolni. Ezek nem kőbe vésett törvények, de (főleg ha kezdő vagy benne) akkor érdemes betartani, mert az átláthatóságát a kódodnak nagyban elősegíti saját magad számára is (főleg hibakeresésnél...).
_________________
|
|