Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Polaczek25 - zdjęcie

Polaczek25

Rejestracja: 16.04.2012
Aktualnie: Nieaktywny
Poza forum Ostatnio: 10.11.2012 13:51
-----

#149705 [HnS]Hide and Seek

Napisane przez Apple() w 06.07.2010 06:38

Jakoby że szukajka niczego nie znalazła na temat tego popularnego pluginu, dodaję go.
Dołączona grafika

Opis: Hide and Seek czyli po polsku Schowaj się i Szukaj jest to nic innego jak zabawa w ganianego.

Co i jak:


*Na początku rundy terroryści mają pewną ilość czasu ustalaną cvarem na schowanie się, podczas gdy antyterroryści są zamrożeni.
*Po upływie czasu zamrożenia, TT z samym nożem ucieka przed CT które pragnie zabić przeciwnika na wszelkie możliwe sposoby.
*Drużyny po zabiciu TT lub po upływie czasu zostają zamienione aby każdy mógł spróbować dogonić kolegę :)
*Najlepszym możliwym pluginem do tego moda to: licznik LongJumpa oraz różne modyfikacje standardowych granatów


Dołączona grafika

Cvary do amxx.cfg:

hns_enable "1/0" //Wlaczanie lub wylaczanie pluginu, (domyslnie 1)

hns_votegametype "1/0" //Vote na tryb rozgrywki(DM albo standard) na poczatku kazdej mapy, (domyslnie 1)

hns_halfwayvote "1/0" //Czy po polowie mapy ma byc kolejne vote, (domyslnie 1)

hns_deathmatch "1/0" //Wlacza lub wylacza deathmatch, (domyslnie 0)

hns_gamename "NAZWAGRY" //Ustawianie nazwy gry

hns_timer "0-∞" //Ile czasu ma TT na schowanie

hns_fadecolor "red green blue alpha lub kolory RGB" //Ustawia fadecolor, alpha = przezroczysty, (domyslnie 0 0 0 255)
 
hns_switch "0-∞" //Liczba rund do automatycznej zmiany teamow, (domyslnie 5, by wylaczyc 0)
 
hns_slash "0-∞" //Liczba rund straconych przez CT do uzywania slasha(?), (domyslnie 3, by wylaczyc 0)

hns_flashbangs "0-3" //Ile flashbangow dostaje TT, (domyslnie 1)

hns_hegrenade "0-3" //Kto dostaje HE? (0 - nikt, 1 - Ci ktorzy sie chowaja, 2 - szukajacy, 3 - kazdy, domyslnie 0)

hns_smokegrenade "0-3" //Kto dostaje SG? (0 - nikt, 1 - Ci ktorzy sie chowaja, 2 - szukajacy, 3 - kazdy, domyslnie 0)

hns_nadesbeginning "1/0" //Terrorysci dostaja granaty od razu po spawnie czy po uplywie czasu chowania sie
 
hns_sound "1/0" //Wlacza lub wylacza dzwiek podczas chowania sie, (domyslnie 0)

hns_semiclip "1/0" //Wlacza lub wylacza semiclipa druzynom, (domyslnie 1)

hns_pickup "1/0" //Wlacza lub wylacza podnoszenie broni, (domyslnie 1)
 
hns_fakeknife "0/1/2" //Wlacza lub wylacza 'podrabiany noz' aby uniknac problemow z szybkoscia (0 wyłącz, 1 wlacz niewidzialny noz, 2 widzialny noz, domyslnie 1)
 
hns_chooseteam "1/0" //Gracze moga wybrac team (0 off, 1 on domyslnie 0)

hns_blockkill "1/0" //Blokowanie komendy kill graczom
 
hns_footsteps "0/1/2" //Nie slychac biegu graczy (1 TT, 2 CT, 0 wylaczone, domyslnie 1)

hns_noflash "1/0" //Jesli wlaczysz terro nie dostanie Z flashbanga od graczy z TT (domyslnie 1)

hns_removedoors "1/0" //Wlacza lub wylacza usuwanie dzwi (domyslnie 1)

hns_removebreakables "1/0" //Tutaj nie wiedzialem: - Enables or disables removal of breakables, not removed on: any map containing "dust", de_piranesi, de_train (e.g vents, domyslnie 1)

hns_newnades "1/0" //Ostatni zyjacy terro dostaje nowe granaty

Dołączona grafika
Standardowa, Instalacja Pluginów AMXX - Nieoficjalny polski support AMX Mod X

PS. Jakby ktoś mógł spolszczyć cvar hns_removebreakables to proszę bardzo, bez krępacji. Jest to forma odpracowania za warna.

CAŁY OPIS SPOLSZCZONY BY ME, RIP = R.I.P
Oryginalny opis znajduje się na AlieddModers.

Załączone pliki


  • +
  • -
  • 2


#468051 [ROZWIĄZANE] Usunięcie natyw z tego BlockMaker`a

Napisane przez Gość w 16.10.2012 14:23

Załączony plik  ProFragsMaker.sma   174,41 KB  39 Ilość pobrań
  ProFragsMaker.amxx

Bez natywów, nie działa stock hnsxp_add_user_xp,
jego definicję i 2 wystąpienia zatem też usunąłem.


