1Mark6 - [ Invetory | Tárgy rendszer ] - MySQL R39-5
A rendszer tartalmazza :
Tárgyak létrehozása a játékban.
Tárgyak kezelése a játékban.
Tárgy adás játékosnak.
Tárgy elvétel játékostól.
Tárgy eldobás.
Tárgy felvétel.
Dinamikus rendszer, a változásokat a rendszer egyből menti, illetve kezeli.
A rendszer elkészítése közben nem változókba \"töltögettem\" az értékeket, hanem egy jó pár tanítóm tanácsára, az adatbázis lekérdezés során kezeltem őket. [ FONTOS ]
Tárgy létrehozás :Lehetőségünk van arra, hogy a játékban hozzunk létre saját tárgyakat, ezt a \"/tárgylétrehozás\" paranccsal tehetjük meg. Ennek a parancsnak 2 paramétere van, mégpedig < Tárgy Név > és a < Tárgy Objekt >. Ha tárgynévnek olyan adatot adunk meg, amely már létezik ( Létező tárgy nevét irod be ) akkor hibaüzenetet kapunk, mivel nemtudod kétszer ugyanazt a tárgyat létrehozni. A tárgyobjekt, 2. paraméter azt a célt szolgálja, hogy amikor azt a bizonyos tárgyat eldobjuk azzal az Object-el fog legenerálódni.
Tárgy törlés :Lehetőségünk van arra, hogy a már létező tárgyat töröljük a rendszerből a \"/tárgytörlés\" paranccsal. Ez akkor kedvező amikor például elgépeljük az adott tárgy nevét, illetve egyéb alkalmakkor használatos. A parancsnak 1 paramétere van a < Tárgy Név >, ebbe a paraméterbe annak a tárgynak a nevét kell megadni amelyiket törölni szeretnénk, nemlétező tárgy esetén szintén hibaüzenetet kapunk.
Tárgy objekt változtatás :Lehetőségünk van arra, hogy a már létező tárgynak az objektjét megváltoztathassuk. Ezt a \"/tárgyobjekt\" paranccsal tudjuk végrehajtani. Ennek a parancsnak 2. paramétere van, az egyik < Tárgy Neve >, a másik az < Új objekt >.Ha nemlétező tárgy nevet adunk meg hibaüzenetet kapunk. Amikor megadod az új objektet, akkor a már régi objekttel rendelkező tárgyaknak NEM fog megváltzoni az objektjük, ezt egy szerver resettel lehet korigálni. Meglehet oldani, úgy is de szerintem igy elviselhető nem szeretném tovább bonyolítani.
Tárgy adás :Lehetőségünk van arra, hogy egy játékosnak tárgyat adjunk, ezt a \"/tárgyadás\" paranccsacl tudjuk megtenni. Ennek a parancsnak 3 paramétere van. < ID >, < Tárgy Név >, < Mennyiség>. Csak a szerveren fentlévő játékosoknak tudunk tárgyat adni. Csak létező tárgyat tudunk adni. A mennyiség nincs korlátozva.
Tárgy elvétel :A tárgy adáshoz hasonló algoritmus, a paraméterek is megegyeznek, ezt a \"/tárgyelvétel\" paranccsal érjük el. A különbség az az, hogy a mennyiség korlátozva van, csak annyi darabot tudunk elvenni az illetőtől amennyivel rendelkezik, értelemszerűen ha van 40 darabja nem vehetünk el tőle 40+-t.
Tárgyak megtekintése :A tárgyainkat a \"/táska\" paranccsal tudjuk megtekinteni. Amíg nem rendelkezel tárgyakkal, egy üres dialogot fogsz látni.
( Gondoltam, hogy kiirtaom, hogy nincsen tárgyad, de azért csak szebb esztétikailag, amikor látod is, hogy üres az a \"táska\"). Azonban, ha van valamilyen tárgyad az megjelenik ott.

Tárgyak lista :Megnézhetjük a létező tárgyakat is a \"/tárgylista\" paranccsal. Ez alapján tudjuk megszerezni azokat az információkat, amik szükségesek a parancsaink használatához. ( Itt tudjuk megnézni, hogy melyik tárgy létezik, illetve az objektje változott-e vagy nem ).
Segítség a játékban :Amennyiben szükségünk van segítségre, használhatjuk a \"/tárgyhelp\" parancsot, amely azonban segít nekünk, tájékoztat a tárgy rendszerben előforduló parancsokról.
Megyjezés :A leírás, lehet kicsit sablonosra sikeredett, de így tudtam kihangsúlyozni azokat az információkat amiket én fontosnak találok. A létrehozott tárgyaknak viselkedésünk, létrehozáskor NINCS, ez a módban kell nekünk megírni, a TargyHasznalat - plain-nél. A játékban csupán a tárgy nevét, és az objektjét tudjuk kezelni.
Információk A filterscript elkészülésében közremüködő személy(ek) :Kyosuke_Hiroshi, az ő segítségére számíthattam mindig illetve, segítőkészen válaszolt, hallgatta meg a panaszaimat.
És még közremüködtek a sampfórum lakói akik kisebb-nagyobb reakció idővel válaszoltak a kérdéseimre, közülök nem emelek ki senkit, ne hogy balhé legyen, hogy az adott személyt jobban kedvelem.
Az alap ötlet :Be kell vallanom, az alap ötletet nem én találtam ki, ezt a tárgy kezelés az adatbázisból, nem változókba \"töltögetés\". Az eredeti ötletet, az EverLifeRPG v2-es módjában láttam, és gondoltam hasonlóképpen megpróbálom elkészíteni. Nos hát úgyérzem, hogy van benne hasonlóság, de az ő általuk elkészített rendszernek teljesen más a felépítése, illetve a mechanikája, az enyém csak szintaktikailag hasonlít. Remélem ezért nem fognak megkövezni, a fejlesztői.
Letöltés :Filterscript :
LinkSQL fájl :
Link Végszó Köszönöm szépen, hogy megtekintetted a szkriptemet, remélem hasznossá vált a számodra, ha csak tanulás szempontjából akkor is. A szkript nem hibátlan illetve akadhatnak jobb megoldások is, illetve az esztétikai elrendezés számomra kedvezőképpen lett kialakítva.
1Mark6 - 2016.06.25
felraknád kérlek pastebinre is a kódot? nekem valamiért vírusost ír a linkre.. :D fasza lett.
felraknád kérlek pastebinre is a kódot? nekem valamiért vírusost ír a linkre.. :D fasza lett.
http://pastebin.com/cvMZfpgZ
buzi fasz aki mínuszt ad
Jó lett, mint mindig :D
Kifelejtettél pár dolgot :D
#define uj new
#define visszateres return
#define formazas format
#define merete sizeof
#define KuldjUzenetetAJatekosnak SendClientMessage
Ez alapján meg mehet hogy:
Uzenet(jatekosidje,uzenet[])
{
uj karakterlanc[256];
formazas(karakterlanc,merete(karakterlanc),\"\"SZ_NARANCS\"Információ : \"SZ_FEHER\"%s\",uzenet);
KuldjUzenetetAJatekosnak(jatekosidje,-1,karakterlanc);
visszateres 1;
}
:D Nekem így esett kézre a Plainek megalkotása, kicsit magyaros lett, de én nekem így könnyebb volt, + ha angolul írom, még azthiszik, hogy \"kopí\". :D
Köszi! Ez nagyon jó!
Nagyon jó! +
Széép :D
Mennyi időt szántál rá? Kíváncsiságból :angel:
Ügyes, mondtál én hogy menni fog. Fogsz még bővíteni rajta? Valamit? :)
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(48) : error 017: undefined symbol \"LOG_ALL\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(49) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(50) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(54) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(60) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(191) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(202) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(217) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(232) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(300) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(312) : error 017: undefined symbol \"cache_get_field_content\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(313) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(329) : error 017: undefined symbol \"cache_get_field_content\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(330) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(346) : error 017: undefined symbol \"cache_get_field_content\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(347) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(348) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(349) : error 017: undefined symbol \"cache_get_field_content_float\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(350) : error 017: undefined symbol \"cache_get_field_content_float\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(351) : error 017: undefined symbol \"cache_get_field_content_float\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(352) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(353) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(373) : error 017: undefined symbol \"cache_get_field_content_float\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(374) : error 017: undefined symbol \"cache_get_field_content_float\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(375) : error 017: undefined symbol \"cache_get_field_content_float\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(379) : error 017: undefined symbol \"cache_get_field_content\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(380) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(381) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(387) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(399) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(408) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(409) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(416) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(425) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(426) : error 017: undefined symbol \"cache_get_field_content_int\"
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(435) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(440) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(448) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(453) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(463) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(475) : warning 213: tag mismatch
D:\\samp\\filterscripts\\1Mark6Inventory.pwn(556) : warning 203: symbol is never used: \"NincsJog\"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
21 Errors.
Ezt a hiba üzenetet dobja ki.
Az a_mysql.inc be van iclude olva
HELP Most meg nem érzékeli az include fájlt (a_mysql.inc)
Kipróbáltam egy új filterszkriptbe : #include <a_mysql>
de ezt az errort kapom: (D:\\samp\\filterscripts\\1Mark6Inventory.pwn(6) : fatal error 100: cannot read from file: \"a_mysql\")
Széép :D
Mennyi időt szántál rá? Kíváncsiságból :angel:
[/quote]
Az alapja hamar megvolt kb. 2 nap, aztán jött a logikai része, azzal foglalkoztam még szintén 2 napot, illetve a tesztelésre/bufixre elment 1 napom, szóval 5 nap volt az egész, de nem 24 órába hanem csak amikor az időm engedte, nagyjából : 25 óra :D
Ügyes, mondtál én hogy menni fog. Fogsz még bővíteni rajta? Valamit? :)[/quote]
Már csak saját fejlesztésre bővítem, azzal viszont már több meló volt, pl. fegyvereket raktam bele, és azzal elment 3 napom :D Szóval annyi munkát raktam már a tovább fejlesztésbe nem akarom azt publikálni, de ebből bárki elindulhat érthetően van összerakva csak foglalkozni kell vele.
Ezt a hiba üzenetet dobja ki.
Az a_mysql.inc be van iclude olva
HELP Most meg nem érzékeli az include fájlt (a_mysql.inc)
Kipróbáltam egy új filterszkriptbe : #include <a_mysql>
de ezt az errort kapom: (D:\\samp\\filterscripts\\1Mark6Inventory.pwn(6) : fatal error 100: cannot read from file: \"a_mysql\")
[/quote]
A pawn mappád elérése, nem arra a mappára mutat, ahol a pawnonak az inc-ei vannak ezért nem tudja olvasni a a file-t.
Illetve az a_mysql.inc-ed lehet régi
Ha továbbra is fent áll a probléma irj ide.
OFF : Elnézést, hogy későn válaszoltam, csak nem volt időm a fórumon \"lógni\", nyári meló, offba játékmód írás, aztán ezt is fejleszgettem stb. :D
Nagyon szép lett, de dobtam egy PÜ-t, egy kisebb érdekességel kapcsolatban.