czesc mam takie pytanie by dal mi ktos link zeby miec aima na steam niewykrywalnego ? jak nie macie takich to zwyklego aima na STeam proszę !! Nie gram na czitach ale jak ktos mnie wkurzy a adma nie ma to ja tez odpale i ja go poowkurzam
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.
|
Guest Message by DevFuse
Jak się nazwać
Rejestracja: 30.05.2011Aktualnie: Nieaktywny
Poza forum Ostatnio: 06.04.2016 11:44
Statystyki
- Grupa: Power User
- Całość postów: 617
- Odwiedzin: 11 462
- Tytuł: Wszechmogący
- Wiek: 29 lat
- Urodziny: Luty 17, 1995
-
Imię
a
-
Płeć
Mężczyzna
-
Lokalizacja
a
Kontakt
#627800 [ROZWIĄZANE] Aim na Steam
Napisane przez MokrePiotrek w 24.03.2014 13:39
#562304 Jak zmienić klawisz funkcyjny klas (np. rakiety) na klawisz "X"
Napisane przez PaiN kiLLer w 10.08.2013 15:59
Jeśli umiesz przerabiać pluginy to czytaj to
Opis: Funkcja zwraca sumę binarną aktualnie naciskanych klawiszy (w praktyce jeden klawisz) Składnia: get_user_button( id ) Typ: Stock Notatki: id - index gracza Funkcja może zwrócić następuje wartości: IN_ATTACK (1<<0) // Przy ataku IN_JUMP (1<<1) // Przy skoku IN_DUCK (1<<2) // Przy kucnięciu IN_FORWARD (1<<3) // Przy chodzeniu do przodu IN_BACK (1<<4) // Przy cofaniu się IN_USE (1<<5) // Przy użyciu (+use) IN_CANCEL (1<<6) // Przy wyłączeniu (ESC) IN_LEFT (1<<7) // Przy skręcaniu w lewo (strzałka w lewo) IN_RIGHT (1<<8) // Przy skręcaniu w prawo (strzałka w prawo) IN_MOVELEFT (1<<9) // Przy chodzeniu w lewo IN_MOVERIGHT (1<<10) // Przy chodzeniu w prawo IN_ATTACK2 (1<<11) // Przy ataku drugim (zoom, alternatywny atak nożem) IN_RUN (1<<12) // Przy poruszaniu się IN_RELOAD (1<<13) // Przy przeładowaniu IN_ALT1 (1<<14) // Przy alcie (używanie alta może powodować błędy) IN_SCORE (1<<15) // Przy zaglądaniu w tabelę wyników Przykład: // Blokada rozbrajania bomby, ratowania zakładników public client_PreThink(id) if(is_user_alive(id) && get_user_button(id) & IN_USE) entity_set_int(id,EV_INT_button, get_user_button(id) & ~IN_USE);
#493345 Ruletka
Napisane przez Gość w 24.12.2012 22:22
Opis domyślnych nagród:
Spoiler
Amator Budownictwa
Daje graczowi TMP z 30 nabojami, 500 AP i hełm.
Gracz otrzymuje 90% szansy na uniknięcie obrażeń.
Za każde trafienie wroga, dostaje 2 ammo, za zabicie, 5 ammo.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Minimum 30 sekund do końca rundy
Arsenał
Daje graczowi pełen arsenał broni.
Gracz traci bronie i granaty. Otrzymuje 2HE, 2FB, 1SG,
kamizekę z 200AP, hełm, dEagle, autopompę, AWP i krowę.
Jako CT dostaje też M4, FiveseveN i zestaw rozbrajający.
Jako Terrorysta, dostaje także AK47 i Dual Elites.
Wymagania
Brak broni podstawowej (slot1)
AWP
Daje graczowi AWP.
Gracz traci pistolet.
Wymagania
Brak broni podstawowej (slot1)
Posiadanie pistoletu (slot2)
Bandyci
Gracz traci cały arsenał.
Oczywiście nóż, zestaw rozbrajający, ani
ewentualna bomba nie zostaną zabrane.
Wymagania
Posiadanie broni podstawowej (slot1) LUB
Pistoletu oraz min. jednego granatu
Błyskawica
Gracz zostanie uderzony błyskawicą,
chwilowo oślepiony, ziemia się zatrzęsie
oraz gracz zostanie na chwilę podpalony.
http://youtu.be/iqOF3kv5dK8
Wymagania
Minimum 10 sekund do końca rundy
Bomberman
Gracz może kłaść bombę wszędzie.
Wymagania
Posiadanie bomby
Bóg
Gracz dostaje GodModa na ograniczony czas.
http://youtu.be/3qdmkXzhzao
Wymagania
Minimum roulette_god_speed+5 sekund do końca rundy
Cichobiegi
Nie słychać kroków gracza.
Wymagania
Minimum 30 sekund do końca rundy
Cienias
Zadajesz 2× mniej obrażeń.
Wymagania
Brak
Czapka niewidka
Gracz staje się niewidzialny na ograniczony czas.
Wymagania
Minimum roulette_invisible_cap_max+5 sekund do końca rundy
Duch
Gracz dostaje NoClipa na ograniczony czas.
Wymagania
Minimum roulette_ghost_max+5 sekund do końca rundy
ESP
Wygrywasz ESP
Wymagania
Brak
Główka
Możesz zabić z broni tylko HeadShotem.
Wymagania
Brak
Granaty
Dostajesz losową liczbę granatów.
Wymagania
Brak
Hacker
Dostajesz mnóstwo życia.
Wymagania
Brak
Hazardzista
Zmienia stan gotówki na losową liczbę dolarów.
Wymagania
Brak
Idiota
Zmienia model gracza na idiotę.
Wymagania
Minimum 30 sekund do końca rundy
Kameleon
Daje graczowi przebranie przeciwnej drużyny.
Po chwili teleportuje go na miejsce spawnu wroga.
Wymagania
Minimum 45 sekund do końca rundy
Karma
Gracz zostaje slapowany przez ograniczony czas.
Wymagania
Minimum roulette_karma_num_max+5 sekund do końca rundy
Kasyno
Gracz przegrywa określoną liczbę dolarów.
Wymagania
Minimum dwukrotność roulette_casino_money dolarów
Kieszonkowe
Gracz wygrywa określoną liczbę dolarów.
Wymagania
Nie więcej, niż roulette_pocket_money_money dolarów.
Kopniak
Gracz dostaje kopniaka, tracąc pewną liczbę HP.
Wymagania
Brak
Krowa
Gracz dostaje krowę, traci inne bronie.
Wymagania
Posiadanie jakiejkolwiek broni
Ludzka Bomba
Gracz zostaje ludzką bombą.
Wybucha wraz ze śmiercią bądź końcem czasu.
Wymagania
Minimum roulette_human_bomb_max+5 sekund do końca rundy
Limit globalny
Co min. roulette_human_bomb_rounds_ban rund
Łuskator
Gracz nie musi przeładowywać amunicji.
Amunicja zadaje o 25% więcej obrażeń.
Bonus trwa aż do śmierci lub końca mapy.
Wymagania
Minimum 5 sekund do końca rundy
Brak właśnie aktywnego Łuskatora
Mała Niewidzialność
Gracz jest prawie niewidzialny nawet z bronią.
Wymagania
Brak
Małpa
Gracz wysoko skacze.
Wymagania
Brak
Medyk
Gracz ma zmienione HP na losową liczbę.
Wymagania
Brak
Multijump
Gracz dostaje multijumpa do końca mapy.
Wymagania
Minimum 5 minut do końca mapy
Brak aktywowanego multijumpa
Limit twardy użytkownika
Raz wylosowana nagroda przez danego użytkownika
nie będzie losowana dla niego ponownie. Wszelkie próby
zresetowania mocy dla tego użytkownika będą blokowane.
Niewidzialny Bóg
Gracz staje się niewidzialny ani niezniszczalny na określony czas.
Wymagania
Minimum roulette_invisible_god_max+5 sekund do końca rundy
Limit miękki gracza
Gracz nie będzie mógł ponownie wylosować nagrody.
aż do końca mapy lub do zresetowania mocy nagród.
Ninja
Gracz zostaje Ninja.
Ma tylko nóż, nie słychać jego kroków.
Biega trochę szybciej, bardzo wysoko skacze.
Jest prawie niewidzialny, ale ma tylko 50 HP.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
http://youtu.be/XbElPGEQoGE
Wymagania
Minimum 30 sekund do końca rundy
Nożownik
Gracz zostaje nożownikiem.
Dostaje dużo życia i szybciej biega.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
http://youtu.be/ErMpU4yjA9w
Wymagania
Minimum 30 sekund do końca rundy
Obrażenia
Gracz zadaje losową liczbę obrażeń.
Wymagania
Brak
Ogień
Gracz płonie aż do śmierci lub końca rundy.
Wymagania
Minimum 30 sekund do końca rundy
Limit miękki gracza
Gracz nie będzie mógł ponownie wylosować nagrody.
aż do końca mapy lub do zresetowania mocy nagród.
Podatek
Gracz płaci podatek w punktach życia.
Wymagania
Brak
Przebieraniec
Gracz ostaje strój wroga.
Wymagania
Minimum 35 sekund do końca mapy
Rambo
Gracz zostaje Rambo.
Dostaje krowę i obrażenia * 100 przez limitowany czas.
Wymagania
Minimum roulette_rambo_max+5 sekund do końca mapy
Rany
Doznajesz 2× więcej obrażeń.
Wymagania
Brak
Samobójca
Gracz zostaje samobójcą.
Dostaje nóż, 25000 HP i szybciej bieg.
Po 30 sekundach lub klikając LPM+PPM,
wybucha, zabijając pobliskich wrogów.
Samobójca traci wszystkie bronie poza nożem.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Brak
Limit globalny
Co min. roulette_suicide_bomber_rounds_ban rund
Schabowy
Gracz je schaba.
Dostaje losową liczbę HP.
Wymagania
Maksymalnie dwukrotność dodawanego życia ze schabowego
Słoń
Gracz zostaje słoniem i nisko skacze.
Wymagania
Brak
Snajper
Gracz zostaje snajperem.
Dostaje 222 HP, AWP i jest prawie niewidzialny. Traci inne bronie.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Minimum roulette_sniper_max+5 sekund do końca rundy
Staruch
Gracz porusza się dużo wolniej przez określony czas.
Wymagania
Minimum roulette_old_man_max+5 sekund do końca rundy
Strata fragów
Gracz traci losową liczbę fragów.
Wymagania
Brak
Strata gotówki
Gracz traci całą gotówkę.
Wymagania
Minimum 5000 dolarów
Strata zgonów
Gracz tarci losową liczbę zgonów.
Wymagania
Brak
Szybcior
Gracz biega bardzo szybko przez limitowany czas.
Wymagania
Minimum roulette_windman_max+5 sekund do końca rundy
Ślepiec
Gracz ślepnie na określoną liczbę sekund.
Wymagania
Minimum roulette_blind_max+5 sekund do końca rundy
Teleport
Gracz zostaje teleportowany na resp wroga.
Wymagania
Minimum 40 sekund do końca rundy
Weteran noża
Gracz jest całkowicie niewidzialny z nożem w ręku.
Wymagania
Minimum 45 sekund do końca rundy
Wieśniak
Gracz zostaje wieśniakiem.
Za każde trafienie wroga, dostaje 2 ammo, za zabicie, 5 ammo.
Dostaje UZI z jednym magazynkiem z szansą 20% na obrażenia ×1000.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Minimum 30 sekund do końca rundy
Wolny frag
Gracz zostaje teleportowany na resp wroga z dEagle.
Następnie zostaje na ograniczony czas zakopany pod ziemią.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Minimum 40 sekund do końca rundy
Wygrana gotówka
Gracz wygrywa gotówkę.
Wymagania
Mniej, niż 10000 dolarów
Wygrane fragi
Gracz wygrywa fragi.
Wymagania
Brak
Wygrane zgony
Gracz wygrywa zgony.
Wymagania
Brak
Wygrane życie
Gracz wygrywa życie.
Wymagania
Nie więcej, niż 111 HP
Zakopane
Gracz traci wszystkie bronie i zostaje zakopany pod ziemią na ograniczony czas.
Wymagania
Minimum roulette_buried_max+5 sekund do końca rundy
Zboczeniec
Gracz zostaje zboczeńcem i zabija, gwałcąc swoją wielką, zieloną pałą.
Traci wszystkie bronie, wraz z nożem. jest nieśmiertelny, szybko biega.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
http://youtu.be/hZV2gMBCHJI
Wymagania
Minimum roulette_rapist_max+5 sekund do końca rundy
Limit miękki gracza
Gracz nie będzie mógł ponownie wylosować nagrody.
aż do końca mapy lub do zresetowania mocy nagród.
Zeus
Gracz zostaje Zeusem.
Gracz dostaje NoClipa i GodModa na ograniczony czas.
Wymagania
Brak
Limit miękki gracza
Gracz nie będzie mógł ponownie wylosować nagrody.
aż do końca mapy lub do zresetowania mocy nagród.
Zmartwychwstanie
Gracz dostaje 3 dodatkowe życia.
http://youtu.be/vPoGLWwP4x4
Wymagania
Minimum 5 minut do końca mapy
Brak aktywowanego multijumpa
Limit twardy użytkownika
Raz wylosowana nagroda przez danego użytkownika
nie będzie losowana dla niego ponownie. Wszelkie próby
zresetowania mocy dla tego użytkownika będą blokowane.
Żebrak
Gracz wyżebrze pod kościołem pewną liczbę dolarów.
Wymagania
Maksymalnie dwukrotność roulette_pauper_money dolarów
Amator Budownictwa
Daje graczowi TMP z 30 nabojami, 500 AP i hełm.
Gracz otrzymuje 90% szansy na uniknięcie obrażeń.
Za każde trafienie wroga, dostaje 2 ammo, za zabicie, 5 ammo.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Minimum 30 sekund do końca rundy
Arsenał
Daje graczowi pełen arsenał broni.
Gracz traci bronie i granaty. Otrzymuje 2HE, 2FB, 1SG,
kamizekę z 200AP, hełm, dEagle, autopompę, AWP i krowę.
Jako CT dostaje też M4, FiveseveN i zestaw rozbrajający.
Jako Terrorysta, dostaje także AK47 i Dual Elites.
Wymagania
Brak broni podstawowej (slot1)
AWP
Daje graczowi AWP.
Gracz traci pistolet.
Wymagania
Brak broni podstawowej (slot1)
Posiadanie pistoletu (slot2)
Bandyci
Gracz traci cały arsenał.
Oczywiście nóż, zestaw rozbrajający, ani
ewentualna bomba nie zostaną zabrane.
Wymagania
Posiadanie broni podstawowej (slot1) LUB
Pistoletu oraz min. jednego granatu
Błyskawica
Gracz zostanie uderzony błyskawicą,
chwilowo oślepiony, ziemia się zatrzęsie
oraz gracz zostanie na chwilę podpalony.
http://youtu.be/iqOF3kv5dK8
Wymagania
Minimum 10 sekund do końca rundy
roulette_lightning_min 20 // <minimalne obrażenia od błyskawicy>
roulette_lightning_max 50 // <maksymalne obrażenia od błyskawicy>
roulette_lightning_burn_min 2 // <minimalny czas podpalenia>
roulette_lightning_burn_max 8 // <maksymalny czas podpalenia>
Bomberman
Gracz może kłaść bombę wszędzie.
Wymagania
Posiadanie bomby
Bóg
Gracz dostaje GodModa na ograniczony czas.
http://youtu.be/3qdmkXzhzao
Wymagania
Minimum roulette_god_speed+5 sekund do końca rundy
roulette_god_min 10 // <minimalny czas trwania GodModa>
roulette_god_max 20 // <maksymalny czas trwania GodModa>
roulette_god_speed 450 // <prędkość gracza podczas GodModa>
Cichobiegi
Nie słychać kroków gracza.
Wymagania
Minimum 30 sekund do końca rundy
Cienias
Zadajesz 2× mniej obrażeń.
Wymagania
Brak
Czapka niewidka
Gracz staje się niewidzialny na ograniczony czas.
Wymagania
Minimum roulette_invisible_cap_max+5 sekund do końca rundy
roulette_invisible_cap_min 12 // <minimalny czas trwania niewidzialności>
roulette_invisible_cap_max 26 // <maksymalny czas trwania niewidzialności>
roulette_invisible_cap_speed 500 // <prędkość gracza podczas trwania nagrody>
Duch
Gracz dostaje NoClipa na ograniczony czas.
Wymagania
Minimum roulette_ghost_max+5 sekund do końca rundy
roulette_ghost_min 8 // <minimalny czas trwania NoClipa>
roulette_ghost_max 22 // <maksymalny czas trwania NoClipa>
roulette_ghost_speed 500 // <prędkość gracza podczas NoClipa>
ESP
Wygrywasz ESP
Wymagania
Brak
Główka
Możesz zabić z broni tylko HeadShotem.
Wymagania
Brak
Granaty
Dostajesz losową liczbę granatów.
Wymagania
Brak
roulette_grenades_he_min 4 // <minimalna liczba HE do wylosowania>
roulette_grenades_he_max 8 // <maksymalna liczba HE do wylosowania>
roulette_grenades_fb_min 6 // <minimalna liczba FB do wylosowania>
roulette_grenades_fb_max 12 // <maksymalna liczba FB do wylosowania>
roulette_grenades_sg_min 2 // <minimalna liczba SG do wylosowania>
roulette_grenades_sg_max 4 // <maksymalna liczba SG do wylosowania>
Hacker
Dostajesz mnóstwo życia.
Wymagania
Brak
roulette_hacker_life 150 // <liczba punktów życia, jakie otrzyma gracz>
Hazardzista
Zmienia stan gotówki na losową liczbę dolarów.
Wymagania
Brak
roulette_gambler_min 1 // <minimalna liczba dolarów do wylosowania>
roulette_gambler_max 10000 // <maksymalna liczba dolarów do wylosowania>
Idiota
Zmienia model gracza na idiotę.
Wymagania
Minimum 30 sekund do końca rundy
Kameleon
Daje graczowi przebranie przeciwnej drużyny.
Po chwili teleportuje go na miejsce spawnu wroga.
Wymagania
Minimum 45 sekund do końca rundy
Karma
Gracz zostaje slapowany przez ograniczony czas.
Wymagania
Minimum roulette_karma_num_max+5 sekund do końca rundy
roulette_karma_num_min 5 // <minimalny czas trwania slapowania>
roulette_karma_num_max 15 // <maksymalny czas trwania slapowania>
roulette_karma_dmg_min 1 // <minimalna wartość obrażeń każdego slapa>
roulette_karma_dmg_min 9 // <maksymalna wartość obrażeń każdegoslapa>
Kasyno
Gracz przegrywa określoną liczbę dolarów.
Wymagania
Minimum dwukrotność roulette_casino_money dolarów
roulette_casino_money 3000 // <liczba przegrywanych dolarów>
Kieszonkowe
Gracz wygrywa określoną liczbę dolarów.
Wymagania
Nie więcej, niż roulette_pocket_money_money dolarów.
roulette_pocket_money_money 3000 // <liczba wygrywanych dolarów>
Kopniak
Gracz dostaje kopniaka, tracąc pewną liczbę HP.
Wymagania
Brak
roulette_kick_min 15 // <minimalna liczba zabieranych punktów życia>
roulette_kick_max 25 // <maksymalna liczba zabieranych punktów życia>
Krowa
Gracz dostaje krowę, traci inne bronie.
Wymagania
Posiadanie jakiejkolwiek broni
Ludzka Bomba
Gracz zostaje ludzką bombą.
Wybucha wraz ze śmiercią bądź końcem czasu.
Wymagania
Minimum roulette_human_bomb_max+5 sekund do końca rundy
Limit globalny
Co min. roulette_human_bomb_rounds_ban rund
roulette_human_bomb_min 20 // <minimalny czas do wybuchu bomby>
roulette_human_bomb_max 40 // <maksymalny czas do wybuchu bomby>
roulette_human_bomb_range 1000 // <zasięg rażenia bomby>
roulette_human_bomb_rounds_ban 5 // <liczba rund limitu globalnego>
Łuskator
Gracz nie musi przeładowywać amunicji.
Amunicja zadaje o 25% więcej obrażeń.
Bonus trwa aż do śmierci lub końca mapy.
Wymagania
Minimum 5 sekund do końca rundy
Brak właśnie aktywnego Łuskatora
Mała Niewidzialność
Gracz jest prawie niewidzialny nawet z bronią.
roulette_small_invisibility_min 10 // <0-254> minimalna wartość niewidzialności
roulette_small_invisibility_max 50 // <0-255> maksymalna wartość niewidzialności
Wymagania
Brak
Małpa
Gracz wysoko skacze.
roulette_monkey_min 0.2 // <0.0-0.99> minimalny iloczyn grawitacji (float)
roulette_monkey_max 0.5 // <0.0-1.0> maksymalny iloczyn grawitacji (float)
Wymagania
Brak
Medyk
Gracz ma zmienione HP na losową liczbę.
Wymagania
Brak
roulette_medic_min 1 // minimalna liczba życia do wylosowania
roulette_medic_max 200 // maksymalna liczba życia do wylosowania
Multijump
Gracz dostaje multijumpa do końca mapy.
Wymagania
Minimum 5 minut do końca mapy
Brak aktywowanego multijumpa
Limit twardy użytkownika
Raz wylosowana nagroda przez danego użytkownika
nie będzie losowana dla niego ponownie. Wszelkie próby
zresetowania mocy dla tego użytkownika będą blokowane.
roulette_multijump_jumps 3 // <liczba dodatkowych skoków w powietrzu>
Niewidzialny Bóg
Gracz staje się niewidzialny ani niezniszczalny na określony czas.
Wymagania
Minimum roulette_invisible_god_max+5 sekund do końca rundy
Limit miękki gracza
Gracz nie będzie mógł ponownie wylosować nagrody.
aż do końca mapy lub do zresetowania mocy nagród.
roulette_invisible_god_min 14 // <minimalny czas trwania nagrody>
roulette_invisible_god_max 16 // <maksymalny czas trwania nagrody>
roulette_invisible_god_speed 500 // <prędkość gracza podczas trwania nagrody>
Ninja
Gracz zostaje Ninja.
Ma tylko nóż, nie słychać jego kroków.
Biega trochę szybciej, bardzo wysoko skacze.
Jest prawie niewidzialny, ale ma tylko 50 HP.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
http://youtu.be/XbElPGEQoGE
Wymagania
Minimum 30 sekund do końca rundy
Nożownik
Gracz zostaje nożownikiem.
Dostaje dużo życia i szybciej biega.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
http://youtu.be/ErMpU4yjA9w
Wymagania
Minimum 30 sekund do końca rundy
roulette_cutthroat_speed 500 // <prędkość nożownika>
roulette_cutthroat_hp 1000 // <liczba życia nożownika>
Obrażenia
Gracz zadaje losową liczbę obrażeń.
Wymagania
Brak
roulette_damage_min 1 // <minimalna liczba obrażeń>
roulette_damage_max 111 // <maksymalna liczba obrażeń>
Ogień
Gracz płonie aż do śmierci lub końca rundy.
Wymagania
Minimum 30 sekund do końca rundy
Limit miękki gracza
Gracz nie będzie mógł ponownie wylosować nagrody.
aż do końca mapy lub do zresetowania mocy nagród.
roulette_fire_min 1 // <minimalna liczba obrażeń co sekundę>
roulette_fire_max 3 // <maksymalna liczba obrażeń co sekundę>
Podatek
Gracz płaci podatek w punktach życia.
Wymagania
Brak
roulette_tax_vat 23 // <wysokość podatku w HP>
Przebieraniec
Gracz ostaje strój wroga.
Wymagania
Minimum 35 sekund do końca mapy
Rambo
Gracz zostaje Rambo.
Dostaje krowę i obrażenia * 100 przez limitowany czas.
Wymagania
Minimum roulette_rambo_max+5 sekund do końca mapy
roulette_rambo_min 15 // <minimalny czas trwania Rambo>
roulette_rambo_max 25 // <maksymalny czas trwania Rambo>
Rany
Doznajesz 2× więcej obrażeń.
Wymagania
Brak
Samobójca
Gracz zostaje samobójcą.
Dostaje nóż, 25000 HP i szybciej bieg.
Po 30 sekundach lub klikając LPM+PPM,
wybucha, zabijając pobliskich wrogów.
Samobójca traci wszystkie bronie poza nożem.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Brak
Limit globalny
Co min. roulette_suicide_bomber_rounds_ban rund
roulette_suicide_bomber_min 25 // <minimalny czas do automatycznego wybuchu samobójcy>
roulette_suicide_bomber_max 35 // <maksymalny czas do automatycznego wybuchu samobójcy>
roulette_suicide_bomber_speed 400 // <prędkość samobójcy>
roulette_suicide_bomber_range 777 // <zasięg rażenia wybuchu samobójcy>
roulette_suicide_bomber_rounds_ban 5 // <liczba rund limitu globalnego>
Schabowy
Gracz je schaba.
Dostaje losową liczbę HP.
Wymagania
Maksymalnie dwukrotność dodawanego życia ze schabowego
roulette_schnitzel_hp 100 // <liczba dodawanego HP za zjedzenie schabowego>
Słoń
Gracz zostaje słoniem i nisko skacze.
Wymagania
Brak
roulette_elephant_min 1.5 // <minimalny iloczyn grawitacji> (float)
roulette_elephant_max 2.5 // <maksymalny iloczyn grawitacji> (float)
Snajper
Gracz zostaje snajperem.
Dostaje 222 HP, AWP i jest prawie niewidzialny. Traci inne bronie.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Minimum roulette_sniper_max+5 sekund do końca rundy
roulette_sniper_min 15 // <minimalny czas trwania nagrody>
roulette_sniper_max 25 // <maksymalny czas trwania nagrody>
Staruch
Gracz porusza się dużo wolniej przez określony czas.
Wymagania
Minimum roulette_old_man_max+5 sekund do końca rundy
roulette_old_man_min 8 // <minimalny czas trwania nagrody>
roulette_old_man_max 15 // <maksymalny czas trwania nagrody>
roulette_old_man_speed 72 // <prędkość starucha>
Strata fragów
Gracz traci losową liczbę fragów.
Wymagania
Brak
roulette_frag_loss_min 1 // <minimalna liczba fragów do stracenia>
roulette_frag_loss_max 2 // <maksymalna liczba fragów do stracenia>
Strata gotówki
Gracz traci całą gotówkę.
Wymagania
Minimum 5000 dolarów
Strata zgonów
Gracz tarci losową liczbę zgonów.
Wymagania
Brak
roulette_death_loss_min 1 // <minimalna liczba zgonów do stracenia>
roulette_death_loss_max 5 // <maksymalna liczba zgonów do stracenia>
Szybcior
Gracz biega bardzo szybko przez limitowany czas.
Wymagania
Minimum roulette_windman_max+5 sekund do końca rundy
roulette_windman_min 12 // <minimalny czas trwania nagrody>
roulette_windman_max 24 // <maksymalny czas trwania nagrody>
roulette_windman_speed 1000 // <2-1000> szybkość biegu podczas nagrody
Ślepiec
Gracz ślepnie na określoną liczbę sekund.
Wymagania
Minimum roulette_blind_max+5 sekund do końca rundy
roulette_blind_min 10 // <minimalny czas oślepienia>
roulette_blind_max 15 // <maksymalny czas oślepienia>
Teleport
Gracz zostaje teleportowany na resp wroga.
Wymagania
Minimum 40 sekund do końca rundy
roulette_teleport_min 3 // <minimalny czas do teleportu>
roulette_teleport_max 6 // <maksymalny czas do teleportu>
Weteran noża
Gracz jest całkowicie niewidzialny z nożem w ręku.
Wymagania
Minimum 45 sekund do końca rundy
Wieśniak
Gracz zostaje wieśniakiem.
Za każde trafienie wroga, dostaje 2 ammo, za zabicie, 5 ammo.
Dostaje UZI z jednym magazynkiem z szansą 20% na obrażenia ×1000.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Minimum 30 sekund do końca rundy
Wolny frag
Gracz zostaje teleportowany na resp wroga z dEagle.
Następnie zostaje na ograniczony czas zakopany pod ziemią.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
Wymagania
Minimum 40 sekund do końca rundy
roulette_free_frag_min 3 // <minimalny czas do teleportacji>
roulette_free_frag_min 6 // <maksymalny czas do teleportacji>
roulette_free_frag_time 15 // <czas zakopania pod ziemią po teleportacji>
Wygrana gotówka
Gracz wygrywa gotówkę.
Wymagania
Mniej, niż 10000 dolarów
roulette_money_win_min 1000 // <minimalna gotówka do wygrania>
roulette_money_win_max 13000 // <maksymalna gotówka do wygrania>
Wygrane fragi
Gracz wygrywa fragi.
Wymagania
Brak
roulette_frag_win_min 1 // <minimalna liczba wygranych fragów>
roulette_frag_win_max 3 // <maksymalna liczba wygranych fragów>
Wygrane zgony
Gracz wygrywa zgony.
Wymagania
Brak
roulette_death_win_min 1 // <minimalna liczba wygranych zgonów>
roulette_death_win_max 3 // <maksymalna liczba wygranych zgonów>
Wygrane życie
Gracz wygrywa życie.
Wymagania
Nie więcej, niż 111 HP
roulette_life_win_min 50 // <minimalne HP do wygrania>
roulette_life_win_max 150 // <maksymalne HP do wygrania>
Zakopane
Gracz traci wszystkie bronie i zostaje zakopany pod ziemią na ograniczony czas.
Wymagania
Minimum roulette_buried_max+5 sekund do końca rundy
roulette_buried_min 15 // <minimalny czas trwania nagrody>
roulette_buried_max 25 // <maksymalny czas trwania nagrody>
Zboczeniec
Gracz zostaje zboczeńcem i zabija, gwałcąc swoją wielką, zieloną pałą.
Traci wszystkie bronie, wraz z nożem. jest nieśmiertelny, szybko biega.
W trakcie trwania nagrody, nie może kupować, ani podnosić arsenału.
http://youtu.be/hZV2gMBCHJI
Wymagania
Minimum roulette_rapist_max+5 sekund do końca rundy
Limit miękki gracza
Gracz nie będzie mógł ponownie wylosować nagrody.
aż do końca mapy lub do zresetowania mocy nagród.
roulette_rapist_min 20 // <minimalny czas trwania nagrody>
roulette_rapist_max 30 // <maksymalny czas trwania nagrody>
roulette_rapist_speed 300 // <prędkość zboczeńca>
Zeus
Gracz zostaje Zeusem.
Gracz dostaje NoClipa i GodModa na ograniczony czas.
Wymagania
Brak
Limit miękki gracza
Gracz nie będzie mógł ponownie wylosować nagrody.
aż do końca mapy lub do zresetowania mocy nagród.
roulette_zeus_min 12 // <minimalny czas trwania nagrody>
roulette_zeus_max 18 // <maksymalny czas trwania nagrody>
roulette_zeus_speed 700 // <prędkość Zeusa>
Zmartwychwstanie
Gracz dostaje 3 dodatkowe życia.
http://youtu.be/vPoGLWwP4x4
Wymagania
Minimum 5 minut do końca mapy
Brak aktywowanego multijumpa
Limit twardy użytkownika
Raz wylosowana nagroda przez danego użytkownika
nie będzie losowana dla niego ponownie. Wszelkie próby
zresetowania mocy dla tego użytkownika będą blokowane.
Żebrak
Gracz wyżebrze pod kościołem pewną liczbę dolarów.
Wymagania
Maksymalnie dwukrotność roulette_pauper_money dolarów
roulette_pauper_money 1500 // <liczba dodawanych dolarów graczowi>
#493342 Ruletka
Napisane przez Gość w 24.12.2012 22:18
Ruletka
Pewnie nieraz chciałeś zainstalować na swojego 4funa ruletkę, ale nie mogłeś odnaleźć?
Odnalazłeś, ale mimo to nie podoba Ci się konfiguracja? Udało Ci się skonfigurować kod,
ale ruletka okazała się niewypałem? Gracze blokowali się w ścianie? Tracili kasę, nie mając jej?
Bomba znikała z mapy, przez co nie mogłeś wykonać celów mapy? A może po prostu edycja
Twojej ruletki z dziesiątkami tysięcy linijek Cię przerasta i czujesz duży dyskomfort w edycji?
Nadchodzi Ruletka od Benia
Od teraz każda nagroda w twojej ruletce, to osobny plugin.
Przyjemne API pozwoli kompleksowo i w czytelny sposób edytować nagrody.
Dowolnie możesz konfigurować swoją ruletkę, ustalając cvary nagród czy ruletki,
a instalacja nowej nagrody ogranicza się jedynie do instalacji nowego pluginu.
Stworzenie i dodanie własnej nagrody nie sprawi Ci żadnego problemu.
Nie! dla powtarzających się nagród
Możesz już zapomnieć o losowaniu co chwilę tej samej nagrody dzięki zaawansowanemu
systemowi ograniczania losowania tej samej nagrody w krótkich odstępach czasu.
Nie! dla bezcelowych nagród
Nie otrzymasz już więcej nagrody, która nie przyniesie skutku, jak strata pieniędzy, których
nie masz, a wszystko dzięki ustawionym wymaganiom w SMA dla poszczególnych nagród.
Większe szanse dla wybranych nagród
Każda nagroda może posiadać swoją własną moc, czyli
iloczyn szansy na wylosowanie wobec innych nagród.
System karmy
Ciągłe otrzymywanie dobrych bądź złych nagród zostanie dzięki karmie odwrócone,
do czasu wyrównania karmy. Koniec z ciągle złymi bądź ciągle dobrymi nagrodami.
Ruletka to plugin, który pozwala na wylosowanie przez graczy nagrody po wpisaniu na say /ruletka
Komendy, które aktywują ruletkę, umieszczone są w pliku amxmodx/configs/roulette_keywords.ini
W każdej linii należy umieścić jedną komendę, średnik na początku linijki, nie bierze jej pod uwagę.
Komendy będą działać zarówno wpisane wprost w konsolę, jak i przepisane, bądź poprzedzone slashem
na sayu lub team_sayu. Zmiany dokonane w tym pliku konfiguracyjnym będą widoczne po zmianie mapy.
Dziecinnie proste
W celu ułatwienia edycji i możliwości kompleksowego zarządzania nagrodami, każda nagroda
pisana jest jako osobny plugin, zwyczajowo nazwany jako roulette_nazwa_nagrody.amxx
Multizadaniowość
Każdy gracz może użyć ruletki maksymalnie raz na rundę.
Wielu graczy może grać równocześnie w ruletkę.
(Nie)Odpłatność ruletki
Ustawienie cvaru roulette_prize na dodatnią kwotę, pozwoli na ustalenie odpłatności
ruletki, czyli gra w ruletkę będzie obarczona opłatą w wysokości ustalonej tym cvarem.
Deweloperskie Menu nagród
Ruletka automatycznie dodaje do Menu Administracyjnego (amxmodmenu) Menu "Ruletka".
Menu pozwala na testowanie nowych nagród na Twoim serwerze. Wystarczy wybrać daną
nagrodę i zostanie ona przyznana bez sprawdzania wymogów ani bez odbierania pieniędzy.
Przykładowe, automatycznie wygenerowane menu deweloperskie w amxmodmenu:
http://youtu.be/VT-pa4L6YSk
Gdy nie żyjemy, bądź oglądamy grę jako obserwatorzy, wywołanie danej nagrody
z menu, spowoduje przyznanie jej graczowi, którego właśnie obserwujemy.
Wywołanie nagrody "Bandyci" na widzu z przykładowego menu deweloperskiego:
http://youtu.be/WyHyKYKgObw
Autor: Paweł "benio101" Benetkiewicz
Licencja: PAL
roulette.rar 1,65 MB 793 Ilość pobrań
Opcjonalne pliki do wstawienia na fastDL
fastDL.rar 1,12 MB 351 Ilość pobrań
Instalacja ruletki
Copy & Play: Wypakowujemy zawartość paczki do katalogu cstrike. Gotowe!
Nie trzeba robić nic ponadto, nawet dopisywać pluginu do plugins.ini. Wystarczy zmienić mapę.
Instalacja nagród (tylko dla dodatkowych nagród spoza tej paczki)
Wszystkie pliki nagród (*.amxx) kopiujemy do katalogu addons/amxmodx/plugins
Do pliku addons/amxmodx/configs/plugins-roulette.ini dodajemy ich nazwy wraz z końcówką .amxx
Jeśli korzystasz z WinSCP i chcesz pobrać listę nazw plików do skopiowania, wystarczy, że
zaznaczysz pliki nagród do ruletki, klikniesz PPM › File Names › Copy to Clipboard. Wtedy
wystarczy wkleić gotową listę nagród do ruletki do pliku addons/amxmodx/configs/plugins-roulette.ini
Istotna kolejność (tylko przy instalacji dodatkowych nagród spoza tej paczki)
Zwróć uwagę, by główny plugin roulette.amxx był wpisany na samej górze w pliku konfiguracyjnego plugins-roulette.ini
Dopiero pod wpisem roulette.amxx umieszczaj wpisy plików z nagrodami do ruletki, inaczej się one nie załadują.
Spadochron do ruletki
Standardowy spadochron jest niekompatybilny z większością pluginów i modyfikacji związanych z grawitacją.
Zastąpienie dotychczasowego spadochronu, pluginem Spadochron by H.RED.ZONE, rozwiąże ten problem.
Grawitacja nie będzie się resetowała po użyciu spadochronu, a spadochron graczy niewidzialnych także będzie niewidzialny.
Poniżej przedstawiam opis dla programistów, którzy chcieliby edytować / tworzyć własne nagrody.
Informacje deweloperskie:
Changelog
Pewnie nieraz chciałeś zainstalować na swojego 4funa ruletkę, ale nie mogłeś odnaleźć?
Odnalazłeś, ale mimo to nie podoba Ci się konfiguracja? Udało Ci się skonfigurować kod,
ale ruletka okazała się niewypałem? Gracze blokowali się w ścianie? Tracili kasę, nie mając jej?
Bomba znikała z mapy, przez co nie mogłeś wykonać celów mapy? A może po prostu edycja
Twojej ruletki z dziesiątkami tysięcy linijek Cię przerasta i czujesz duży dyskomfort w edycji?
Nadchodzi Ruletka od Benia
Od teraz każda nagroda w twojej ruletce, to osobny plugin.
Przyjemne API pozwoli kompleksowo i w czytelny sposób edytować nagrody.
Dowolnie możesz konfigurować swoją ruletkę, ustalając cvary nagród czy ruletki,
a instalacja nowej nagrody ogranicza się jedynie do instalacji nowego pluginu.
Stworzenie i dodanie własnej nagrody nie sprawi Ci żadnego problemu.
Nie! dla powtarzających się nagród
Możesz już zapomnieć o losowaniu co chwilę tej samej nagrody dzięki zaawansowanemu
systemowi ograniczania losowania tej samej nagrody w krótkich odstępach czasu.
Nie! dla bezcelowych nagród
Nie otrzymasz już więcej nagrody, która nie przyniesie skutku, jak strata pieniędzy, których
nie masz, a wszystko dzięki ustawionym wymaganiom w SMA dla poszczególnych nagród.
Większe szanse dla wybranych nagród
Każda nagroda może posiadać swoją własną moc, czyli
iloczyn szansy na wylosowanie wobec innych nagród.
System karmy
Ciągłe otrzymywanie dobrych bądź złych nagród zostanie dzięki karmie odwrócone,
do czasu wyrównania karmy. Koniec z ciągle złymi bądź ciągle dobrymi nagrodami.
Ruletka to plugin, który pozwala na wylosowanie przez graczy nagrody po wpisaniu na say /ruletka
Komendy, które aktywują ruletkę, umieszczone są w pliku amxmodx/configs/roulette_keywords.ini
W każdej linii należy umieścić jedną komendę, średnik na początku linijki, nie bierze jej pod uwagę.
Komendy będą działać zarówno wpisane wprost w konsolę, jak i przepisane, bądź poprzedzone slashem
na sayu lub team_sayu. Zmiany dokonane w tym pliku konfiguracyjnym będą widoczne po zmianie mapy.
Dziecinnie proste
W celu ułatwienia edycji i możliwości kompleksowego zarządzania nagrodami, każda nagroda
pisana jest jako osobny plugin, zwyczajowo nazwany jako roulette_nazwa_nagrody.amxx
Multizadaniowość
Każdy gracz może użyć ruletki maksymalnie raz na rundę.
Wielu graczy może grać równocześnie w ruletkę.
(Nie)Odpłatność ruletki
Ustawienie cvaru roulette_prize na dodatnią kwotę, pozwoli na ustalenie odpłatności
ruletki, czyli gra w ruletkę będzie obarczona opłatą w wysokości ustalonej tym cvarem.
Deweloperskie Menu nagród
Ruletka automatycznie dodaje do Menu Administracyjnego (amxmodmenu) Menu "Ruletka".
Menu pozwala na testowanie nowych nagród na Twoim serwerze. Wystarczy wybrać daną
nagrodę i zostanie ona przyznana bez sprawdzania wymogów ani bez odbierania pieniędzy.
Przykładowe, automatycznie wygenerowane menu deweloperskie w amxmodmenu:
http://youtu.be/VT-pa4L6YSk
Gdy nie żyjemy, bądź oglądamy grę jako obserwatorzy, wywołanie danej nagrody
z menu, spowoduje przyznanie jej graczowi, którego właśnie obserwujemy.
Wywołanie nagrody "Bandyci" na widzu z przykładowego menu deweloperskiego:
http://youtu.be/WyHyKYKgObw
roulette_prize 1000 // <0|cena> koszt zagrania w ruletkę (w dolarach) Ustawienie tego cvaru na 0, wyłączy odpłatność ruletki
roulette_ban 20 // <0|liczba> liczba najbliższych losowań, dla których wylosowana nagroda nie będzie brana pod uwagę w losowaniu
roulette_sv_speed 1 // <0|1> jeśli ustawione na 1, ustawiony zostanie cvar sv_maxspeed na 1000, umożliwiając stosowanie bonusów szybkości
roulette_cl_speed 1 // <0|1> jeśli ustawione na 1, cvary prędkości graczy zostaną ustawione na 1000, umożliwiając stosowanie bonusów szybkości
roulette_karma 250 // <-1|liczba> poziom karmy, po przekroczeniu którego zostanie wylosowana nagroda o przeciwnej karmie. -1 wyłącza system karmy
amxmodx
amxmisc
celltrie
colorchat
cstrike
fakemeta
hamsandwich
tutor
Autor: Paweł "benio101" Benetkiewicz
Licencja: PAL
roulette.rar 1,65 MB 793 Ilość pobrań
Opcjonalne pliki do wstawienia na fastDL
fastDL.rar 1,12 MB 351 Ilość pobrań
Instalacja ruletki
Copy & Play: Wypakowujemy zawartość paczki do katalogu cstrike. Gotowe!
Nie trzeba robić nic ponadto, nawet dopisywać pluginu do plugins.ini. Wystarczy zmienić mapę.
Instalacja nagród (tylko dla dodatkowych nagród spoza tej paczki)
Wszystkie pliki nagród (*.amxx) kopiujemy do katalogu addons/amxmodx/plugins
Do pliku addons/amxmodx/configs/plugins-roulette.ini dodajemy ich nazwy wraz z końcówką .amxx
Jeśli korzystasz z WinSCP i chcesz pobrać listę nazw plików do skopiowania, wystarczy, że
zaznaczysz pliki nagród do ruletki, klikniesz PPM › File Names › Copy to Clipboard. Wtedy
wystarczy wkleić gotową listę nagród do ruletki do pliku addons/amxmodx/configs/plugins-roulette.ini
Istotna kolejność (tylko przy instalacji dodatkowych nagród spoza tej paczki)
Zwróć uwagę, by główny plugin roulette.amxx był wpisany na samej górze w pliku konfiguracyjnego plugins-roulette.ini
Dopiero pod wpisem roulette.amxx umieszczaj wpisy plików z nagrodami do ruletki, inaczej się one nie załadują.
Spadochron do ruletki
Standardowy spadochron jest niekompatybilny z większością pluginów i modyfikacji związanych z grawitacją.
Zastąpienie dotychczasowego spadochronu, pluginem Spadochron by H.RED.ZONE, rozwiąże ten problem.
Grawitacja nie będzie się resetowała po użyciu spadochronu, a spadochron graczy niewidzialnych także będzie niewidzialny.
Poniżej przedstawiam opis dla programistów, którzy chcieliby edytować / tworzyć własne nagrody.
Informacje deweloperskie:
Spoiler
Główne pliki ruletki
roulette.sma 24,56 KB 201 Ilość pobrań
roulette.amxx
roulette.inc 4,52 KB 191 Ilość pobrań
Dokumentacja Ruletki
Tworzenie nowej nagrody
W funkcji plugin_init (nie później!) rejestrujemy nową nagrodę przy użyciu natywu register_prize
W pierwszym argumencie podajemy krótki opis nagrody, w drugim zaś moc.
Opis nagrody będzie wyświetlany w menu deweloperskim.
Moc nagrody z kolei określa szansę na wylosowanie nagrody.
Ostatecznie, spośród wszystkich nagród, które spełnią wymagania do zostania wylosowanymi,
losowanie odbędzie się metodą ważoną, czyli każda nagroda uzyska x% szansy na wylosowanie,
przy czym x jest równe ilorazowi mocy tej nagrody oraz sumy mocy wszystkich dostępnych nagród.
Aby ułatwić zmniejszanie mocy dla poszczególnych, potężniejszych nagród,
które chcielibyśmy, by rzadziej były losowane, zdefiniowana została stała POWER,
by możliwe było wygodne zmniejszanie szansy na wylosowanie nagrody kilkukrotnie.
Trzecim argumentem jest karma, która określa, jak dobra jest nagroda.
Dla nagród neutralnych, bądź trudnych do oceny, karma winna wynosić wartość 0.
Dla nagród pozytywnych, bądź negatywnych, wartości winny być dodawane odpowiednio.
Zaleca się, by wartości karmy przyznawane były w zakresie od -100 do 100.
W celu łatwiejszej edycji, stworzone zostało kilka definicji dla karmy:
Warunek nagrody
Do kodu dodajemy forward check_prize jako funkcję publiczną.
Zwracamy w niej jedną z dwóch wartości
z graczy w ruletkę, więc można założyć, że przynajmniej jeden gracz jest żywy.
Pozwolenie na reset mocy
Do kodu dodajemy także forward power_reset, który także zwraca jedną z dwóch wartości
ROULETTE_ALLOW, bądź ROULETTE_BLOCK. Zwrócenie ROULETTE_ALLOW pozwoli na
zresetowanie mocy nagrody w przypadku, gdy wszystkie nagrody są niedostępne, bądź
podczas banicji ustalanej cvarem roulette_ban, ROULETTE_BLOCK nie pozwoli wymusić
resetu mocy, opcja przydatna, jeśli chcemy twardo ograniczyć użycie nagrody raz na mapę.
Podobnie, jak dla forwardu check_prize, można założyć, że przynajmniej jeden gracz jest żywy.
Wywołanie nagrody
Dodajemy także forward execute_prize, który zostanie wywołany w momencie wylosowania
nagrody przez jakiegoś gracza i przyjmie jako jedyny argument jego numer identyfikacyjny (1-32).
Forward wykonywany jest tylko dla żywych graczy, więc sprawdzanie, czy gracz żyje, jest zbędne.
Zmiana mocy nagrody
Za pomocą natywu change_prize_power możemy zmienić moc nagrody dla danego gracza.
Opcja ta jest przydatna do ograniczenia gry w ruletkę dla poszczególnego gracza oraz
do manipulacji mocą w przypadku określonych czynności, bądź implementacji systemu
zmniejszającego szanse po każdorazowym wylosowaniu, czy blokowaniu nagrody dla
graczy po określonych wydarzeniach, odciążając nagrodę z losowania właściwego.
Zmiana karmy gracza
Nieraz dokładna karma nagrody będzie możliwa do określenia dopiero po wykonaniu pewnych operacji,
np. wylosowania ilości dodawanego życia. Wówczas warto skorzystać z natywu, dodającego karmę graczowi.
Istotne jest jednak, by początkowa wartość karmy była dodatnia dla pozytywnych nagród bądź ujemna dla negatywnych.
Zmiana karmy nagrody
Można zmienić także domyślną karmę dla nagrody:
Czas do końca rundy
Przydatny natyw, zwracający liczbę sekund do końca rundy.
Zastosowanie głównie przy dobieraniu warunku dostępności nagrody.
Multilang
Ruletka jest pluginem w pełni wielojęzycznym.
Zaimplementowana została własna struktura słowników drzewiastych.
Wszelkie argumenty tłumaczenia kluczy dotyczą tego właśnie słownika drzewiastego.
Proste informacje
W celu prostego informowania gracza, oraz jego widzów o wylosowanej nagrodzie
i jej przebiegu, stworzony został natyw prize_info, który przyjmuje masę argumentów:
Proste odliczanie
Nie tylko informacje na sayu / tutorze są przydatne.
Gotowy jest też natyw do prostego odliczania:
Szablon nagrody
Flaga FCVAR_SHOWALL
W celu prostszej rejestracji cvarów o flagach z odnotowywanymi zmianami, dodana została definicja:
Limitacja miękka globalna
Standardowo, plugin ruletki, ogranicza losowanie tej samej nagrody
dla jednego gracza w bliskim odstępie losowań, domyślnie ta sama
nagroda może wystąpić dopiero po wylosowaniu 20 innych nagród.
Wyjątkiem jest przypadek, gdy żadna nagroda nie jest dostępna do
wylosowania. Wtedy dochodzi do próby zresetowania mocy nagród.
Szablon kodu do miękkiej limitacji globalnej na liczbę rund ustawianą
cvarem roulette_prize_name_rounds_ban o domyślnej wartości 20.
Limitacja twarda globalna
Limitacja twarda różnić się będzie tym, że wymuszenie resetu mocy nagrody będzie
blokowane poprzez zwrócenie ROULETTE_BLOCK w wywołaniu forwardu power_reset.
W podobny sposób można zmienić domyślną liczbę limitacji dla poszczególnych użytkowników.
Tworzenie funkcji czasowej
Licznik przyjmie pewną wartość, gdy gracz wylosuje nagrodę (execute_prize) i stworzymy taska dla tego
gracza, który będzie wykonywać się co sekundę. W przykładzie ustawiono czas na 20 sekund.
Następnie, co sekundę wywoływana będzie funkcja timer, w której to już musimy sprawdzić, czy gracz żyje
oraz posiada timer, czyli ma nagrodę aktywną. Tu też zmniejszamy czas i wykonujemy odpowiedni kod.
Koniec nagrody może nastąpić standardowo na 3 sposoby:
Należy pamiętać, by uwzględnić wszystkie wymienione możliwości skończenia się czasu.
Po skończonym czasie możemy też bez problemu wywołać funkcję, przywracającą gracza
do normalności, jeśli wykonywaliśmy na nim zaawansowane operacje, np. oddać mu nóż.
Funkcja czasowa z licznikiem
Dodamy teraz funkcjonalny licznik do naszej funkcji czasowej, czyli baza praktyczna.
Skorzystamy także z czasu losowanego, ograniczanego wartościami dwóch cvarów.
W momencie wygrania nagrody, wypisujemy dla gracza oraz wszystkich, którzy go obserwują,
informację o nagrodzie zarówno na sayu, jak i w Tutorze. Do tego wyświetlany jest licznik czasu
na środku ekranu. W przykładzie zastosowano kolory czerwone, oznaczające zazwyczaj złą nagrodę,
jednak inwencja kolorystyki pozostaje wolą autora danej nagrody, choć zaleca się używanie kolorów
zielonych wobec dobrej nagrody, czerwonych wobec złej, niebieskich wobec neutralnych / informacji.
W ruletce wykorzystywany jest tutor, tak więc konieczne jest, by został on pobrany i był umieszczony na serwerze.
Skopiuj po prostu zawartość archiwum tutor.rar do katalogu cstrike na serwerze, a plik tutor.inc
do folderu scripting/include, by móc kompilować takie pluginy. Oficjalny temat o Tutorze na forum.
tutor.rar 7,34 KB 174 Ilość pobrań
tutor.inc 2,21 KB 163 Ilość pobrań
Tutor będzie działał poprawnie u graczy dopiero za drugim wejściem na serwer, będzie działał zarówno
u graczy CS CZ, jak i CS 1.6. Funkcje tutorPrecache oraz tutorInit są konieczne do działania tutora.
Poza tutorem, w wielu nagrodach wykorzystywany jest także stock StripWeapons,
który pozwala na pozbawienie gracza wybranej broni, bądź typu broni.
stripweapons.inc 4 KB 152 Ilość pobrań
Limit miękki gracza
Po otrzymaniu nagrody, wywołujemy na graczu
Dzięki temu, gracz nie wylosuje nagrody
aż do końca mapy lub resetu mocy nagród.
roulette.sma 24,56 KB 201 Ilość pobrań
roulette.amxx
roulette.inc 4,52 KB 191 Ilość pobrań
Dokumentacja Ruletki
Tworzenie nowej nagrody
W funkcji plugin_init (nie później!) rejestrujemy nową nagrodę przy użyciu natywu register_prize
/*
Registers new prize, native must be placed in plugin_init function
desc - short description for developer menu. Limit: 100 characters
karma - how good is prize
positive value for favorable prizes
negative value for unfavorable prizes
0 for neutral or hard to assess prizes
pwr - the product of chance on the prize drawn, recommended value: POWER
key - translates key if set to true or just register prize with given name
Returns registered prize id. Prize ids begins from 0
*/
native register_prize(desc[200], pwr=POWER, karma=0, bool:key=true);
W pierwszym argumencie podajemy krótki opis nagrody, w drugim zaś moc.
Opis nagrody będzie wyświetlany w menu deweloperskim.
Moc nagrody z kolei określa szansę na wylosowanie nagrody.
Ostatecznie, spośród wszystkich nagród, które spełnią wymagania do zostania wylosowanymi,
losowanie odbędzie się metodą ważoną, czyli każda nagroda uzyska x% szansy na wylosowanie,
przy czym x jest równe ilorazowi mocy tej nagrody oraz sumy mocy wszystkich dostępnych nagród.
Aby ułatwić zmniejszanie mocy dla poszczególnych, potężniejszych nagród,
które chcielibyśmy, by rzadziej były losowane, zdefiniowana została stała POWER,
by możliwe było wygodne zmniejszanie szansy na wylosowanie nagrody kilkukrotnie.
/*
draw power =7!, for example, prize with 3× less chance to get out from draw,
we register with power: POWER/3: register_prize("prize name", POWER/3);
*/
#define POWER 5040
Trzecim argumentem jest karma, która określa, jak dobra jest nagroda.
Dla nagród neutralnych, bądź trudnych do oceny, karma winna wynosić wartość 0.
Dla nagród pozytywnych, bądź negatywnych, wartości winny być dodawane odpowiednio.
Zaleca się, by wartości karmy przyznawane były w zakresie od -100 do 100.
W celu łatwiejszej edycji, stworzone zostało kilka definicji dla karmy:
// some predefines karma levels for prizes
#define KARMA_WORST "-100"
#define KARMA_VERY_BAD "-75"
#define KARMA_BAD "-50"
#define KARMA_QUITE_BAD "-25"
#define KARMA_MINUS "-1"
#define KARMA_NEUTRAL "0"
#define KARMA_PLUS "1"
#define KARMA_QUITE_GOOD "25"
#define KARMA_GOOD "50"
#define KARMA_VERY_GOOD "75"
#define KARMA_BEST "100"
Warunek nagrody
Do kodu dodajemy forward check_prize jako funkcję publiczną.
/*
Ask for ability to draw the prize for a given player
id - number of player to draw the prize
Returning ROULETTE_ALLOW allows for draw the prize
Returning ROULETTE_BLOCK disallows for draw the prize
*/
forward check_prize(id);
Zwracamy w niej jedną z dwóch wartości
enum{Jeśli chcemy, by nagroda była zawsze dostępna, wpisujemy proste
ROULETTE_BLOCK, // Blocks forward execute or disallow for executing
ROULETTE_ALLOW // Executes the forward or allow for executing
}
public check_prize(id){Możemy jednak ograniczyć nagrodę, np. tylko dla terrorystów:
return ROULETTE_ALLOW;
}
public check_prize(id){Forward może zostać wykonany w momencie zagrania przez któregoś
return get_user_team(id)==1?ROULETTE_ALLOW:ROULETTE_BLOCK;
}
z graczy w ruletkę, więc można założyć, że przynajmniej jeden gracz jest żywy.
Pozwolenie na reset mocy
Do kodu dodajemy także forward power_reset, który także zwraca jedną z dwóch wartości
ROULETTE_ALLOW, bądź ROULETTE_BLOCK. Zwrócenie ROULETTE_ALLOW pozwoli na
zresetowanie mocy nagrody w przypadku, gdy wszystkie nagrody są niedostępne, bądź
podczas banicji ustalanej cvarem roulette_ban, ROULETTE_BLOCK nie pozwoli wymusić
resetu mocy, opcja przydatna, jeśli chcemy twardo ograniczyć użycie nagrody raz na mapę.
/*
Ask for change prize`s power
id - number of player to reset the power
Returning ROULETTE_ALLOW allows for prize`s power reset
Returning ROULETTE_BLOCK disallows for prize`s power reset
*/
forward power_reset(id);
Podobnie, jak dla forwardu check_prize, można założyć, że przynajmniej jeden gracz jest żywy.
Wywołanie nagrody
Dodajemy także forward execute_prize, który zostanie wywołany w momencie wylosowania
nagrody przez jakiegoś gracza i przyjmie jako jedyny argument jego numer identyfikacyjny (1-32).
Forward wykonywany jest tylko dla żywych graczy, więc sprawdzanie, czy gracz żyje, jest zbędne.
/*
Executes prize by given player
id - number of player wchich drew the prize
*/
forward execute_prize(id);
Zmiana mocy nagrody
Za pomocą natywu change_prize_power możemy zmienić moc nagrody dla danego gracza.
/*
Forces prize power change
id - number of player, which power is changed
if set to 0, power is changed for all players
pwr - new power to set
Returns old player`s prize power or -1 if id is 0
*/
native change_prize_power(id=0, pwr=0);
Opcja ta jest przydatna do ograniczenia gry w ruletkę dla poszczególnego gracza oraz
do manipulacji mocą w przypadku określonych czynności, bądź implementacji systemu
zmniejszającego szanse po każdorazowym wylosowaniu, czy blokowaniu nagrody dla
graczy po określonych wydarzeniach, odciążając nagrodę z losowania właściwego.
Zmiana karmy gracza
Nieraz dokładna karma nagrody będzie możliwa do określenia dopiero po wykonaniu pewnych operacji,
np. wylosowania ilości dodawanego życia. Wówczas warto skorzystać z natywu, dodającego karmę graczowi.
Istotne jest jednak, by początkowa wartość karmy była dodatnia dla pozytywnych nagród bądź ujemna dla negatywnych.
/*
Sets user karma level
id - number of player to set new karma
if set to 0, karma is set to all players
karma - new karma to set
Returns old player`s karma or -1 if id is 0
*/
native set_user_karma(id=0, karma=0);
/*
Gets user karma level
id - number of player to get karma
*/
native get_user_karma(id);
Zmiana karmy nagrody
Można zmienić także domyślną karmę dla nagrody:
/*
Changes prize`s karma
karma - new karma to set
Returns prize`s old karma
*/
native change_prize_karma(karma=0);
Czas do końca rundy
Przydatny natyw, zwracający liczbę sekund do końca rundy.
Zastosowanie głównie przy dobieraniu warunku dostępności nagrody.
/*
Gets time to end of round in seconds
*/
native timeleft();
Multilang
Ruletka jest pluginem w pełni wielojęzycznym.
Zaimplementowana została własna struktura słowników drzewiastych.
/*
Registers new dictionary of keys to translate
file - dictionary`s filename placed in data/lang
*/
native register_translate(file[128]);
/*
Translates key registered by register_translate
id - number of player to translate key for
key - the key to translate
result - the output for translated key
*/
native translate(id, key[128], result[896]);
Wszelkie argumenty tłumaczenia kluczy dotyczą tego właśnie słownika drzewiastego.
Proste informacje
W celu prostego informowania gracza, oraz jego widzów o wylosowanej nagrodzie
i jej przebiegu, stworzony został natyw prize_info, który przyjmuje masę argumentów:
/*
Shows information of drawed message to winner and his spectators
id - number of player to show the information
color - color of the message to show.
Available colors to choose:
YELLOW, GREEN, RED, BLUE
key - translates key if set to true or just shows given message
msg - message to show for a player. Limit of 190 characters
msgSpec - message to show for player`s spectators. Same limit.
channel - binary sum of channels message to show
1 - ColorChat
2 - Tutor
4 - Center
time - how long the tutor message have to lasts (float value)
*/
native prize_info(id, color=INFO_YELLOW, msg[190]="", msgSpec[190]="", bool:key=true, channel=3, Float:time=10.0);
enum(<<=1){ // Message channels used in prize_info native
MSG_COLORCHAT=1,
MSG_TUTOR,
MSG_CENTER
}
enum{ // Colors are projected to be compatible with ColorChat
INFO_YELLOW=1, // Yellow color has been added to make names more sense
INFO_GREEN,
INFO_RED=5,
INFO_BLUE
}
Proste odliczanie
Nie tylko informacje na sayu / tutorze są przydatne.
Gotowy jest też natyw do prostego odliczania:
/*
Shows counter centered information to winner and his spectators
Uses client_print print_center in format: "translated_key: number"
id - number of player to show the counter
key - the key to translate, being the prize name
number - number to show (f.e. seconds left, HP left, etc.)
spect - specifies, if show counter to spectators too.
*/
native prize_counter(id, key[128], number, bool:spect=true);
Szablon nagrody
#include <amxmodx>
#include <roulette>
public plugin_init(){
register_plugin("Roulette Prize name", "0.1", "Prize Author");
register_prize("Prize name: Short prize description");
}
public execute_prize(id){
}
public check_prize(id){
return ROULETTE_ALLOW;
}
public power_reset(id){
return ROULETTE_ALLOW;
}
Flaga FCVAR_SHOWALL
W celu prostszej rejestracji cvarów o flagach z odnotowywanymi zmianami, dodana została definicja:
// defines cvar bitsum value, showing cvar`s existing and every change
#define FCVAR_SHOWALL FCVAR_ARCHIVE|FCVAR_SERVER
Limitacja miękka globalna
Standardowo, plugin ruletki, ogranicza losowanie tej samej nagrody
dla jednego gracza w bliskim odstępie losowań, domyślnie ta sama
nagroda może wystąpić dopiero po wylosowaniu 20 innych nagród.
Wyjątkiem jest przypadek, gdy żadna nagroda nie jest dostępna do
wylosowania. Wtedy dochodzi do próby zresetowania mocy nagród.
Szablon kodu do miękkiej limitacji globalnej na liczbę rund ustawianą
cvarem roulette_prize_name_rounds_ban o domyślnej wartości 20.
#include <amxmodx>
#include <roulette>
new ban=0, c_rounds_ban;
public plugin_init(){
register_plugin("Roulette Prize name", "0.1", "Prize Author");
register_prize("Prize name: Short prize description");
register_logevent("roundStart", 2, "1=Round_Start");
c_rounds_ban=register_cvar("roulette_prize_name_rounds_ban", "20", FCVAR_SHOWALL);
}
public execute_prize(id){
change_prize_power(id, 0);
ban=get_pcvar_num(c_rounds_ban);
}
public roundStart(){
if(ban){
--ban;
}
}
public check_prize(id){
return ban?ROULETTE_BLOCK:ROULETTE_ALLOW;
}
public power_reset(id){
return ROULETTE_ALLOW;
}
Limitacja twarda globalna
Limitacja twarda różnić się będzie tym, że wymuszenie resetu mocy nagrody będzie
blokowane poprzez zwrócenie ROULETTE_BLOCK w wywołaniu forwardu power_reset.
enum{
ROULETTE_BLOCK, // Blocks forward execute or disallow for executing
ROULETTE_ALLOW // Executes the forward or allow for executing
}
W podobny sposób można zmienić domyślną liczbę limitacji dla poszczególnych użytkowników.
Tworzenie funkcji czasowej
#include <amxmodx>Stworzyliśmy zmienną globalną prize[33], przechowującą licznik czasu dla poszczególnych graczy.
#include <hamsandwich>
#include <roulette>
new maxPlayers, prize[33];
public plugin_init(){
register_plugin("Roulette Prize name", "0.1", "Prize Author");
register_prize("Prize name: Short prize description");
register_logevent("roundEnd", 2, "1=Round_End");
register_logevent("roundEnd", 2, "1=Game_Commencing");
RegisterHam(Ham_Killed, "player", "killed", 1);
}
public plugin_cfg(){
maxPlayers=get_maxplayers();
}
public execute_prize(id){
prize[id]=20;
new data[1];
data[0]=id;
set_task(1.0, "timer", _, data, 1, "a", prize[id]);
}
public timer(data[]){
new id=data[0];
if(is_user_alive(id) && prize[id]){
if(--prize[id]){
// tutaj wykonujemy kod co sekunde, dla dodatniego licznika czasu
} else {
// licznik czasu wlasnie dobiegl zera, wykonujemy pewien, inny kod
}
}
}
public killed(vid, kid, shouldgib){
if(prize[vid]){
prize[vid]=0;
}
}
public client_putinserver(id){
prize[id]=0;
}
public roundEnd(){
remove_task();
for(new i=1; i<=maxPlayers; ++i){
prize[i]=0;
}
}
public check_prize(id){
return ROULETTE_ALLOW;
}
public power_reset(id){
return ROULETTE_ALLOW;
}
Licznik przyjmie pewną wartość, gdy gracz wylosuje nagrodę (execute_prize) i stworzymy taska dla tego
gracza, który będzie wykonywać się co sekundę. W przykładzie ustawiono czas na 20 sekund.
Następnie, co sekundę wywoływana będzie funkcja timer, w której to już musimy sprawdzić, czy gracz żyje
oraz posiada timer, czyli ma nagrodę aktywną. Tu też zmniejszamy czas i wykonujemy odpowiedni kod.
Koniec nagrody może nastąpić standardowo na 3 sposoby:
- Koniec czasu (licznik osiągnął wartość zerową)
- Zabicie gracza (stąd funkcja killed)
- Koniec rundy (funkcja roundEnd)
Należy pamiętać, by uwzględnić wszystkie wymienione możliwości skończenia się czasu.
Po skończonym czasie możemy też bez problemu wywołać funkcję, przywracającą gracza
do normalności, jeśli wykonywaliśmy na nim zaawansowane operacje, np. oddać mu nóż.
Funkcja czasowa z licznikiem
Dodamy teraz funkcjonalny licznik do naszej funkcji czasowej, czyli baza praktyczna.
Skorzystamy także z czasu losowanego, ograniczanego wartościami dwóch cvarów.
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <roulette>
new maxPlayers, prize[33];
new c_prize_min, c_prize_max;
public plugin_init(){
register_plugin("Roulette Prize name", "0.1", "Prize Author");
register_prize("Prize name: Short prize description");
register_logevent("roundEnd", 2, "1=Round_End");
register_logevent("roundEnd", 2, "1=Game_Commencing");
RegisterHam(Ham_Killed, "player", "killed", 1);
c_prize_min=register_cvar("c_prize_name_min", "10", FCVAR_SHOWALL);
c_prize_max=register_cvar("c_prize_name_max", "20", FCVAR_SHOWALL);
}
public plugin_cfg(){
maxPlayers=get_maxplayers();
}
public execute_prize(id){
// gracz o numerze id wylosowal nagrode
// tutaj wykonujemy operacje tuz po wylosowaniu nagrody
prize[id]=random_num(get_pcvar_num(c_prize_min), get_pcvar_num(c_prize_max));
prize_info(id, INFO_BLUE, "PRIZE_NAME_DESC", "PRIZE_NAME_DESC_SPEC");
prize_counter(id, "PRIZE_NAME", prize[id]);
new data[1];
data[0]=id;
set_task(1.0, "timer", _, data, 1, "a", prize[id]);
}
public timer(data[]){
new id=data[0];
if(is_user_alive(id) && prize[id]){
if(--prize[id]){
// tutaj wykonujemy kod co sekunde, dla dodatniego licznika czasu
prize_counter(id, "PRIZE_NAME", prize[id]);
} else {
// licznik czasu wlasnie dobiegl zera, wykonujemy pewien, inny kod
prize_info(id, .key=false, .channel=MSG_CENTER);
}
}
}
public killed(vid, kid, shouldgib){
if(prize[vid]){
prize[vid]=0;
}
}
public client_putinserver(id){
prize[id]=0;
}
public roundEnd(){
remove_task();
for(new i=1; i<=maxPlayers; ++i){
prize[i]=0;
}
}
public check_prize(id){
return ROULETTE_ALLOW;
}
public power_reset(id){
return ROULETTE_ALLOW;
}
W momencie wygrania nagrody, wypisujemy dla gracza oraz wszystkich, którzy go obserwują,
informację o nagrodzie zarówno na sayu, jak i w Tutorze. Do tego wyświetlany jest licznik czasu
na środku ekranu. W przykładzie zastosowano kolory czerwone, oznaczające zazwyczaj złą nagrodę,
jednak inwencja kolorystyki pozostaje wolą autora danej nagrody, choć zaleca się używanie kolorów
zielonych wobec dobrej nagrody, czerwonych wobec złej, niebieskich wobec neutralnych / informacji.
W ruletce wykorzystywany jest tutor, tak więc konieczne jest, by został on pobrany i był umieszczony na serwerze.
Skopiuj po prostu zawartość archiwum tutor.rar do katalogu cstrike na serwerze, a plik tutor.inc
do folderu scripting/include, by móc kompilować takie pluginy. Oficjalny temat o Tutorze na forum.
tutor.rar 7,34 KB 174 Ilość pobrań
tutor.inc 2,21 KB 163 Ilość pobrań
Tutor będzie działał poprawnie u graczy dopiero za drugim wejściem na serwer, będzie działał zarówno
u graczy CS CZ, jak i CS 1.6. Funkcje tutorPrecache oraz tutorInit są konieczne do działania tutora.
Poza tutorem, w wielu nagrodach wykorzystywany jest także stock StripWeapons,
który pozwala na pozbawienie gracza wybranej broni, bądź typu broni.
stripweapons.inc 4 KB 152 Ilość pobrań
Limit miękki gracza
Po otrzymaniu nagrody, wywołujemy na graczu
change_prize_power(id, 0);
Dzięki temu, gracz nie wylosuje nagrody
aż do końca mapy lub resetu mocy nagród.
Changelog
Spoiler
24.12.2012 1.0 N Init version
28.12.2012 2.0 + Added custom configuration files. Plugin is fully plug & play now
03.01.2013 2.1 $ Fixed incorrect plugin native change prize power call
04.01.2013 2.2 + Added cutom map`s custom configuration files settings service
08.01.2013 3.0 % Improved memory usage, replacing stable tables with the cellarray
11.01.2013 3.1 $ Fixed the ArrayGetArray incorect identifier usage
13.01.2013 4.0 + Added multilanguage service, changed main plugin language to english
13.01.2013 4.0.1 $ Changed variables names and comments to english
13.01.2013 4.0.2 $ Fixed null sized array initialize while no prizes
13.01.2013 4.1 % Improved menu show while no prizes
13.01.2013 4.2 $ No more searching for winning prize`s execute forward id twice
28.01.2013 5.0 % Merged ConnorMcLeod`s get_remaining_seconds and Roulette
28.01.2013 5.0.1 + Added timeleft native
29.01.2013 5.1 + Added register_translate and translate natives
30.01.2013 5.1.1 $ Fixed translations for tutor
30.01.2013 5.2 + Added prize_info native
30.01.2013 5.3 $ Added register_prize multilang support
30.01.2013 5.3.1 % Improved some comparisons usage
30.01.2013 5.3.2 $ Fixed infinity loop bug when prize`s default power is 0
01.02.2013 6.0 + Added karma system
02.02.2013 6.0.1 % Improved some natives returns
02.02.2013 6.1 + Added change_prize_karma, set_user_karma and get_user_karma natives
03.02.2013 6.1.1 % Improved some natives parameters and variables usage
03.02.2013 6.1.2 + Added source code sections and some comments blocks
04.02.2013 6.1.3 + Added KARMA_* defines in INC file
04.02.2013 6.1.4 + Added POWER_STR, allowing use it directly in prize`s power cvars
04.02.2013 6.2 % Reduced POWER(_STR) to 7! to avoid integer overflow more effectively
04.02.2013 6.2.1 + Added FCVAR_SHOWALL definition to simplify registering some cvars
05.02.2013 6.2.2 $ Fixed translate native not returning translated string
05.02.2013 6.2.3 + Added credits informations in info section of SMA file
05.02.2013 6.3 + Added prize_counter native to simplify showing counters
06.02.2013 6.3.1 % Moved descriptions in INC file over the content to cooperate with editors
05.03.2013 6.3.2 % Changed array of booleand into bitsum, added bitsum defines
#556745 Eog
Napisane przez StormShadow w 20.07.2013 09:13
#528010 Pobieranie rozdzielczości ekranu gracza
Napisane przez speedkill w 25.03.2013 15:50
#524176 Serwer laguje, a czasami pada.
Napisane przez City w 13.03.2013 11:36
#518830 VPS pod serwery gier.
Napisane przez Rodzyn w 24.02.2013 08:13
#516013 Przechwytywanie menu (zmiany drużyny)
Napisane przez Fili:P w 16.02.2013 16:40
Złap jak stare menu. R3X to zrobił w jednej swojej gotowej funkcji: http://amxx.pl/topic...s-weapons-util/
#515378 Minecraft Mod
Napisane przez jkwart w 15.02.2013 12:14
Fajne.
#512615 Premium sms
Napisane przez Na 5tyk w 08.02.2013 21:49
#507198 Problem z zawieszaniem serwera
Napisane przez Kolumb w 26.01.2013 22:18
wejdz w ftp-->ccstrike-->amxmodx-->config-->sciagni plik modlules.ini
masz tam pewnie takie cuś
no i teraz bierzesz i usówasz średnik przed tym :3
czyli ma zostać tak
masz tam pewnie takie cuś
;nvault
no i teraz bierzesz i usówasz średnik przed tym :3
czyli ma zostać tak
nvault
#497075 [ROZWIĄZANE] Prosba o przerobienie elektryka na klase premium
Napisane przez everston w 02.01.2013 22:46
arek a mógłbyś mi to tu wsrawic juz gotowy plik sma i amx
#496363 czy da sie wyciągnąć z samego amxx sma ?
Napisane przez MaxiKINGer w 31.12.2012 14:53
Nie.
Google Ci odpowie dlaczego.
Google Ci odpowie dlaczego.
#487930 Diablo Mod Core 1.1.0 PL
Napisane przez DarkGL w 07.12.2012 20:22
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
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/
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: Jak się nazwać
- Regulamin