#246799 [EasyBlock] Blockmaker by Grzyboo

Napisane przez ^Grzyboo w 07.05.2011 11:53

Witam, mam dla was jeden z lepszych blockmakerów.
Jest to edytowany Bollnas Course Maker z nowymi typami bloków, trochę spolszczony.
Udostępniam go do użytku publicznego.
Działa z Expmodem by Exolent.


Dołączona grafika
FoxCourseMaker.amxx do cstrike/addons/amxmodx/plugins/

w cstrike/addons/amxmodx/configs/plugins.ini
dodajemy na końcu
FoxCourseMaker.amxx

Tutaj zmieniamy na swoje blocki. I wrzucamy je na FTP, w przeciwnym razie nie ruszy serwer.


new const g_model_platform[] = "models/CsFox/Normal/platforma.mdl";
new const g_model_trawa[] = "models/CsFox_Random/Normal/grass.mdl";
new const g_model_drewno[] = "models/CsFox_Random/Normal/podloga.mdl";
new const g_model_glass[] = "models/CsFox_Random/Normal/glass.mdl";
new const g_model_bunnyhop[] = "models/CsFox/Normal/bunnyhop.mdl";
new const g_model_damage[] = "models/CsFox/Normal/damage.mdl";
new const g_model_healer[] = "models/CsFox/Normal/heal.mdl";
new const g_model_no_fall_damage[] = "models/CsFox/Normal/nofall.mdl";
new const g_model_ice[] = "models/CsFox/Normal/lod.mdl";
new const g_model_trampoline[] = "models/CsFox/Normal/trampka.mdl";
new const g_model_speed_boost[] = "models/CsFox/Normal/speed.mdl";
new const g_model_death[] = "models/CsFox/Normal/skull.mdl";
new const g_model_low_gravity[] = "models/CsFox/Normal/gravita.mdl";
new const g_model_honey[] = "models/CsFox/Normal/honey.mdl";
new const g_model_duck[] = "models/CsFox/Normal/platforma.mdl";
new const g_model_ct_barrier[] = "models/CsFox/Normal/ct.mdl";
new const g_model_t_barrier[] = "models/CsFox/Normal/tt.mdl";
new const g_model_vip[] = "models/CsFox/Normal/vipblock.mdl";
new const g_model_no_slow_down_bunnyhop[] = "models/CsFox/Normal/bunnyhop.mdl";
new const g_model_delayed_bunnyhop[] = "models/CsFox/Normal/dbhop.mdl";
new const g_model_invincibility[] = "models/CsFox/Normal/niesmiertelka.mdl";
new const g_model_stealth[] = "models/CsFox/Normal/duszek.mdl";
new const g_model_boots_of_speed[] = "models/CsFox/Normal/buty.mdl";
new const g_model_moneyblock[] = "models/CsFox/Normal/kasa.mdl";
new const g_model_kamuflaz[] = "models/CsFox/Normal/kamu.mdl";
new const g_model_melanz[] = "models/CsFox/Normal/impreza.mdl";
new const g_model_sg[] = "models/CsFox/Normal/granaty.mdl";
new const g_model_he[] = "models/CsFox/Normal/granaty.mdl";
new const g_model_granaty[] = "models/CsFox/Normal/granaty.mdl";
new const g_model_bron[] = "models/CsFox/Normal/weapon.mdl";


Tutaj zmieniamy swoje dźwięki do poszczególnych akcji ( kasa = exp ). Nie podajemy na początku folderu sounds!

new const g_sound_invincibility[] = "Fox/niesm.wav";
new const g_sound_stealth[] = "Fox/duch.wav";
new const g_sound_boots_of_speed[] = "Fox/buty.wav";
new const g_sound_camouflage[] = "Fox/kamu.wav";
new const g_sound_melanz[] = "Fox/melanz.wav";
new const g_sound_kasa[] = "Fox/kasa.wav";


Dołączona grafika

+BMgrab / -BMgrab - Przesuwanie blocków
/bm - Główne menu

Więcej w .sma

Dołączona grafika
Blocki:
Bunnyhop
NoSlow Bunnyhop
Opozniony Bunnyhop
Obrazenia
Lecznie
Brak obrazen po upadku
Lód
Trampolina
Przyspieszenie ( strzalka )
Smierć
Niska grawitacja
Miod
Kucanie
Bariera CT
Bariera TT
Bariera Anty Vip
Szkło
Platforma
Trawa
Drewno
Niesmiertelnosc
Niewidzialnosc
Buty szybkosci
Money / Exp Block
Kamuflaż
Melanż
Smoke
He
Granaty
Dowolna bron

Oryginalny Course Maker z mojego serwera.

Oczywiście wyposażony w menu właściwości ( properties )

Niby nic specjalnego, ale przeglądając sieć trudno znaleźć działającego BMa.


Dołączona grafika

Modele

Załączone pliki


  • +
  • -
  • 12


#450538 JailBreak Mod 1.0.6a by Cypis [Aktualizacja]

Napisane przez Cypis' w 23.08.2012 16:52

