Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Hleb
Rejestracja: 17.12.2010Aktualnie: Nieaktywny
Poza forum Ostatnio: 23.02.2017 11:14
Statystyki
- Grupa: Użytkownik
- Całość postów: 405
- Odwiedzin: 13 800
- Tytuł: FC Barcelona <3
- Wiek: 33 lat
- Urodziny: Kwiecień 23, 1991
-
Imię
Damian
-
Płeć
Mężczyzna
-
Lokalizacja
Sochaczew
#525624 T-Rex w Counter-Strike 1.6
Napisane przez DarkGL w 17.03.2013 18:56
nagrane ponieważ wielu twierdziło że to fake
#353151 Szybkość reloadu
Napisane przez DarkGL w 24.01.2012 04:47
Tutaj ustawiamy mnożnik dla szybkości reloadu ( im mniejszy tym szybciej )
#define RELOAD_RATIO 0.5
#include <amxmodx> #include <fakemeta> #include <hamsandwich> #define PLUGIN "Reload Speed" #define AUTHOR "ConnorMcLeod" #define VERSION "0.2.0" #define RELOAD_RATIO 0.5 const NOCLIP_WPN_BS = ((1<<2)|(1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4)) const SHOTGUNS_BS = ((1<<CSW_M3)|(1<<CSW_XM1014)) // weapons offsets const m_pPlayer = 41 const m_iId = 43 const m_flTimeWeaponIdle = 48 const m_fInReload = 54 const m_flNextAttack = 83 stock const Float:g_fDelay[CSW_P90+1] = { 0.00, 2.70, 0.00, 2.00, 0.00, 0.55, 0.00, 3.15, 3.30, 0.00, 4.50, 2.70, 3.50, 3.35, 2.45, 3.30, 2.70, 2.20, 2.50, 2.63, 4.70, 0.55, 3.05, 2.12, 3.50, 0.00, 2.20, 3.00, 2.45, 0.00, 3.40 } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) new szWeapon[17] for(new i=1; i<=CSW_P90; i++) { if( !(NOCLIP_WPN_BS & (1<<i)) && get_weaponname(i, szWeapon, charsmax(szWeapon)) ) { if( !(SHOTGUNS_BS & (1<<i)) ) { RegisterHam(Ham_Weapon_Reload, szWeapon, "Weapon_Reload_Post", 1) } } } } public Weapon_Reload_Post(iEnt) { if( get_pdata_int(iEnt, m_fInReload, 4) ) { new id = get_pdata_cbase(iEnt, m_pPlayer, 4) new Float:fDelay = g_fDelay[get_pdata_int(iEnt, m_iId, 4)] * RELOAD_RATIO set_pdata_float(id, m_flNextAttack, fDelay, 5) set_pdata_float(iEnt, m_flTimeWeaponIdle, fDelay + 0.5, 4) } }
#487930 Diablo Mod Core 1.1.0 PL
Napisane przez DarkGL w 07.12.2012 20:22
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/
#537002 0 HP Bug New
Napisane przez DarkGL w 24.04.2013 12:39
0 HP Bug
Naprawia bugi które ukazują się gdy gracz ma więcej hp niż 255 (zmiana sterowania itp.)
W przeciwieństwie do poprzednika działa na wszystkich modach i ze wszystkimi pluginami.
http://darkgl.amxx.p...4/0-hp-bug-new/
Wymagania:
Instalacja:
- Wrzucasz i działa żadnych cvarow dopisujesz tylko do plugns.ini
- Folder configs wrzucamy do folderu configs amxxa
Testowane na najnowszej wersji steam ( binarki 5999 ) + orpheu v2.5.1
0_hp_bug_new.sma 1,67 KB 979 Ilość pobrań
0_hp_bug_new.amxx
configs.rar 719 bajtów 1108 Ilość pobrań
#381801 Boty nie widzą niewidzialnych
Napisane przez DarkGL w 16.03.2012 20:05
Standardowo boty strzelały nawet do osób wpełni niewidzialnych ten plugin to zmienia.
Gdy jesteśmy niewidzialni bot może nas po prostu nie zauważyć.Testowane na podbotach.
Nie ma
http://www.youtube.com/watch?v=vUc5V0J-tU8
Boty nie widzą niewidzialnych | DarkGL Blog
Nowe : botDontShotInv.sma 1,79 KB 1175 Ilość pobrań
botDontShotInv.amxx
Stare: botDontShotInv.sma 789 bajtów 477 Ilość pobrań
botDontShotInv.amxx
#548548 Foreach i Forrange implementacja pętli ułatwiających życie
Napisane przez DarkGL w 09.06.2013 02:38
Często podczas prac nad pluginem w kodzie muszę „przeliterować” po elementach tablicy czy wszystkich graczach. Pisanie rozbudowanej pętli for jest meczące i nużące więc pomyślałem że foreach znane z php było by znacznym ułatwieniem.
http://php.net/manua...res.foreach.php
Najpierw opis samych funkcji ( które są tak naprawdę makrodefinicjami )
- foreach – „przeliterowuje” po całej tablicy i przypisuje wartość aktulnie używanego elementu do zdefiniowanej zmiennej
dwa parametry- 1 – tablica po której ma literować
- 2 – nazwa zmiennej do której będzie zapisywany aktualny element
- forrange2 – wylicza kolejne wartości liczbowe i przypisuje je do zmiennej. Inspirowalem się funkcją range w php i python
dwa parametry ( liczba po nazwie określa ilość parametrów )- 1 – nazwa zmiennej do które będzie zapisywana aktualna wartość
- 2 – górny indeks do którego nastąpi odliczanie, odliczanie startuje od 0 do właśnie tego parametru – 1 z krokiem inkrementacyjnym równym 1 np. 0 , 1 , 2 , 3
- forrange3 – to samo co funkcja wyżej
Trzy parametry- 1 – nazwa zmiennej
- 2 – dolny indeks od którego zacznie się odliczanie
- 3 – górny indeks tak jak parametr 2 w funkcji forrange2
Przykład dla dolnego indeksu równego 3. 3 , 4 , 5 , 6
- forrange4 – To samo co funkcje wyżej
Cztery parametry- 1- nazwa zmiennej
- 2- dolny indeks tak jak w forrange3
- 3 – górny indeks tak jak w forrange3
- 4- krok inkrementacji np. możemy ustawić go na 10 więc liczby bedą się zwiększac o 10 co każdy krok
Przykład 0 , 10 , 20 , 30 , 40 , 50
#define foreach(%1,%2) for( new iCurrentElement = 0 , %2 = %1[ 0 ]; iCurrentElement < sizeof %1 ; iCurrentElement++ , %2 = iCurrentElement < sizeof %1 ? %1[ iCurrentElement ] : 0 ) #define forrange4(%1,%2,%3,%4) for( new %1 = %2; %1 < %3 ; %1 += %4 ) #define forrange3(%1,%2,%3) for( new %1 = %2; %1 < %3 ; %1 += 1 ) #define forrange2(%1,%2) for( new %1 = 0; %1 < %2 ; %1 += 1 )
Przykład użycia
#include <amxmodx> #include <amxmisc> #define PLUGIN "New Plugin" #define AUTHOR "DarkGL" #define VERSION "1.0" #define foreach(%1,%2) for( new iCurrentElement = 0 , %2 = %1[ 0 ]; iCurrentElement < sizeof %1 ; iCurrentElement++ , %2 = iCurrentElement < sizeof %1 ? %1[ iCurrentElement ] : 0 ) #define forrange4(%1,%2,%3,%4) for( new %1 = %2; %1 < %3 ; %1 += %4 ) #define forrange3(%1,%2,%3) for( new %1 = %2; %1 < %3 ; %1 += 1 ) #define forrange2(%1,%2) for( new %1 = 0; %1 < %2 ; %1 += 1 ) public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) new testArray[] = { 1 , 2 , 3 , 4 }; foreach( testArray , value ){ log_amx( "each %d" , value ); } log_amx( "Range 1" ); forrange2( value , 5 ){ log_amx( "range1 %d" , value ); } log_amx( "Range 2" ); forrange3( value , 1 , 5 ){ log_amx( "range2 %d" , value ); } log_amx( "Range 3" ); forrange4( value , 0 , 100 , 10 ){ log_amx( "range3 %d" , value ); } }
Zwracane wartości
[testFor.amxx] each 1 [testFor.amxx] each 2 [testFor.amxx] each 3 [testFor.amxx] each 4 [testFor.amxx] Range 1 [testFor.amxx] range1 0 [testFor.amxx] range1 1 [testFor.amxx] range1 2 [testFor.amxx] range1 3 [testFor.amxx] range1 4 [testFor.amxx] Range 2 [testFor.amxx] range2 1 [testFor.amxx] range2 2 [testFor.amxx] range2 3 [testFor.amxx] range2 4 [testFor.amxx] Range 3 [testFor.amxx] range3 0 [testFor.amxx] range3 10 [testFor.amxx] range3 20 [testFor.amxx] range3 30 [testFor.amxx] range3 40 [testFor.amxx] range3 50 [testFor.amxx] range3 60 [testFor.amxx] range3 70 [testFor.amxx] range3 80 [testFor.amxx] range3 90
Jak widać funkcje znacznie ułatwiają przeglądanie tablic po za tym kod wygląda lepiej.
na wstępie mówiłem o
jak widać najlepiej zastosowac tu funkcje forrange3po elementach tablicy czy wszystkich graczach
forrange( currentPlayerID , 1 , 33 )( zamiast stałej 33 można też wstawić pobieranie ilości slotów )
#475259 [TuT] Jak naprawić perk Nano Kamizelka.
Napisane przez Pan PrO w 04.11.2012 19:53
1. Pod
new bool:freezetime = true;dodajemy
new odpornosc_gracza[33];
2. w plugin_natives() na samym dole dodajemy
register_native("cod_get_user_odpornosc", "SprawdzOdpornosc", 1);
register_native("cod_set_user_odpornosc", "UstawOdpornosc", 1);
3. W UsunUmiejetnosci(id) na samym dole dodajemy
odpornosc_gracza[id] = 0;
4. Ten public znajdujący sie prawie na samym dole
public ZadajObrazenia(atakujacy, ofiara, Float:obrazenia, Float:czynnik_inteligencji, byt_uszkadzajacy, dodatkowe_flagi)
ExecuteHam(Ham_TakeDamage, ofiara, byt_uszkadzajacy, atakujacy, obrazenia+PobierzInteligencje(atakujacy, 1, 1, 1)*czynnik_inteligencji, /*1<<31 |*/ dodatkowe_flagi);
Zmieniamy na to
public ZadajObrazenia(atakujacy, ofiara, Float:obrazenia, Float:czynnik_inteligencji, byt_uszkadzajacy, dodatkowe_flagi)
{
if(!odpornosc_gracza[ofiara])
ExecuteHam(Ham_TakeDamage, ofiara, byt_uszkadzajacy, atakujacy, obrazenia+PobierzInteligencje(atakujacy, 1, 1, 1)*czynnik_inteligencji, /*1<<31 |*/ dodatkowe_flagi);
}
5. Na samym końcu .sma dodajemy to
public UstawOdpornosc(id, wartosc)
odpornosc_gracza[id] = wartosc;
public SprawdzOdpornosc(id)
return odpornosc_gracza[id];
Sposób użycia
W cod_perk_enabled lub cod_class_enabled dodajemy
cod_set_user_odpornosc(id, 1);
a w cod_perk_disabled lub cod_calss_disabled
cod_set_user_odpornosc(id, 0);
Naprawiona Nano Kamizelka
codperk_nanokamizelka.sma 746 bajtów 392 Ilość pobrań
codperk_nanokamizelka.amxx
Zakaz kopiowania na inne forum. Poradnik wykonany dla amxx.pl
#414061 Deathrun Rangi [AMXX + SQL + WWW]
Napisane przez Gość w 24.05.2012 22:38
Plugin Deathrun Rangi liczy skoki wykonane Bunny Hopem na serwerze.
Przekraczając kolejne progi wykonanych skoków, zdobywamy kolejne rangi.
Skacząc, w czasie rzeczywistym widzimy, ile mamy wykonanych skoków i jaką rangę.
Menu. Konfiguracja
W przystępnym Menu możemy zobaczyć statystyki oraz wymagania do rang.
Ponadto, dostępna jest konfiguracja opcji wyświetlania i powiadomień.
[warn='Zalecenie']Plugin idealny na serwery Deathrun, choć nadaje się do każdej rozgrywki[/warn]Statystyki. Online
Wszystkie statystyki, w tym top10, możemy obejrzeć zarówno w grze,
jak i online na serwerze WWW, wyszukując, sortując i filtrując wyniki.
[info='Pełna integracja']Plugin posiada 2 natywy oraz 2 forwardy (opisane niżej),
pozwalając na sukcesywną współpracę z innymi pluginami.[/info]Dodatki
Do pluginu udostępnione są 2 dodatki, wykorzystujące forwardy:
- Muzyka wyświetlana w momencie zdobycia nowej rangi (muzyka załączona poniżej)
- Informacja dla najlepszego gracza w rankingu (pluginy załączone są poniżej)
amxmodx
fakemeta
engine
sqlx
Baza danych SQL
Serwer z obsługą PHP*
*opcjonalnie dla statystyk online
// CVARy ogólne
amx_dr_rangi_speed 290 // minimalna prędkość wykonywanych skoków Bunny Hopem liczonych do rankingu
amx_dr_rangi_team 2 // drużyna, której Bunny Hop jest liczony (0 - wszyskie, 1 - tylko Terro, 2 - tylko CT, 3 - żadna)
amx_dr_rangi_show_best 1 // [0|1] czy pokazywać (1) najlepszego skoczka na serwerze, czy nie (0)
amx_dr_rangi_prefiks "[Deathrun_Rangi]" // prefiks pokazywany w informacjach na sayu
// CVARy jako dane do bazy danych, w której przechowujemy statystyki
amx_dr_rangi_host "localhost" // adres do bazy danych
amx_dr_rangi_user "root" // użytkownik bazy danych
amx_dr_rangi_pass "root" // hasło do bazy danych
amx_dr_rangi_db "db" // nazwa bazy danych
[error='Ostrzeżenie']W przypadku problemów z konfiguracją lub pytaniem
dotyczącym implementacji natywów bądź forwardów, załóż nowy temat.
Nie dość, że zachowasz przejrzystość w tym dziale, to prosząc o pomoc
w odpowiednim dziale, uzyskasz ją dużo szybciej i unikniesz ostrzeżenia.[/error]
/rangi - pokazuje Menu Deathrun Rang, w którym można:
- sprawdzić najlepszych skoczków na serwerze
- sprawdzić swój własny ranking
- opis rang i ich wymagania
- ustawić miejsce wyświetlania informacji o skokach
- ustawić, czy ranga ma się pokazywać przy ilości skoków
dr_rangi_new_lvl(id) // Wbicie nowej rangi
dr_rangi_best_player(id) // Index gracz który ma najwięcej skoków ( warunek musi być on połączony ). Wywołanie co rundę.
Natywy:
get_user_jumps(id) // Zwraca ilość skoków gracza
get_user_rang(id) // Zwraca rangę gracza
Plugin podstawowy Deathrun Rangi (wymagane):
- Rangi_Deathrun.amxx kopiujemy do amxmodx/plugins (wymagane, podstawowe)
- do amxmodx/plugins.ini dodajemy Rangi_Deathrun.amxx (wymagane, podstawowe)
- do amxmodx/amxx.cfg dodajemy wyżej opisane cvary (ustawione wg własnych upodobań, wymagane, podstawowe)
- lvl_up.mp3 kopiujemy do sound/misc (opcjonalnie, odgrywa muzyczkę przy awansie do nowej rangi)
- Muzyka_na_wbicie_nowej_rangi.amxx kopiujemy do amxmodx/plugins (opcjonalnie, odgrywa muzyczkę przy awansie do nowej rangi)
- do amxmodx/plugins.ini dodajemy Muzyka_na_wbicie_nowej_rangi.amxx (opcjonalnie, odgrywa muzyczkę przy awansie do nowej rangi)
- Best_Player.amxx kopiujemy do amxmodx/plugins (opcjonalnie, wyświetla informację o najlepszym graczu)
- do amxmodx/plugins.ini dodajemy Best_Player.amxx (opcjonalnie, wyświetla informację o najlepszym graczu)
- Rangi_Deathrun.sma kopiujemy do amxmodx/scripting (opcjonalnie)
- db.inl kopiujemy do amxmodx/scripting (opcjonalnie)
- Deathrun_Rangi.inc kopiujemy do amxmodx/scripting/includes (opcjonalnie)
- Muzyka_na_wbicie_nowej_rangi.sma kopiujemy do amxmodx/scripting (opcjonalnie, odgrywa muzyczkę przy awansie do nowej rangi)
- Best_Player.sma kopiujemy do amxmodx/scripting (opcjonalnie, wyświetla informację o najlepszym graczu)
Na serwer WWW kopiujemy zawartość folderu WWW (4 pliki)
z czego edytujemy jedynie plik Konfiguracja.php
Instrukcja znajduje się w środku ww. pliku.
[success='Dane SQL']Pamiętaj, aby pobierać dane na serwer WWW z tej samej bazy danych, do której statystyki zapisuje plugin Deathrun Rangi.
Upewnij się też, czy użytkownik bazy danych posiada dostęp do bazy danych zarówno z serwera gry, jak i serwera WWW.[/success]
Zmiana rang i wymagań
Aby zmienić rangi lub wymagania, należy edytować plik główny Rangi_Deathrun.sma
1. Znajdujemy linijkę new const g_Rangi[][] = i pod nią mamy nazwy kolejnych rang. Bez problemu możemy ich nazwy zmieniać, usuwać i dodawać nowe.
Należy jednak pamiętać, aby znajdowały się one w cudzysłowie i po każdej randze, porócz ostatniej, znajdował się przecinek, jak w oryginale.
2. Tak samo postępujemy z wymogami znajdującymi się poniżej linijki new const g_Wymogi[] =, gdzie kolejne od góry liczby odpowiadają kolejnym
rangom i wyrażają liczbę skoków wymaganą do zdobycia kolejnej rangi. należy pamiętać, by liczba rang była identyczna, jak liczba wymogów.
3. Na końcu zliczamy nową liczbę rang i aktualizujemy max_level z linijki 13.: #define max_level 16, zmieniając 16 na nową liczbę rang do zdobycia.
4. Gdy już wprowadzimy wszystkie zmiany, zapisujemy plik, kompilujemy lokalnie, aktualizujemy DeathrunRanking.amxx na serwerze i zmieniamy mapkę.
Autorzy: speedkill i benio101
Podziękowanie dla Fili:P za wycięcie muzyki
Język: polski
Wersja: 1.2.1
Changelog:
v. 1 N Wersja inicjalizacyjna v. 1.1 $ Poprawiono obsługę błędów $ Poprawiono numerację paginacji v. 1.2 + Dodanie numeracji miejsc $ Poprawiono algorytm sortowania $ Zoptymalizowano kod $ Zmniejszono liczbę zapytań do bazy danych + Dodano informację o liczbie wpisów w bazie danych v. 1.2.1 ! Aktualizacja krytyczna $ Zoptymalizowano kod $ Dodano zabezpieczenie cvarów (FCVAR_PROCETED)
Rangi_Deathrun.rar 121,93 KB 1327 Ilość pobrań
Rangi_Deathrun.sma 10,59 KB 954 Ilość pobrań
Rangi_Deathrun.amxx
#426314 Polskie końcówki wyrazów w zależności od wartości
Napisane przez Gość w 30.06.2012 18:10
Na pewno nieraz widzieliście napisy typu:
- Koszt przesyłki wynosi 24 złotych
- Na Twoim koncie jest 1 punktów
- Sesja wygaśnie za 4 minut
lub po prostu problem Was przerastał.
Mam dla Was wspaniałą nowinę:
Od dziś będziecie spać spokojnie!
Albowiem przedstawiam rozwiązanie.
Stock wybiera odpowiednią końcówkę na podstawie podanej wartości.
Mamy do czynienia z dwoma stockami:
- dkoncowka() dla liczb całkowitych (integer, decimal)
- fkoncowka() dla dla liczb zmiennoprzecinkowych (float)
dkoncowka(ile, czlon[], zero[], jeden[], dwa[]);
fkoncowka(Float:ile, czlon[], zero[], pol[], jeden[], dwa[]);
Opis
- ile [liczba całkowita dla dkoncowka(), zmiennoprzecinkowa dla fkoncowka()] → wartość, na podstawie której wybierana będzie końcówka
- czlon [ciąg znaków] → wbrew nazwie humanistycznej, początek wyrazu wyświetlanego, identyczny dla wszystkich kolejnych argumentów
- zero [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 0, która dołączona do członu da pełny, odmieniony wyraz
- pol [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 0.5, która dołączona do członu da pełny, odmieniony wyraz
- jeden [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 1, która dołączona do członu da pełny, odmieniony wyraz
- dwa [ciąg znaków] → końcówka, którą przyjmuje wyraz dla wartości ile równej 2, która dołączona do członu da pełny, odmieniony wyraz
Zmienna czlon służy zaoszczędzeniu czasu w używaniu funkcji, pozostawienie jej pustej i podanie pełnych odmian słów pozostałych zmiennych
w zupełności spełni swoje zadanie, choć zazwyczaj zwyczajnie przysporzy nam niepotrzebnego pisania kilkakrotnie początku tego samego wyrazu.
Przykłady
if(is_user_alive(id)){
new hp=get_user_health(id);
client_print(id,print_chat,"Masz %d %s zycia", hp, dkoncowka(hp, "punkt", "ow", "", "y"));
}
if(is_user_connected(id)){
new frags=get_user_frags(id);
if(frags)
client_print(id,print_chat,"Zdobyles %d %s", frags, dkoncowka(frags, "frag", "ow", "a", "i"));
else
client_print(id,print_chat,"Nie zdobyles jeszcze zadnego fraga");
}
Stocki do skopiowania
stock dkoncowka(ile, czlon[], zero[], jeden[], dwa[]){
new str[1024];
ile=abs(ile);
if(ile==1){
format(str,1023,"%s%s",czlon,jeden);
return str;
}
if((ile%10==2 || ile%10==3 || ile%10==4) && (!(ile%100==12 || ile%100==13 || ile%100==14))){
format(str,1023,"%s%s",czlon,dwa);
return str;
}
format(str,1023,"%s%s",czlon,zero);
return str;
}
stock fkoncowka(Float:ile, czlon[], zero[], pol[], jeden[], dwa[]){
new str[1024];
ile=floatabs(ile);
if(ile==1.0){
format(str,1023,"%s%s",czlon,jeden);
return str;
}
if(ile!=floatround(ile)){
format(str,1023,"%s%s",czlon,pol);
return str;
}
new num=floatround(ile);
if((num%10==2 || num%10==3 || num%10==4) && (!(num%100==12 || num%100==13 || num%100==14))){
format(str,1023,"%s%s",czlon,dwa);
return str;
}
format(str,1023,"%s%s",czlon,zero);
return str;
}
Stocki do pobrania
koncowka.inc 1,02 KB 134 Ilość pobrań
Implementacja (koncowka.inc)
- Kopiujemy stock do folderu scripting/include i dodajemy na początku kodu
#include <koncowka>
- Lub kopiujemy potrzebne stocki do naszego kodu
#429504 Najlepszy gracz mapy
Napisane przez Gość w 07.07.2012 12:07
Plugin pokazuje na 5 sekund przed końcem mapy nick
najlepszego gracza na środku ekranu zielonym hudem.
Najlepszy gracz typowany jest na podstawie wielu
czynników regulowanych do woli cvarami, tj.
- zabiciami w głowę
- zabiciami zwykłymi
- zabiciami towarzyszy
- zginięciami w głowę
- zginięciami zwykłymi
- samobójstwami
- podkładaniami bomb
- podłożeniami bomb
- detonacjom bomb
- rozbrajanym bombom
- rozbrojonym bombom
- ratowanym zakładnikom
- uratowanym zakładnikom
punktów, które w przypadku zielonego koloru, dodawane są
do punktów pozytywnych, czerwonego zaś do negatywnych.
Mamy do wyboru dwie opcje:
- Sumaryczną, która zwraca różnicę sumy punktów
pozytywnych i punktów negatywnych dla każdego gracza - Sortowaną, która w pierwszej kolejności bierze pod uwagę
sumę punktów pozytywnych, a w drugiej kolejności dopiero
sumę punktów negatywnych dla każdego z graczy.
ostatnim kryterium, dla obu tych opcji, jest kryterium pierwszeństwa,
co oznacza, że w przypadku identycznych statystyk, zwycięzcą
zostanie gracz, który jako pierwszy zyskał pozytywne punkty.
Do tego mamy możliwość co rundę wyświetlać graczowi liczbę posiadanych punktów na koncie.
amxmodx amxmisc hamsandwich csx
ngm_frag_pts 2 // liczba pozytywnych punktów przyznawana za zwykłe zabójstwo
ngm_frag_hs_pts 3 // liczba pozytywnych punktów przyznawana za zabójstwo w głowę
ngm_tk_pts 3 // liczba pozytywnych punktów przyznawana za zabójstwo w głowę
ngm_zgon_pts 1 // liczba negatywnych punktów przyznawana za zostanie zabitym
ngm_zgon_hs_pts 2 // liczba negatywnych punktów przyznawana za zostanie zabitym w głowę
ngm_plant 1 // liczba pozytywnych punktów przyznawana za rozpoczęcie podkładania bomby
ngm_planted 2 // liczba pozytywnych punktów przyznawana za podłożenie bomby
ngm_explode 5 // liczba pozytywnych punktów przyznawana za zdetonowanie bomby
ngm_defuse 3 // liczba pozytywnych punktów przyznawana za rozpoczęcie rozbrajania bomby
ngm_defused 5 // liczba pozytywnych punktów przyznawana za rozbrajenie bomby
ngm_hostage 1 // liczba pozytywnych punktów przyznawana za rozpoczęcie ratowania zakładnika
ngm_resque 2 // liczba pozytywnych punktów przyznawana za uratowanie zakładnika
ngm_typ 0 // 0 - tryb sumowanych punktów, 1 - tryb punktów sortowanych
ngm_punkty 1 // 1 - pokazuje punkty, 0 - nie pokazuje punktów
ngm_samobojstwo 2 // liczba negatywnych punktów przyznawana za popełnienie samobójstwa / zabicie się
Wersja dla końca mapy wraz z końcem czasu:
- najlepszygraczmapy.amxx kopiujemy do amxmodx/plugins
- do amxmodx/plugins.ini dodajemy najlepszygraczmapy.amxx
- do amxmodx/amxx.cfg dodajemy powyższe cvary (ustawione wg własnych upodobań)
- najlepszygraczmapy.sma kopiujemy do amxmodx/scripting (opcjonalnie)
- najlepszygraczmapy_pdr.amxx kopiujemy do amxmodx/plugins
- do amxmodx/plugins.ini dodajemy najlepszygraczmapy_pdr.amxx
- do amxmodx/amxx.cfg dodajemy powyższe cvary (ustawione wg własnych upodobań)
- najlepszygraczmapy_pdr.sma kopiujemy do amxmodx/scripting (opcjonalnie)
- get_seconds_left.amxx kopiujemy do amxmodx/plugins (koniecznie!)
- do amxmodx/plugins.ini dodajemy get_seconds_left.amxx (koniecznie!)
- secondsleft.inc kopiujemy do amxmodx/scripting/include (opcjonalnie)
Autor: Benio101
Licencja: PAL (Uznanie autorstwa)
Wersja: 1.1
Język: Polski
Changelog
v. 1.0 07.07.12 N Wydanie pluginu v. 1.1 12.07.12 + { Dodanie cvaru ngm_tk_pts, ktory dodaje negatywne punkty za TK Dodanie wersji kompatybilnej z pluginami, pozwalajacymi dokonczyc runde na koniec czasu }
Wersja dla końca mapy wraz z końcem czasu:
najlepszygraczmapy.sma 6,42 KB 748 Ilość pobrań
najlepszygraczmapy.amxx
Wersja z pozwoleniem na dokończenie rundy po końcu czasu:
najlepszygraczmapy_pdr.sma 7,1 KB 505 Ilość pobrań
najlepszygraczmapy_pdr.amxx
get_seconds_left.sma 1,96 KB 471 Ilość pobrań
get_seconds_left.amxx
secondsleft.inc 152 bajtów 483 Ilość pobrań
#430475 * Crysis 2 Multiplayer Mod *
Napisane przez Gość w 10.07.2012 15:08
Polecam Ci pokonać ten problem, zamiast liczyć na gotowca z gotowca, bo na nic o się nie zda. Jeśli poświęciłbyś tyle czasu, pracy i energii na rozwiązanie problemu, jaki poświęcasz na pisanie na forum, że nie potrafisz, dawno pomagałbyś innym na podstawie własnych doświadczeń. Uwierz mi, że jeśli tylko będziesz tak naprawdę chciał, to poradzisz sobie i szybciej osiągniesz oczekiwany cel, niż ciągle oczekując gotowych rozwiązań. A przy okazji będziesz potrafił w przyszłości powtórzyć czynność oraz podołać kolejnym zadaniom, co uczyni z Ciebie wartościowego, doświadczonego i zdolnego Administratora. Ale trzeba chcieć.
#441826 CSDM - zapamiętywanie tłumiku, burst mode
Napisane przez Gość w 06.08.2012 21:27
W wolnym czasie, możliwe, że się za to zabiorę, bo będę musiał zainstalować to całe CSDM, a pisanie "na sucho" chyba się na nic nie zda w tym wypadku.
#443630 [ROZWIĄZANE] get_mapname, set_task
Napisane przez Gość w 10.08.2012 03:20
Należy uważać, żeby nie stworzyć zadania o numerze innego, już istniejącego.
Numer zadania(opcjonalny 3. parametr funkcji) musi być unikalny ze względów technicznych pawna.
Wiele osób korzystało z tworzenia taska z identyfikatorem równym id gracza.
Szybko odeszli od tego fatalnego pomysłu, tworząc równie złe rozwiązanie, do numeru gracza dodawali pewną, unikalną liczbę,
następnie odejmując ją w momencie wykonywania zadania. Niestety, liczby te, o ile nie są oddalone o minimum maksymalną możliwą liczbę graczy na serwerze,
to mogą prowadzić do nieprzewidzianych skutków, ingerując w taski z innej funkcji, a następnie próbując dwukrotnie dodać, bądź odjąć zadanie,
co powoduje w nieprzewidzianych momentach, co nieokreślony i trudny do przewidzenia czas, losowe crashe serwera bez error logów.
Wystarczy popatrzeć na dział "Problemy z AMXX / Problemy z HLDS". Wiele z tych nierozwiązanych problemów polega na nieudolnym używaniu kodu typu:
#include <amxmodx>Stąd zalecam wysyłać parametry jako tablicę, wraz z podaniem jej wielkości, by zapobiec niespodziewanym crashom serwera bez errorlogów.
#include <hamsandwich>
#include <fun>
#define TASK_YEAR 2012
#define TASK_FB 1337
#define TASK_HE 1991
#define TASK_SG 1111
public plugin_init(){
register_plugin("Bad task example", "0.1", "benio101");
RegisterHam(Ham_Spawn, "player", "ham_spawn", 1);
set_task(100.0,"gracz_roku",TASK_YEAR);
}
public ham_spawn(id){
if(is_user_alive(id)){
set_task(5.0,"fb",id+TASK_FB,_,_,"b");
set_task(10.0,"he",id+TASK_HE,_,_,"b");
set_task(20.0,"sg",id+TASK_SG,_,_,"b");
}
}
public gracz_roku(){
client_print(0,print_chat,"Graczem roku zostal Haxi0r! Gratulacje!");
}
public fb(id){
id-=TASK_FB;
if(is_user_alive(id)){
give_item(id,"item_flashbang");
} else {
remove_task(id+TASK_FB);
}
}
public he(id){
id-=TASK_HE;
if(is_user_alive(id)){
give_item(id,"item_hegrenade");
} else {
remove_task(id+TASK_HE);
}
}
public sg(id){
id-=TASK_SG;
if(is_user_alive(id)){
give_item(id,"item_smokegrenade");
} else {
remove_task(id+TASK_SG);
}
}
Dokładne informacje, jak przesyłać parametry znajdują się m.in. w tym dziale.
Jeśli w kodzie powyżej, poza oczywistym brakiem usunięcia tasku w przypadku końca rundy, nie widzisz innych błędów, to oznacza, że jesteś podatny na wyżej opisany przypadek.
Ad.1. Do porównania służy funkcja equal
if(equal(nazwa_mapy,"de_dust2"))
#436541 VIP Ultimate
Napisane przez Gość w 26.07.2012 15:03
Plugin VIP, dający osobom z określonymi flagami przywileje.
vip_hp 10 // <liczba dodawanego zycia na poczatku kazdej rundy> vip_he 1 // <liczba dodawanych granatow HE na poczatku kazdej rundy> vip_fb 0 // <liczba dodawanych Flashy na poczatku kazdej rundy> vip_sg 0 // <liczba dodawanych Smoke Grenadow na poczatku kazdej rundy> vip_defuse_kit 0 // czy dawac defuse kit na poczatku kazdej rundy <0|1> vip_armor 50 // <liczba dodawanych punktow kamizelki na poczatku kazdej rundy> vip_speed 150 // <liczba dodawanych punktow szybkosci> vip_money 1000 // <liczba dodawanych dolarow na poczatku kazdej rundy> vip_skoki 3 // <liczba mozliwych do wykonania skokow w powietrzu> vip_napis 1 // czy w tabeli punktow ma widniec VIP przy nicku <0|1> vip_girl_model_ct 1 // czy ustawiac model dla kobiety CT <0|1> vip_girl_model_tt 1 // czy ustawiac model dla kobiety TT <0|1> vip_admin_model_ct 1 // czy ustawiac model dla Admina CT <0|1> vip_admin_model_tt 1 // czy ustawiac model dla Admina TT <0|1> vip_vip_model_ct 1 // czy ustawiac model dla VIPa CT <0|1> vip_vip_model_tt 1 // czy ustawiac model dla VIPa TT <0|1> vip_vip_flag t // <flaga vipa|""> vip_girl_flag p // <flaga dziewczyny|""> vip_admin_flag d // <flaga admina|""> vip_recharge 1 // czy dawac pelen magazynek za zabicie wroga <0|1> vip_add_money 200 // <liczba dodatkowych pieniedzy za zwykle zabicie> vip_add_hs_money 700 // <liczba dodatkowych pieniedzy za zabicie HeadShotem> vip_money_limit 16000 // <limit pieniedzy> vip_add_frags 0 // <liczba dodatkowych fragow za zwykle zabicie> vip_add_hs_frags 0 // <liczba dodatkowych fragow za zabicie HeadShotem> vip_add_hp 10 // <liczba dodatkowych punktow zycia za zwykle zabicie> vip_add_hs_hp 30 // <liczba dodatkowych punktow zycia za zabicie HeadShotem> vip_hp_limit 255 // <limit punktow zycia> vip_armor_limit 511 // <limit punktow kamizelki> vip_screen_flash 1 // czy wyswietlac zielone migniecie na poczatku rundy <0|1> vip_powitanie_txt 1 // czy wyswietlac powitanie vipa na serwerze <0|1> vip_powitanie_wav 1 // czy witac vipow emisja pliku wav <0|1> vip_deagle 0 // ilosc magazynkow amunicji w deaglu <0|1-6> vip_fiveseven 0 // ilosc magazynkow amunicji w fiveseven <0|1-6> vip_m4 0 // ilosc magazynkow amunicji w m4a1 <0|1-4> vip_ak 0 // ilosc magazynkow amunicji w ak47 <0|1-4> vip_awp 0 // ilosc magazynkow amunicji w awp <0|1-4> vip_krowa 0 // ilosc magazynkow amunicji w m249 <0|1-3> vip_shotgun 0 // ilosc magazynkow amunicji w xm1014 <0|1-6> vip_online_info 1 // czy pokazywac liste vipow online <0|1> vip_info // <nazwa pliku TXT z informacja o VIPie w formacie HTML|"">
amxmodx cstrike engine fakemeta_util fun hamsandwich colorchat
Mamy do wyboru dwie wersje:
vip_ultimate.amxx, który działa niezależnie:
- vip_ultimate.amxx kopiujemy do amxmodx/plugins
- vip_ultimate.sma kopiujemy do amxmodx/scripting (opcjonalnie)
- do pliku amxmodx/config/plugins.ini dodajemy linijkę vip_ultimate.amxx
- vip_ultimate.amxx kopiujemy do amxmodx/plugins
- vip_ultimate.sma kopiujemy do amxmodx/scripting (opcjonalnie)
- do pliku amxmodx/config/plugins.ini dodajemy linijkę vip_ultimate.amxx
Autorzy: Benio101
Licencja: PAL (Uznanie autorstwa)
Wersja: 1.1
Język: Polski
vip.sma 15,16 KB 1183 Ilość pobrań
vip.amxx
vip_ultimate.sma 15,2 KB 1659 Ilość pobrań
vip_ultimate.amxx
Vip_modele.rar 15,52 MB 1650 Ilość pobrań
PS. Plugin pisany dawno temu na własne potrzeby, ale oto post, który skłonił mnie na publikację:
Zostało jeszcze 49Tak, zróbcie jeszcze 50 vipów...
[info='Plugin nie będzie rozwijany']W związku z tym, że już prawie gotowy VIP Generator zawiera wszystkie opcje zawarte w tym pluginie,
a także sporo więcej, to niniejszy plugin nie będzie rozwijany i żadne prace nad nim nie będą prowadzone.
Proszę nie liczyć na dodanie nowych opcji, tylko napisać do mnie na PW, jakie opcje przydadzą się Wam w VIP Generatorze.[/info]
#455871 VIP Generator
Napisane przez Gość w 05.09.2012 19:14
Od teraz możesz zapomnieć o takim problemie! VIP Generator zadebiutował na AMXX.pl
W związku z dużym zainteresowaniem pluginami "VIP"
Przygotowaliśmy dla Was obiecany Vip Generator
Wygeneruj sobie plugin VIP według własnych upodobań.
Dziesiątki ustawień, zarówno zwykłych, jak i warunkowych.
Macie jakieś propozycje, a może brakuje Wam istotnych ustawień?
Piszcie śmiało, a postaramy się dodać kolejne opcje do generatora.
Mam nadzieję, że generator przyniesie pożytek
PS Generator dostępny jest także w głównym, górnym Menu
poprzez wybranie Dodatki → Dodatki AMXX → Generator VIP
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: Hleb
- Regulamin