Diablo Mod Core 1.1.0 PL
DarkGL
07.12.2012
Diablo Mod Core 1.1.0 PL by DarkGL
Diablo Mod Core jest całkowicie nowym silnikiem Diablo Mod'a napisanym przezemnie jakiś czas temu ( dawno )
Dzięki zastosowaniu Forwardów i Natywów uzyskujemy łatwą możliwość rozbudowy moda bez zmian w głównym silnikiem
co przekłada się na możliwość łatwiejszej rozbudowy naszego serwera ( klas , itemów itp. )
Posiada on w sobie funkcje które nie są zaimplementowane w oryginalnej wersji diablomoda a które po prostu muszą być na serwerze DiabloMod
Co możemy znaleźć w silniku
Takie komendy jak
Opisy klas
http://amxx.pl/topic...549-opisy-klas/
Jak napisałem wcześniej siłą tego moda jest możliwość konfiguracji więc teraz zajmiemy się tym
Najpierw konfiguracja w sma
HUD_TEXT
w którym ustawiamy czy jakiś tekst ma się wyświetlić nad hudem z informacjami gracza ( klasa etc. )
możemy tu dodać np. "Forum Serwera www.xyz.pl"
SQL_TABLE
Nazwa tabeli w sql
MAX
Ilość slotów dzięki tej opcji oszczędzimy pamięć serwerowi a i mod będzie działał lepiej
MAX_LEVEL
Maksymalny level
MAX_SKILL
Maksymalny poziom skilli ( umiejętności zręczność etc. )
ADMIN_FLAG_GIVE
Flaga którą musi mieć admin aby używać komend na dawanie Expa i Itemów
zakomentuwujemy jeśli nie mamy botów na serwerze
usuwamy komentarz jeśli mamy ( komentarz czyli // )
#define DEBUG
Tryb debug dostajemy więcej informacji co aktualnie robi mod używane raczej tylko jeśli coś nie działa
jeśli wszystko jest ok lepiej to zakomentować
Możemy znaleźć jeszcze coś takiego
Cvary
Komendy admina
Jeżeli ktoś jest zainteresowany tworzeniem nowych itemów , klas lub dodatków radzę zapoznać się z dostepnymi sma i plikiem diablo_nowe.inc gdzie znajdziecie opis natywów i forwardów.
Natywy
Instalacja odbywa się poprzez wrzucenie plików z paczki na serwer
Jeżeli doceniasz ilość pracy włożoną w ten mod nie usuwaj drobnej informacji o autorze wyświetlanej graczowi , dla osób które chcą to ukryć podpowiadam linijka 4719
Zapraszam też na DarkGL Blog | Programowanie Python , Pawn , C++ i Webdeveloping oraz Kanał użytkownika GitzZz14 - YouTube ewentualnie DarkGL3 - YouTube
Tutoriale
Edited by DarkGL, 09.06.2013 13:07.
Diablo Mod Core jest całkowicie nowym silnikiem Diablo Mod'a napisanym przezemnie jakiś czas temu ( dawno )
Dzięki zastosowaniu Forwardów i Natywów uzyskujemy łatwą możliwość rozbudowy moda bez zmian w głównym silnikiem
co przekłada się na możliwość łatwiejszej rozbudowy naszego serwera ( klas , itemów itp. )
Posiada on w sobie funkcje które nie są zaimplementowane w oryginalnej wersji diablomoda a które po prostu muszą być na serwerze DiabloMod
Co możemy znaleźć w silniku
- Klasy i itemy to odzielne pluginy
- System zarządzania renderem gracza
- Nowy system zapisu sql
- Dynamiczny zapis sql ( klasy mogą być dowolnie dodawane i usuwane )
- Wbudowane anty kopiowanie leveli
- Możliwość zapisu na steamid , nick , mieszane ( steamid dla steam i nick dla ns )
- Prefixy w say
- Większe możliwości konfiguracji
- Poprawiony kod kuszy , granatów na ziemi i rzucanych nozy
- Zestaw natywów i forwardów do rozbudowy moda
- Wbudowany anty 0 HP Bug
- Lista itemów
- Kod jest znacznie lepszy od wersji diablo Micza
- Dodatkowe opcje w menu rozdawania punktów
- Informacje o awansie gracza w say
- Poprawiony wygląd motd
- Nowy system itemów
- Wbudowana nowa wymiana itemami
- Komendy na dawanie itemów i expa
- Menu moda
- Szybkie rozdawanie statystyk
- Obsługa botów
- Komenda /exp
- Dwie nowe statystyki Pancerz i Szczescie
- Event Diablo
- System frakcji
- Komendy /daj i /oddaj
- Ustawianie nazwy gry
- Zabezpieczenie przeciwko nabijaniu expa ( wymagana ilość graczy na serwerze ustawiane cvarem )
- Krótkie komendy
- Damage jest teraz modyfikowane w lepszy sposób niż poprzez event Damage
- Wytrzymałość itemu
- Event Diablo jest to tryb w którym wybierany jest jeden gracz i staje się on "Diablo" reszta graczy musi go zabić jeśli to się uda otrzymają oni dodatkowy exp. Oczywiście Diablo ma ułatwienia tzn. dużą ilość hp , fireballe , ma on też inny model
- I jeszcze kilka innych rzeczy
Takie komendy jak
- /czary
- /skille
- /exp
- /menu
- /wymiana
- /wymien
- /item
- /przedmiot
- /klasy
- /klasa
- /reset
- /drop
- /rune
- /daj
- /komendy
- /event
- /k
- /r
- /d
- /p
- /i
- /g
- /ru
- /w
- /p
- /h
- /ko
- /m
Opisy klas
http://amxx.pl/topic...549-opisy-klas/
Jak napisałem wcześniej siłą tego moda jest możliwość konfiguracji więc teraz zajmiemy się tym
Najpierw konfiguracja w sma
#define HUD_TEXT "" #define SQL_TABLE "diablo_nowe_klasy" #define MAX_LEN_NAME 128 #define MAX_LEN_DESC 256 #define MAX_LEN_NAME_PLAYER 64 #define MAX_LEN_FRACTION 128 #define MAX 32 #define MAX_LEVEL 200 #define MAX_SKILL 100 #define BASE_SPEED 250.0 #define TASK_DEATH 100 #define TASK_RENDER 200 #define THROW_KNIFE_MODEL "models/diablomod/w_throwingknife.mdl" #define THROW_KNIFE_CLASS "throwing_knife" #define CLASS_NAME_CORSPE "fakeCorpse" #define XBOW_ARROW "xbow_arrow" #define TIME_HUD 1.0 #define GAME_DESCRIPTION "Diablo Mod" #define ADMIN_FLAG_GIVE ADMIN_IMMUNITY #define HELP_TASK_ID 91321 #define DIABLO_EVENT_SOUND "sound/diablo_taunt.mp3"jest tego trochę ale najważniejsze dla nas to
HUD_TEXT
w którym ustawiamy czy jakiś tekst ma się wyświetlić nad hudem z informacjami gracza ( klasa etc. )
możemy tu dodać np. "Forum Serwera www.xyz.pl"
SQL_TABLE
Nazwa tabeli w sql
MAX
Ilość slotów dzięki tej opcji oszczędzimy pamięć serwerowi a i mod będzie działał lepiej
MAX_LEVEL
Maksymalny level
MAX_SKILL
Maksymalny poziom skilli ( umiejętności zręczność etc. )
ADMIN_FLAG_GIVE
Flaga którą musi mieć admin aby używać komend na dawanie Expa i Itemów
#define BOTY //#define DEBUG #define DEBUG_LOG "addons/amxmodx/logs/debug.log"#define BOTY
zakomentuwujemy jeśli nie mamy botów na serwerze
usuwamy komentarz jeśli mamy ( komentarz czyli // )
#define DEBUG
Tryb debug dostajemy więcej informacji co aktualnie robi mod używane raczej tylko jeśli coś nie działa
jeśli wszystko jest ok lepiej to zakomentować
Możemy znaleźć jeszcze coś takiego
#define PREFIX_SAY "^x04[ DiabloMOD ]^x01"jest to prefix jaki mają wiadomości wysyłane przez mod
Cvary
//sql diablo_host host diablo_user user diablo_pass pass diablo_db db //typ zapisu 1 - nick 2 - steam id 3 - steamid lub nick zalezy czy gracz ma steam czy nie diablo_save_type 3 //sredni level dla nowego gracza diablo_avg 1 //ustawienia maga flashlight_custom 1 flashlight_drain 1.0 flashlight_charge 0.5 flashlight_radius 8 flashlight_decay 90 //minimalna ilosc graczy aby dostawac exp diablo_player_num 2 //ilosc dmg aby dostac 1 exp'a diablo_dmg_exp 20 //xpbonus diablo_xpbonus 5 /xpbonus2 diablo_xpbonus2 100 //ustawienia nekromanty czas odradzania diablo_revival_time 3 //hp po ozywieniu ( + inteligencja wskrzeszajacego ) diablo_revival_health 25 //minimalny dystans od zwlok diablo_revival_distance 70.0 //szybkosc rzuconego noza diablo_knife_speed 1000 //dmg zadawane przez rzucony noz diablo_knife 80.0 //dmg strzaly z kuszy diablo_arrow 120.0 //mnoznik dla inteligencji przy obliczaniu dmg diablo_arrow_multi 2.0 //szybkosc strzaly z kuszy diablo_arrow_speed 1500 //ilosc wytrzymalosci itemu zabieranej przy zginieciu diablo_durability 10 //koszt expa w rune diablo_exp_price 14500 //koszt losowego przedmiotu w rune diablo_random_price 9000 //koszt ulepszenia w rune diablo_upgrade_price 5000 //koszt w /daj diablo_price_daj 5000 //event on/off diablo_event 1 //ilosc wymaganych dropow diablo_drop_need 100 //hp diablo ( mnozone przez ilosc graczy ) diablo_diablo_hp 1000 //ilosc xp rozdzielane na tych ktozy zabija diablo diablo_event_exp 10000 //kamera przy diablo 1 - widok zza plecow diablo_camera 1 //ilosc punktow do rozdania za lvl diablo_points 2 //ile hp za jeden punkt sily diablo_strength_power 2 //ile reduckji za jeden punkt zrecznosci diablo_reduce_power 0.03 //Miejsce wyświetlania informacji o klasie itemie etc. 0 - standardowy lewy dolny róg 1 - informacja hud ( podobnie jak w cod mod ) diablo_hud_mode 1Cvary ustawiamy w pliku diablomod.cfg
Komendy admina
- amx_giveexp - daje exp graczowi Użycie amx_giveexp <nick> <ile>
- amx_giveitem - daje item graczowi Użycie amx_giveitem <nick> <iditemu>
- diablomod_version - zwraca używana wersję diablomoda
- /klasy - otwiera listę klas
- /klasa - otwiera menu klas do wyboru
- /reset - resetuje rozdane punkty umiejętności
- /drop - wyrzuca aktualnie posiadany przedmiot
- /item - opis aktualnie posiadanego przedmiotu
- /przedmiot - takie samo działanie jak /item
- /gracze - lista graczy wraz z ich levelami i klasami
- /czary - twoje statystyki
- /skille - tak jak /czary
- /rune - menu gdzie można kupić różne rzeczy
- /wymiana - wymiana itemami
- /wymien - tak jak /wymiana
- /daj - oddaj item za kasę
- /pomoc - krotka notatka o modzie
- /komendy - ta lista
- /exp - informacje o stanie twojego expa
- /menu - menu moda
- diablomod_version - wersja diablomoda używana na serwerze
Jeżeli ktoś jest zainteresowany tworzeniem nowych itemów , klas lub dodatków radzę zapoznać się z dostepnymi sma i plikiem diablo_nowe.inc gdzie znajdziecie opis natywów i forwardów.
Natywy
- rejestruje klase
diablo_register_class(const szNazwa[],const iHealth,const szOpis[] = "" , iFlags = FLAG_ALL , const szFraction[] = ""); - zwraca klase gracza
diablo_get_user_class(id); - nazwe klasy pobiera
diablo_get_class_name(classID , Return[] , len); - zwraca level
diablo_get_user_level(id); - zwraca exp
diablo_get_user_exp(id); - zwraca points
diablo_get_user_points(id); - zwraca punkty agi
diablo_get_user_agi(id); - zwraca punkty str
diablo_get_user_str(id); - zwraca punkty dex
diablo_get_user_dex(id); - zwraca punkty int
diablo_get_user_int(id); - czy klasa gracza to klasa z tego pluginu
diablo_is_class_from(id); - ustawia rendering graczowi
diablo_set_user_render(id, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16 , Float:fTime = 0.0 ) - diablo_add_extra_str( id , iIle );
- diablo_add_extra_int( id , iIle );
- diablo_add_extra_agi( id , iIle );
- diablo_add_extra_dex( id , iIle );
- czy ma taka klase
diablo_is_this_class(id,szClass[]); - dodawanie speed graczowi
diablo_set_speed(id,Float:fAmount); - ustawianie speed
diablo_add_speed(id,Float:fAmount); - pobranie speed
Float:diablo_get_speed(id) - pobranie dodatkowe speed
Float:diablo_get_speed_extra(id); - diablo_reset_speed( id );
- zadanie dmg
diablo_damage(iVictim,iKiller,Float:fDamage,DiabloDamageBits:damageBits); - zabij
diablo_kill(iVictim,iKiller,DiabloDamageBits:damageBits); - zadanie dmg w zasiegu
diablo_create_explode(iKiller,Float:fOrigin[3],Float:fDamage,Float:fDist,bool:bExplode); - dodaje hp
diablo_add_hp(id,iHp); - czy jest freezetime
diablo_is_freezetime(); - uruchom write hud
diablo_write_hud_(id); - diablo_get_xpbonus();
- diablo_get_xpbonus2();
- daje xp
diablo_add_xp(id,ile); - zabiera xp
diablo_take_xp(id,ile); - dodaje noze
diablo_add_knife(id,iIle); - diablo_set_user_grav(id,Float:fGrav);
- diablo_add_user_grav(id,Float:fGrav);
- Float:diablo_get_user_grav(id)
- diablo_reset_grav( id );
- diablo_give_user_trap(id,bool:give = true);
- diablo_give_user_bow(id,bool:give = true);
- diablo_show_hudmsg( id , Float:fTime , const szMessage[] , any:... );
- diablo_render_cancel( id );
- diablo_display_icon( id , enable , szNameIcon[] , red , green , blue );
- diablo_display_fade( id,duration,holdtime,fadetype,red,green,blue,alpha );
- diablo_give_xp( id , ile );
- diablo_add_max_hp( id , ile );
- diablo_register_item( Name[] , durability = 250 );
- diablo_screen_shake( id , amplitude , duration , frequency );
- diablo_set_max_hp( id , ile );
- diablo_get_max_hp( id );
- gdy klasa zostanie wybrana
diablo_class_enabled(id); - gdy klasa zostanie zmieniona
diablo_class_disabled(id); - przy zmianie broni
diablo_weapon_deploy(id,wpnID,weaponEnt); - czyszczenie wewnetrznych zmiennych klasy
diablo_clean_data(id); - ustawianie wewnetrznych zmiennych klasy
diablo_set_data(id); - prethink gracza
diablo_preThink(id); - diablo_preThinkItem(id);
- posthink gracza
diablo_postThink(id); - podczas zmiany renderu wysylany do wszystkich pluginów
diablo_render_change(id); - zwracasz czas call cast 0.0 powoduje zatrzymanie
Float:diablo_cast_time(id,Float:standardTime ); - call cast wykonany niech plugin dziala
diablo_call_cast(id); - ustawiania speed
diablo_speed_change(id); - przy spaawnie klasy
diablo_class_spawned(id); - przy zabiciu klasy
diablo_class_killed(id); - przy exp killu zwracaj 0 jak nic nie robisz
diablo_kill_xp(id,iIle); - przy exp damage 0 jak nic nie robisz
diablo_exp_damage(id,iIle); - przy uzyciu skillu klasy
diablo_class_skill_used(id); - when cast stop can return diablo_stop
diablo_cast_stop(id); - can move when cast
diablo_cast_move(id); - write hud
diablo_hud_write(id,szMessage[],iLen); - damage
diablo_damage_taken_post(iKiller,iVictim,iDamage); - diablo_damage_taken_pre(iKiller , iVictim , &Float:fDamage );
- zmiana damage klasy dostaje
diablo_damage_class_taken(iVictim,iAttacker,&Float:fDamage,damageBits); - zmiana damage klasy zadaje
diablo_damage_class_do(iVictim,iAttacker,&Float:fDamage,damageBits); - gracz zespawnowany
diablo_player_spawned(id); - diablo_user_change_class( id , class )
- diablo_death(iKiller , killerClass , iVictim , victimClass );
- diablo_item_give( id , szRet[] , iLen );
- diablo_item_reset( id );
- diablo_item_drop( id );
- diablo_item_info( id , szMessage[] , iLen , bool:bList );
- diablo_upgrade_item( id );
- diablo_item_set_data( id );
- diablo_damage_item_taken(iVictim,iAttacker,&Float:fDamage,damageBits);
- diablo_damage_item_do(iVictim,iAttacker,&Float:fDamage,damageBits);
- diablo_item_skill_used( id );
- diablo_item_player_spawned( id );
- gravity zmieniona
diablo_grav_change(id); - diablo_new_round();
- wymiana itemami
diablo_copy_item( iFrom , iTo );
- Diablo Questy
- Exp od godzinny
Instalacja odbywa się poprzez wrzucenie plików z paczki na serwer
Jeżeli doceniasz ilość pracy włożoną w ten mod nie usuwaj drobnej informacji o autorze wyświetlanej graczowi , dla osób które chcą to ukryć podpowiadam linijka 4719
Zapraszam też na DarkGL Blog | Programowanie Python , Pawn , C++ i Webdeveloping oraz Kanał użytkownika GitzZz14 - YouTube ewentualnie DarkGL3 - YouTube
Tutoriale
- http://amxx.pl/topic...core-by-darkgl/
- http://amxx.pl/topic...-core-by-darkgl
- http://amxx.pl/topic...core-by-darkgl/
Edited by DarkGL, 09.06.2013 13:07.
Droso
07.12.2012
Największy plus oddzielne klasy i itemy. Instalujcie póki jeszcze jest to nieznane
TakiJedenPan
07.12.2012
Kawał dobrej roboty, jakiś serwer testowy muszę znaleźć i się pobawić.
sebul
07.12.2012
"Poprawiony kod kuszy , granatów na ziemi i rzucanych nozy"
Spojrzałem na prędkości w kod i nie zauważyłem, żeby był poprawiony ^ ^
Spojrzałem na prędkości w kod i nie zauważyłem, żeby był poprawiony ^ ^
DarkGL
07.12.2012
To była najpóźniej pisana część nie miałem już motywacji żeby wymyslec to lepiej więc dostosowalem stary kod i wprowadzilem kilka zmian
nPaul
08.12.2012
Oho widzę że poszalałeś na to czekałem od długiiich miesięcy to teraz czekać na generator Klas skoro osobny amxx dla klasy wielki ++
nPaul
08.12.2012
Pytanie : Gdzie można zmienić HUD tak aby był w formacie i miejscu takim jakie masz na Screenie ? Dolny róg .
Pytanie : Gdzie zmienić opisy klas i dodać do tych nie opisanych.
-----------
Piszę tutaj bo nie ma sensu zakładać nowego tematu
Edited by Paulstudio, 08.12.2012 18:24.
Pytanie : Gdzie zmienić opisy klas i dodać do tych nie opisanych.
-----------
Piszę tutaj bo nie ma sensu zakładać nowego tematu
Edited by Paulstudio, 08.12.2012 18:24.
Onyke
08.12.2012
Opis klasy dodajesz w jej pliku .sma (tam gdzie ją rejestrujesz)Pytanie : Gdzie można zmienić HUD tak aby był w formacie i miejscu takim jakie masz na Screenie ? Dolny róg .
Pytanie : Gdzie zmienić opisy klas i dodać do tych nie opisanych.
-----------
Piszę tutaj bo nie ma sensu zakładać nowego tematu
//rejestruje klase
native diablo_register_class(const szNazwa[],const iHealth,const szOpis[] = "" , iFlags = FLAG_ALL , const szFraction[] = ""); //grawitacja , predkosc , przezroczystosc
DarkGL
08.12.2012
Gdzie można zmienić HUD tak aby był w formacie i miejscu takim jakie masz na Screenie ? Dolny róg .// cvar diablo_hud_mode zapomniałem o nim już dopisałem do listy
nPaul
08.12.2012
z tego co zauwazylem kajta diablo sie na tym opiera. Dark mozesz na kanał YT dac taki mini tutorial do tworzenia klas w tym bo calkiem inaczej niż normalnie jest
DarkGL
08.12.2012
Pomyślę nad tym na razie zachęcam do przeglądania sobie dołączonych sma natywów i forwardów nie tworzyłem od tak każdy z nich jest wykorzystywany
Jak się nazwać
09.12.2012
Bardzo funkcjonalne, jedyne co można zrzucić to że paczka troszeczkę chaotycznie złożona (ale co się dziwić trochę tego jest), i brakuje opisów niestandardowych klas
Fili:P
09.12.2012
Z tego co gadałem z darkiem, to każdej klasy były 3-4 wersje, więc jest możliwość iż po prostu pomylił plikiBardzo funkcjonalne, jedyne co można zrzucić to że paczka troszeczkę chaotycznie złożona (ale co się dziwić trochę tego jest), i brakuje opisów niestandardowych klas