Jest to jailbreak napisany przez zemnie, ale też w niektórych częściach ktoś mi pomógł ;)

Podziękowania dla:
DarkGL - za pomoc przy static :P
Fili:P - za grafikę do broni

Co on ma w sobie:

  • Zablokowanie dhud
  • Zablokowanie motd
  • Zablokowanie latarki dla TT
  • Zablokowanie kupowania bron
  • Podmienienie napisów w cs
  • Modele pieści, palki i rękawic
  • Usunięcie modelów zabitych graczy
  • Jeżeli prowadzący strzela w przycisk to włącza go
  • Możliwość zablokowania brania broni z automatów i leczenia się
  • Podmienienie dźwięków noża
  • Zredukowano obrażenia od noża o 60%
  • Menu wyboru broni w CT
  • Możliwość zablokowania/odblokowania mikrofonu dla TT
  • Inne menu wyboru Teamów
  • Możliwość wybierania zabaw przez prowadzącego
  • Łatwość dodawania zabaw i życzeń (osobnymi pluginami)
  • Automatyczne otwieranie cel w FD
  • Menu dla prowadzącego "czy dać życzenie dla ostatniego więźnia"
  • Możliwość dawania duszka i fd danym więźniom
  • Żywi nie słyszą martwych
  • Pokazuje na HUD który jest dzień i kto jest prowadzącym
  • Wyświetla na HUD kto jest poszukiwanym

Komendy:


Komendy ogólne:
say /menu - główne menu
say /czasgry - pokazuje czas gry przegranej na serwerze

Komendy dla Więźnia:
say /lr - menu z życzeniami dla ostatniego więźnia

Komendy dla Strażnika:
say /oddaj - menu do oddawania prowadzenia
say /obsluga - jak jestes prowadzacym i nie daleś ostatniemu wieźniowi życzenia to po wpisaniu tego wyskoczy ci ponowanie menu z obsluga
say /guns - menu wyboru broni

+revision - służy do przeszukiwania wieźniów

Komendy dla Admina:
jail_addct "< steamid > / <nick>" - służy do banowania graczy tych ktorych nie ma na serwerze żeby niemogli dojsc do CT (flaga - "d")
jail_delct "< steamid > / <nick>" - służy do odbanowywania graczy żeby mogli dojsc do CT (flaga - "d")
jail_menuban - menu banowania obecnych graczy co sa na serwerze żeby nie mogli dojsc do CT (flaga - "d")

+adminvoice - gdy admin mówi mutuje resztę (flaga - "d")

Komendy dla H@:
jail_cele - służy do tego, aby było można otworzyć cele przyciskiem z menu (flaga - "l")


Obsluga jail_cele:
Spoiler


Cvary:

jail_tt_mikro "0" //Ustawia czy mikro dla TT ma byc od poczatku rundy wlaczone (1) lub wylaczone (0) (Standardowo 0)

jail_tt_to_ct "5" //Ustawiamy ile TT ma przypadać na 1 CT (Standardowo 5)

jail_ct_steam "0" //Ustawiamy czy tylko steam moze dojsc do CT (Standardowo 0)

jail_ct_time "60" //Ustawiamy ile gracz ma przegrac zeby mogl dojsc do CT (Standardowo 60min)

Cvary są dopisane do jailbreak.cfg w confings w "paczce"

Instalacja:

Kopiujemy zawartość folderu cstrike z JailBreak.rar do folderu cstrike na serwerze.

Nic nie trzeba dopisywać do plugins.ini!

Natywy i forwardy (tylko dla developerów)
Spoiler


Changelog:
Spoiler


DEBUG:
Spoiler


Plany:

  • Usunięcie korzystania z cs_player_models_api.amxx
  • Dodanie cvarów / natywów / forwardów na prośby userów
  • Naprawienie bugów

Download:
Załączony plik  JailBreak.rar   3,92 MB  16325 Ilość pobrań


Jak znajdziecie jakiś bugi w kodzie to piszcie w temacie spróbuje naprawić
I jeżeli macie jakiś propozycje to też piszcie ;)

Załączone pliki


  • +
  • -
  • 90


#41466 Jak napisac plugin ?

Napisane przez rS. w 07.02.2009 17:10

Serdecznie witam wszystkich , tak więc zaczynamy .



Pierwsze Kroki jakie musimy zrobic to:

