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/
 
 Diablo Mod Core.rar   6,91 MB  4207 Ilość pobrańUżytkownik DarkGL edytował ten post 09.06.2013 13:07


 
Dodatki SourceMod







				
				
				
				