AMXx Studio - program do kompilacji, przerabiania i pisania własnych pluginów (można go pobrać z http://www.amxmodx.org , znajduje się w packu AMX Mod X Full Installer, lub można go pobrać samodzielnie AMX Mod X Studio)


Tutaj opiszę jak skonfigurować AMXx Studio aby można było kompilować pluginy:

Po otworzeniu AMXx Studio widzimy taki ekran:

screen1.jpg - Rozmiar oryginalny - Fotosik.pl

Wchodzimy w Tools-->Settings (F12)

screen2.jpg - Rozmiar oryginalny - Fotosik.pl

Następnie Compiler Settings w pierwszym białym polu podajemy adres do naszego pliku (amxxpc.exe - to kompilator znajduje sie w folderze tam gdzie masz CS addons/amxmodx/scripting)


screen3.jpg - Rozmiar oryginalny - Fotosik.pl


Klikamy ok i od tej pory kompilowanie pluginów nie powinno stwarzać problemu tylko otwieram i klikamy compile.

Ciekawostka:
Wybrałem amx studio ponieważ uczyłem się na nim od początku od kolegi


Tak więc zaczynamy:

Otwieramy program AMX Mod X Studio
Co gdzie i jak?:
Dołączona grafika

W tych 3 okienkach będziemy widzieć :

a/1 - W tym okienku, po zaznaczeniu danego fragmentu kodu, zobaczymy, jak zostaje sklasyfikowana poszczególna jego część (czy jest to funkcja, metoda, etc.).
b/2 - W tym okienku zobaczymy (po kliknięciu na dany folder) ile razy użyliśmy danej funkcji, metody, zmiennej, etc.
c/3 - Główne okno programu. To w nim piszemy kod plugin'u.


Teraz musimy podać ścieżkę do kompilatora. W tym celu klikamy F12.
Pojawi sie nam to :

Dołączona grafika

W Compiler (amxxpc.exe) podajemy ścieżkę do kompilatora. Znajdziesz ją w :

addons/amxmodx/scripting

W Default Output Directory podajemy miejsce, gdzie będą zapisywały się skompilowane pliki.


Tak więc przygotowaliśmy amxstudio do pracy więc można zaczynac :)

Zmienne: Zmienne są to struktury, które mają przechowywać pewne informacje przez jakiś okres czasu.

Jakie może mieć typy zmiennych:

•|1Zmienne logiczne.
•|2Integer'y.
•|3Liczby dziesiętne.


Zmienne Logiczne: Zmienne logiczne są bardzo proste wy wykonaniu i obsłudze. Można im nadać jedynie dwie wartości a mianowicie:

"true"
"false"

new bool:
CzyJestWlączone // Tworzę nową zmienną "CzyJestWlaczone", która jest automatycznie ustawiona na "false"

new bool:
JestWlaczone=true //Tworzę nową zmienną JestWlaczone i nadaje jej wartość "true".


Integer'y Są to najprostsze struktury w języku skryptowym Pawn , aby umieścić taką zmienną w kodzie, musimy użyć instrukcji new nazwa_zmiennej.


new c=5.0
//Ta zmienna jest niewłaściwa

new a
//Tworzymy pustą zmienną "a"

new b=5
//Tworzymy nową zmienną "b" i ustawiamy jej wartość na 5.

new d="siema"
//"siema" nie jest liczbą, dlatego ta zmienna też jest niewłaściwa.


Liczby dziesiętne Jeżeli chcemy w kodzie plugin'u umieścić liczbę dziesiętną, musimy określić typ zmiennej jako "float". By to wykonać musimy zrobić to w następujący sposób :

new Float
nazwa_zmiennej

new d="siema"
//Ta zmienna nadal nie jest właściwa

new Float:c=5.0
//Ta zmienna była niewłaściwa. Teraz, gdy określiliśmy typ zmiennej na "float" stała się właściwa <img src='http://img.amxx.pl/public/style_emoticons/default/wink.gif' class='bbc_emoticon' alt=';)' />.

new Float:b=5.1
//Tworzymy nową zmienną "b" i ustawiamy jej wartość na 5.1.

Teraz będzie sporo czytania ze zrozumieniem musicie wszystko po kolei ładnie przeczytaj to jest najgłówniejsza rzecz , będziemy się uczyć jak działa plugin , i budową pluginu:

Włączamy AMX MOD X Studio i klikamy CTRL + N.
Otworzy nam się nowe okno z plugin'em, który wygląda tak :

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"


public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    // Add your code here...
}

Teraz o budowie pluginu .

Instrukcje w pluginie zawierają się w funkcjach. Owe funkcje można porównać to spiętych kartek w zeszycie (oryginalne porównanie by Seba :] ) - instrukcje są po kolei wykonywane (tak jak zapisujemy kartki w zeszycie). Każdą funkcję w plugin'ie musimy zarejestrować w kodzie. Robimy to tak :

public nazwa_funkcji(wartości_jakie_przyjmuje_funkcja)
{
//Tutaj będzie nasz kod
}

Kod w funkcji zapisujemy między nawiasami klamrowymi. Funkcje mogą być wywoływane przez gracza (gracz zrobił coś, np. otrzymał obrażenia - nasza funkcja się wykonuje) lub przez inne funkcje.
Wiem, że możecie tego nie zrozumieć, ale przeczytajcie to jeszcze kilka razy i obraz Wam się rozjaśni. Zabieramy się za nasz plugin :) .
Na początku musimy pod nasz plugin podpiąć odpowiednie moduły.
Co to są moduły? Są to zbiory instrukcji. Jeżeli w pluginie użyjemy instrukcji, która wymaga zadeklarowania odpowiedniego modułu - plugin się nie skompiluje.
Otwórzmy okno z AMX MOD X Studio.

#include <amxmodx>
#include <amxmisc>

dopiszmy :

#include <fun>

oraz :

#include <cstrike>

Fun jest to moduł, który zawiera instrukcje związane z "zabawą" (zmienianiem HP oraz armor'a gracza, wyrzucaniem jego wszystkich broni, itp.).
Cstrikezawiera instrukcje, które pozwalają nam np. na zmienianie ilości pieniędzy gracza oraz także na zmienianie jego armor'a (jak w fun'ie) z tym, że tutaj możemy dodatkowo określić rodzaj kamizelki (sama kamizelka czy z hełmem).
Następną czynnością, jaką musimy wykonać jest zadeklarowanie zmiennej do naszej pcvark'i ( jeżeli nie wiecie jak to się robi - odsyłam Was do poprzedniej lekcji). Pcvark'i są szybsze od zwykłych cvar'ek, ale czym różni się deklarowanie pcvarek od deklarowania cvar'ek?
Pcvark'i muszą zostać przypisane do zmiennej, więc zadeklarujmy takową.
Nasza pcvark'a będzie odpowiadać za koszt skorzystania z usługi zmiany HP, więc nadajmy jej nazwę (na przykład) hp_koszt.
Zadeklarujmy zmienną. Dla czystości kodu robimy to pod :

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"

new hp_koszt

Teraz musimy zadeklarować naszą pcvarkę.
Robimy to w funkcji plugin_inti(). W funkcji ten deklarujemy wszystkie event'y, cvarki, itp.
Pod :

register_plugin(PLUGIN, VERSION, AUTHOR)

dopisujemy :

hp_koszt = register_cvar("hp_koszt","6000")

Instrukcja register_cvar("nazwa_cvarki","jaką_domyślną_wartość_przypisujemy") odpowiada za rejestrowanie cvar'ek. W nawiasie musimy podać nazwę cvarki oraz domyślną wartość. Domyślny koszt skorzystania z usługi zmiany HP ustawiłem na 6000.
Teraz zarejestrujemy co musi wpisać gracz, aby mógł skorzystać z usługi zmiany HP.
Umożliwia nam to instrukcja register_clcmd("jaką_komendę_musi_wpisać_gracz","którą_funkcję_wywołuje_wpisana_komenda")
Dopisujemy w plugin_init() :

register_clcmd("say /hpme","hp")

/hpmejest to komenda, którą gracz musi wpisać w say'u. Owa komenda wywołuje funkcję hp. Musimy tą funkcję teraz stworzyć.
Za ostatnim nawiasem klamrowym w naszym pluginie (za nawiasem zamykającym funkcję plugin_init()) dopisujemy :

public hp(id){
}

Wartość id w nawiasie jest to unikalny identyfikator gracza. Można go oczywiście nazwać inaczej, jak player lub gracz, ale id jest najtrafniejsze :) .
Dodamy teraz pierwszą instrukcję warunkową, która uniemożliwi skorzystanie z usługi zmiany HP gdy gracz jest nieżywy.
W funkcji hp(id) dopisujemy :

if(!is_user_alive(id)){
}

Wykrzyknik przed instrukcją is_user_alive(id) sprawia, że dana instrukcja zostanie wykonana tylko wtedy, gdy gracz nie jest żywy. !można przetłumaczyć jako nie,a całą instrukcję jako jeżeli gracz nie jest żywy wykonaj
Teraz przydałoby się zawiadomić gracza, że nie może skorzystać z naszej usługi.
W tym celu przyda nam się instrukcja client_print(), czyli wypisz graczowi.

Wygląda ona tak :

code_print(id,rodzaj_wypisanej_wiadomości (print_chat - wypisuje ją tak jak say lub print_center - wypisuje ją tam, gdzie wiadomości "Counter Terrorist win, itp.","Co_chcemy_wypisać")

Dopiszmy w naszej instrukcji warunkowej (za nawiasem klamrowym naszej instrukcji warunkowej) instrukcję :

client_print(id,print_chat,"[Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-(")

Przydałoby się teraz zastopować plugin. Dlaczego?
Dlatego, że nasza instrukcja nie została spełniona i nie chcemy, aby to co jest po niej wykonało się.
W naszej instrukcji warunkowej dopisujemy :

return PLUGIN_HANDLED

co oznacza - zwróć zastopowany plugin lub nie wykonuj dalej.
Teraz kolejna instrukcja warunkowa, uniemożliwiająca skorzystanie z usługi gdy nasze HP już wynosi 200.
Deklarujemy kolejną instrukcję warunkową. Do sprawdzenia życia gracza przyda nam się instrukcja get_user_health(id).

    if(get_user_health(id)>=200)){
       
    }

Teraz wzorem poprzedniej funkcji zaalarmujmy użytkownika, że nie może wykonać danej czynności. Tak jak wtedy posłuży nam do tego client_print().

client_print(id,print_chat,"[Zmiana HP] Juz skorzystales z tej uslugi!")

Standardowo dodajemy też zastopowanie plugin'u :

return PLUGIN_HANDLED

Dotychczas nasz kod powinien wyglądać tak :

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"

new hp_koszt

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("hp_koszt","6000")
    register_clcmd("/say hpme","hp")
}

public hp(id){
    if(!is_user_alive(id)){
        client_print(id,print_chat,"[Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-(")
        return PLUGIN_HANDLED
    }
    if(get_user_health(id)>=200){
        client_print(id,print_chat,"[Zmiana HP] Juz skorzystales z tej uslugi!")
        return PLUGIN_HANDLED
    }
}

Teraz w końcu dodamy zmianę HP :) .
Umożliwi nam to instrukcja set_user_health(id,ile_HP).
Za klamrą zamykającą ostatnią instrukcję warunkową dopisujemy :

set_user_health(id,200)

Teraz pozostaje nam tylko odjęcie odpowiedniej ilości pieniędzy.
Posłuży nam do tego instrukcja cs_set_user_money(id,ilosc_pieniedzy) oraz
cs_get_user_money(id).
Pierwsza umożliwia ustawienie ilości pieniędzy a druga pobranie ilości pieniędzy posiadanej przez gracza.
Potrzebujemy jeszcze teraz instrukcji, która pobierze z pcvark'i hp_koszt koszt naszej usługi. Posłuży nam do tego get_pcvar_num(nazwa_cvarki).Pobiera ona wartość liczbową zapisaną w cvarc'e.
Dopisujemy pod instrukcją ustawiania życia :

cs_set_user_money(id,cs_get_user_money(id)-get_pcvar_num(hp_koszt))

Teraz dla czystej kosmetyki i poprawnego działania plugin'u dodajemy jeszcze pod ostatnią instrukcją :

return PLUGIN_HANDLED

No tak własnie ty , to koniec! CONGRATULATION . Jeżeli coś zle wypaliło napisz mi jeżeli masz z czymś problem . Jeżeli jest jakiś błąd w poradniku .

Teraz pozostaje Wam tylko skompilowanie plugin'u i zainstalowanie go na serwerze.
Finałowy kod powinien wyglądać tak :

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"

new hp_koszt

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("hp_koszt","6000")
    register_clcmd("/say hpme","hp")
}

public hp(id){
    if(!is_user_alive(id)){
        client_print(id,print_chat,"[Zmiana HP] Nie mozesz skorzystac z tej uslugi ziom, bo jestes niezywy ;-(")
        return PLUGIN_HANDLED
    }
    if(get_user_health(id)>=200){
        client_print(id,print_chat,"[Zmiana HP] Juz skorzystales z tej uslugi!")
        return PLUGIN_HANDLED
    }
    set_user_health(id,200)
    cs_set_user_money(id,cs_get_user_money(id)-get_pcvar_num(hp_koszt))
    return PLUGIN_HANDLED
}



Poradnik wykonany w całości przez Paweł
  • +
  • -
  • 51


#348071 Paczka FFA by MattLoki aka. Tekon

Napisane przez NUkz w 11.01.2012 20:07

Witam

Dziś zaprezentuje moją pierwszą paczkę na serwer FreeForAll .


Proszę o wyrozumiałość .


Plugin służący do robienia Screen Shotów nie został wgrany celowo .





Plugins.ini
ad_manager.amxx ; Widoczne reklamy na czacie .
admin_check.amxx ; Gdy wpiszemy na say /admin pojawi sie lista administratorow online .
admin_freelook.amxx ; Administrator widzi wszystko .
admin_spec_esp.amxx ; ESP dla administratora by lepiej wykrywalo sie cheaterow .
adminlisten.amxx ; Administrator widzi wszystkie rozmowy na czacie .
bulletdamage.amxx ; Widoczne obrazenia obok celownika .
bcd_hudtimer.amxx ; Czas wyswietlany w HUD do wybuchu bomby .
parachute.amxx ; Spadochron dla kazdego gracza .
unbanmenu.amxx ; Menu do odbanowywania gracza .
mutemenu.amxx ; Menu dla gracza by mogl wyciszyc innego gracza /mute .
ReasonKicker.amxx ; Powody przy wykopaniu gracza z serwera .
runplanting.amxx ; Podkladanie bomby w ruchu .
polski_cs.amxx ; Wszystkie napisy po polsku .
afkbombtransfer.amxx ; Jezeli gracz jest AFK dostaje pake najblizszy aktywny gracz .
realnadedrops.amxx ; Po smierci wypadaja z ciebie wszystkie bronie razem z granatami .
flash.amxx ; Wyswietla informacje kto cie oslepil .
sillyc4.amxx ; Umozliwia podkladanie paki na scianie .
auto_reload.amxx ; W nowej rundzie masz preladowana bron .
hpk.amxx ; Automatyczne wyrzycanie z serwera za ping +120 .
wybor_interpu.amxx ; Wybor interpu bez opcji EXIT .
Allow_round_finish.amxx ; Daje dokaczyc runde .
ptb.amxx ; Przerzuca graczy do innych teamow .
galileo.amxx ; System zmiany mapy .

Amxx.cfg :

// AMX Mod X Configuration File
echo Executing AMX Mod X Configuration File

// Default access for all non admin players (see users.ini for access details)
//
// Default value: "z"
amx_default_access "z"

// Name of setinfo which should store a password on a client (you should change this)
// Note: Always prefix the field with an underscore (aka: "_")
// (Example: setinfo _pw "password")
//
// Default value: "_pw"
amx_password_field "_pw"

// Mode of logging to a server
// 0 - disable logging, players won't be checked (and access won't be set)
// 1 - normal mode which obey flags set in accounts
// 2 - kick all players not on list
//
// Default value: 1
amx_mode 1

// Show admins activity
// 0 - disabled
// 1 - show without admin name
// 2 - show with name
//
// Default value: 2
amx_show_activity 2

// Frequency in seconds and text of scrolling message
//
// Default value: "Welcome to %hostname% -- This server is using AMX Mod X" 600
amx_scrollmsg "Welcome to %hostname% -- This server is using AMX Mod X" 600

// Center typed colored messages (last parameter is a color in RRRGGGBBB format)
//
// Default values: "Welcome to %hostname%" "000255100"
//				 "This server is using AMX ModX\nVisit http://www.amxmodx.org" "000100255"
amx_imessage "Welcome to %hostname%" "000255100"
amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000100255"

// Frequency in seconds of colored messages
//
// Default value: 180
amx_freq_imessage 180

// Ban times for the main ban menu (amx_banmenu)
// Use 0 for permanent ban
// Default values: 0 5 10 15 30 45 60
amx_plmenu_bantimes 0 5 10 15 30 45 60

// Slap damage amounts for the main slap menu (amx_slapmenu)
// Slay is automaticall inserted as the first option
// Default values: 0 1 5
amx_plmenu_slapdmg 0 1 5

// Set in seconds how fast players can chat (chat-flood protection)
//
// Default value: 0.75
amx_flood_time 0.75

// Amount of slots to reserve.
//
// Default value: 0
amx_reservation 0

// If you set this to 1, you can hide slots on your server.
// If server "full" of public slots and slots hidden, you must manually connect with connect console command
//
// Default value: 0
amx_hideslots 0

// Displaying of time remaining
// a - display white text on bottom
// b - use voice
// c - don't add "remaining" (only in voice)
// d - don't add "hours/minutes/seconds" (only in voice)
// e - show/speak if current time is less than this set in parameter
//
// Default value: "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"
amx_time_display "ab 1200" "ab 600" "ab 300" "ab 180" "ab 60" "bcde 11"

// Announce "say thetime" and "say timeleft" with voice, set to 0 to disable.
//
// Default value: 1
amx_time_voice 1

// Minimum delay in seconds between two voting sessions
//
// Default value: 10
amx_vote_delay 10

// How long voting session goes on
//
// Default value: 10
amx_vote_time 10

// Display who votes for what option, set to 0 to disable, 1 to enable.
//
// Default value: 1
amx_vote_answers 1

// Some ratios for voting success

// Default value: 0.40
amx_votekick_ratio 0.40

// Default value: 0.40
amx_voteban_ratio 0.40

// Default value: 0.40
amx_votemap_ratio 0.40

// Default value: 0.02
amx_vote_ratio 0.02

// Max. time to which map can be extended
//
// Default value: 90
amx_extendmap_max 90

// Step for each extending
//
// Default value: 15
amx_extendmap_step 15

// If you set this to 0, clients cannot chose their language, instead they use
// whatever language the server is configured to use.
//
// Default value: 1
amx_client_languages 1

// Plugin Debug mode
// 0 - No debugging (garbage line numbers)
// 1 - Plugins with "debug" option in plugins.ini are put into debug mode
// 2 - All plugins are put in debug mode
// Note - debug mode will affect JIT performance
//
// Default value: 1
amx_debug 1

// Plugin MultiLingual Debug
// To debug a language put its 2 letter code between quotes ("en", "de", etc)
// "" means disabled
//
// Default value: ""
amx_mldebug ""

//
// Beginning of Counter-Strike package specific configurations.
//

// Rank mode
// 0 - by nick
// 1 - by authid
// 2 - by ip
//
// Default value: 1
csstats_rank 1

// Max size of the stats file
//
// Default value: 3500
csstats_maxsize 3500

// Whether or not to rank bots with csstats - set to 1 to rank bots, 0 otherwise.
//
// Default value: 0
csstats_rankbots 0

// Duration of HUD-statistics
//
// Default value: 12.0
amx_statsx_duration 12.0

// HUD-statistics display limit relative round freeze end
// Negative time will clear the HUD-statstics before the round freeze time has ended
//
// Default value: -2.0
amx_statsx_freeze -2.0

Reason Kicker

amx_kick_r1 "Kampisz"
amx_kick_r2 "Obrazasz"
amx_kick_r3 "Kultura"
amx_kick_r4 "Utrudnianie gry innym"
amx_kick_r5 "Nie krzyc przez mikrofon"
amx_kick_r6 "Cele Mapy!"
amx_kick_r7 "Opanuj swoje emocje"

Mini Bans

amx_minibans_forum "LINK DO STORNY SERWERA" // okresla forum na ktorym mozna zlozyc zazalenie
amx_minibans_hudmsg "1" // okresla czy pokazywac zielony napis na hud
amx_minibans_moreinfo "0" // dla developerow, loguje wiecej informacji
amx_minibans_logs "1" // wlacza / wylacza logi
amx_minibans_logstype "1" // rodzaj logow, 1 - loguje w logach amxx, 2 - loguje w oddzielnym pliku
amx_minibans_kickdelay "10.0" // czas, po jakim od odtrzymaniu bana gracz zostanie wykopany
amx_minibans_bantype "0" // na co banować graczy? 0 - wykryj automatycznie, 1 - na ip, 2 - na steamid
amx_minibans_bantimes 0 15 30 45 60 180 1440 10080

amx_minibans_reason "Wrzuc Screeny!"
amx_minibans_reason "Cheatujesz"
amx_minibans_reason "Kampisz"
amx_minibans_reason "Obrazasz"
amx_minibans_reason "Cele Mapy"
amx_minibans_reason "Kultura"
amx_minibans_reason "Mikrofon 16+/mutacja"

Bullet Damage

amx_bulletdamage_recieved "1"  // 1 - włącza, 0 - wyłacza pokazywanie otrzymanych obrażeń.
amx_bulletdamage "2"  // 0 - plugin wyłączony, 1 - pokazuje zadane obrażenia, 2 - pokazuje zadane obrażenia, ale nie przez ściane

Reload

amx_autoreload 1/0 - włączenie/wyłączenie pluginu.

Galileo

amx_extendmap_max 90 //Maksymalny czas jaki mapa może być grana. Jeśli gracze będą wybierać przedłużenie mapy. Tylko do tego czasu będzie to możliwe.

amx_extendmap_step 15 //ile mapa ma być przedłużana jeśli gracze wybiorą ta opcje (w minutach)

gal_cmd_votemap 0 // Jaki powinny działac wzykłe komendy HL dotyczące Vota 1- Wyłączone 0- wyłączone

gal_cmd_listmaps 2 // Jak ma się zachowywać komenda listmaps
// 0 - disable
// 1 - behave normally
// 2 - behave the same as the "gal_listmaps" command (galileo default)
gal_banrecent 3 // Ile map ostatnio granych jest niedozwolonych w Vote


gal_banrecentstyle 1 // jak maja być wyświetlane mapy po wpisaniu recentmaps
// 1 - all maps on one line
// 2 - each map on a separate line

gal_rtv_commands 3 // na jak komenda ma reagować plugin przy rtv
//1- Rockthevote
//2-rtv
//3 dynamiczna

gal_rtv_wait 10
//ile czasu po starcie mapy może być rozpoczęte rtv

gal_rtv_ratio 0.60
//Ile % graczy musi wpisać rtv żeby zostało odpalone.

gal_nom_playerallowance 2 //ile nominacji może zrobić każdy gracz

gal_nom_mapfile mapcycle.txt// skąd maja być sczytywane mapy

gal_nom_prefixes 0
// prefix przy mapie wymagany?

gal_nom_qtyused 0 // ile nominacji ma być używanych w następnym głosowaniu.

//Glosowanie rozstrzygające następuje wtedy kiedy żadna z map nie otrzyma 50% w normalnym glosowaniu. Wtedy dawane są dwie z największym %

gal_runoff_enabled 1
//Mozliwe glosowanie rozstrzygające

gal_runoff_duration 15
//po ilu sekundach ma się rozpaczać

gal_vote_weight 1
//Czy ma być większa waga głosu admina?

gal_vote_weightflags y
//Flaga z jaka admin ma większy głos (dowolna)

gal_endonround 1
//Ma czekać do skończenia rundy ze zmianą mapy?

gal_vote_showstatus 1
// postęp głosowania ma być pokazywany gracza?
//0-nigdy
//1- po zagłosowaniu
//2- zawsze

gal_vote_showstatustype 2
//Jak ma być to przedstawiane gracza
//1- liczba
//2- procenty na mapie


gal_srv_start 3
// jeśli serwer się zrestartuje lub będzie miał krasza jak ma reagować plugin
//0- nic nie robi
//1- zmienia mapę na ta przed restartem
//2- zmienia mapę na ta która powinna być wybrana
//3- robi Vote
//4- zmienia na jedna z nominowanych

gal_endofmapvote 1

gal_listmaps_paginate 10 // ile map na stronie ma być pokazywanych po użyciu gal_listmaps

gal_vote_mapchoices 5
//Ile map ma być dawanych do vote

gal_vote_duration 15 // ile sekund powinien trwać vote

gal_vote_mapfile mapcycle.txt // skąd ma pobierać mapy

gal_vote_expirationcountdown 1
gal_vote_uniqueprefixes 0

gal_vote_announcechoice 1 //pokazuje jaka mapę wybrał gracz?
//1- tak
//0- Nie

gal_emptyserver_wait 0
// ile sekund ma czekać zanim uruchomi emptyserwer mapcykle,

gal_emptyserver_mapfile emptycycle.txt
// Plik z którego czyta empty serwer mapcyke

gal_sounds_mute 0
// wycisza dane dźwięki
// 1 - "get ready to choose a map"
// 2 - "7", "6", "5", "4", "3", "2", "1"
// 4 - "time to choose"
// 8 - "runoff voting is required"


Pobierz :

http://www66.zippysh...77474/file.html

http://www.multiupload.com/PMWT79ZDNR


Dziękuję za poświęcenie czasu na moją paczkę .
  • +
  • -
  • 17