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
 

ManiaQ - zdjęcie

ManiaQ

Rejestracja: 19.02.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 07.04.2016 21:28
-----

#1081 Autoresponder/Advertiser + tag [ you]

Napisane przez bicek w 11.02.2008 22:45

Autoresponder/Advertiser

Opis:
Plugin który spamuje co jakiś czas na czacie say, przydatny przy reklamie forum lub informowaniu graczy na serwerze...
Dołączona grafika

Instalacja:
Plik ad_manager.amxx wrzucamy do addons/amxmodx/plugins
ad_manager.sma wrzucamy do addons/amxmodx/scripting
a advertisements.ini do addons/amxmodx/configs
standardowo do pliku addons/amxmodx/configsplugins.ini dopisujemy:
ad_manager.amxx

Konfiguracja:
otwieramy plik advertisements.ini dopisujemy nasze informacje które chcemy aby plugin pokazywał np.
!t amxx.pl !n polski support !g AMX Mod X
taki wpis w grze będzie wyglądał tak: amx.pl polski support AMX Mod X
Kolory:
!t - kolor drużyny, dla tt czerwony, dla ct niebieski i dla specra biały
!g - po prostu zielony
!n - standardowy kolor w say

[uwaga="Abes Mapper"]

Wersja z działającą komendą zrobiona przez DarkGL

[you]

Dołączona grafika

Proszę moda o dodanie do 1 posta.


Załączony plik  ad_manager.amxx   16 KB  1392 Ilość pobrań

Załączony plik  ad_manager.sma   9,06 KB  5531 Ilość pobrań
  ad_manager.amxx
[/uwaga]

Załączone pliki




#262415 Kontakt z adminami. (NOWY)

Napisane przez ExTaza?! w 24.06.2011 16:39

Witam otóż wpadlem na pomysl zeby zrobić plugin z kontaktami adminow:)
Rozni sie on od pozostalych gdyż jest to tylko plik! Bez żadnych .txt ! Edytować Kontakty można w pliku .sma . Pokaze poniżej jak zmieniac na wlasne. Powstaly 2 wersje tego pluginu z Reklama w say i bez reklamy wiec do wyboru:)Ale kilku kumpli mi powiedzialo ze REKLAMA sie nie wyswietla wiec mozecie pomoc poprawic KOD.
Jest to dosc dluga lektura ale zeby zainstalowac plugin z danymi swoich adminow trzeba poczytac do konca ;) Pluginy w zalczanikach.

SS
1
Spoiler

2
Spoiler


Z reklama:

Spoiler


Bez reklamy:

Spoiler


Instalacja standardowa

kontakt.amxx do adons/amxmodx/plugins
kontakt.sma do adons/amxmodx/sripting
Do plugins.ini w adons/amxmodx/config na koncu dopisz kontakt.amxx

Wymagane moduly
colorchat


Edycja:

na pewno kazdy bedzie chcial edytowac kontakty na wlasne. Nie każdy wie jak dlatego to pokażę.

Odszukaj:
menu_additem(menu, "pm161@","0");

Zamien na:
menu_additem(menu, "***","0");


Gdzie w miejsce "***" Wstaw swoje dane.

Odszukaj:
case 0: ColorChat(id,GREEN,"[Kontakt]^x01 GG: 10088886^x03 |^x04 Tel. 723009684^x03");

Zamien na:

case 0: ColorChat(id,GREEN,"[Kontakt]^x01 GG: ***^x03 |^x04 Tel. ***^x03");


Gdzie w miejsce "***" Wstaw swoje dane.

I tak do każdego admina. Gdy masz np 20 adminów robisz:

menu_additem(menu, "Next Admin","20");



case 20: ColorChat(id,GREEN,"[Kontakt]^x01 GG: NUMER^x03 |^x04 Tel. NUMER^x03");


- 20 zamiast 20 daj liczbe porządkowa "1,2,3,4,5,6,7,8..."

Dodatkowa edycja dla Kontakt z Reklama

Odszukaj:
case 0: client_print(0, print_chat, "[KONTAKT]^x01 Chcesz znac kontakt z Adminami? Wpisz /Kontakt.");

Zamien na:

case 0: client_print(0, print_chat, "[KONTAKT]^TWOJ TEKST.");

Linijka:
set_task(36.0, "Pomoc");

Jest odpowiedzialna za czas co ile ma sie wyświetlać reklama w say. Gdy chcemy zmienic, liczbe 36.0 zmieniamy na dowolna.

@UP.Instrukcja z Quote na Code. (Bardziej czytelna)

Załączone pliki


  • +
  • -
  • 8


#124894 AMXBans 5.1b

Napisane przez Szyfrant w 10.04.2010 21:25

AMXBans 5.1b


Na wstępie jestem zmuszony napisać pewną informacje dla użytkowników AMXBans'a.

Błagam, nie instalujcie AMXBans'a 5.1 by d3f3nd3er gdyż nie jest to żadne 5.1 tylko 5.0 - Stara wersja z wieloma bugami.
Ze strony projektu AMXBans.de od dawna można ściągnąć najnowszą wersje 5.1 , a kilkanaście dni temu doszła poprawka i mamy 5.1b.


-------------------------------------------------------------------------------------




UWAGA!! Każda z wersji, które poniżej podaje ma pełne spolszczenie Interfejsu. (Plik lang.Polski.php)

AMXBans 5.1b


Jest to wersja 5.1b bez spolszczonego pliku instalacyjnego (setup.php).

Załączony plik  AMXBans 5.1b Bez PL Instalacji.zip   4,41 MB  1815 Ilość pobrań



AMXBans 5.1b + Instalacja PL


Jest to wersja 5.1b plus dodatkowo Instalacja w języku polskim. Dotychczas nie była dostępna wersja z polskim instalatorem, lecz kilka dni temu podjąłem się tego ... z nudów ;] (Został przetłumaczony,ale nie do końca plik setup.php )

UWAGA! Mogą się pojawić jakieś bugi lecz na razie nie zauważyłem żadnego
TESTOWANE NA WINDOWSIE NIE NA LINUXIE


Wersja przeznaczona szczególnie dla osób całkowicie zielonych w instalacji, ale każdy sobie może ją wrzucić.


Załączony plik  AMXBans 5.1b PL Instalacja.zip   4,42 MB  2665 Ilość pobrań



Dodatki

Dla tych co są zieloni w AMXBans'ie i tych, którzy nie znają lub boją się użyć niektórych opcji polecam mój Poradniczek

[Poradnik] AMXBANS - Jak i Co? - Nieoficjalny polski support AMX Mod X

------------

Osobny, samotny pliczek spolszczenia interfejsu :

include/lang/lang.Polski.php

Załączony plik  include.rar   4,9 KB  763 Ilość pobrań


------------

Spolszczony plik instalacyjny :

admin/setup.php

Załączony plik  admin.rar   10,99 KB  733 Ilość pobrań


Nota:
W wersji 5.1b zostały poprawione błędy związane z bezpieczeństwem.

Pliki które zostały poprawione to:

/ban_details.php
/ban_details_ex.php
/live.php
/admins_list.php
/getdemo.php
/admin/add_ban.php
/unavailable.php
/admin/log_search.php
/motd_details.php

Więcej informacji nie ma.

Pozdrawiamy
Szyfrant & MisieQ
  • +
  • -
  • 13


#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


#236897 Asysta przy zabiciu

Napisane przez ;(( w 14.04.2011 20:06

Kill assist v1.2b
Author: Digi (aka Hunter-Digital)


Dołączona grafika

Kiedy gracz zostanie zabity, ten plugin sprawdza, czy inny gracz z tego samego teamu, nie wyrządził szkód, tak aby mógł być współsprawcą zabicia i ten gracz otrzyma również frag.

Dołączona grafika

Standardowa - Instalacja Pluginów AMXX - AMXX.pl: Support AMX Mod X

Dołączona grafika

amx_killassist_enable 0/1/2 (domyślnie: 1)
0 - Wyłączony/Włączony / 1 - z DeathMsg / 2 - Włącz wiadomości na HUD

amx_killassist_mindamage 1-9999 (domyślnie: 50)
Ile obrażeń musi zadać drugi gracz aby był współsprawcą zabicia

amx_killassist_givefrags 0 / 1 (domyślnie: 1)
Czy dać graczowi asystującemu fragi

amx_killassist_givemoney 0-16000 (domyślnie: 300)
Czy dać graczowi asystującemu pieniądze za zabicie, 0 - nie daje, 1 lub więcej odpowiada za to ile ma dawać pieniędzy

amx_killassist_onlyalive 0 / 1 (domyślnie: 0)
Czy tylko żywi gracze mogą być współsprawcami przy zabiciu innych graczy

Dołączona grafika

Dołączona grafika
Dołączona grafika
Dołączona grafika

(Autor przeprasza za nazwy botów na SSach)

Dołączona grafika

Wymagane moduły:

- hamsandwich
- cstrike
- engine
- fun

Download w załączniku

źródło: forums.alliedmods.net

Załączone pliki


  • +
  • -
  • 48


#236169 Breakable Ent (Fakemeta)

Napisane przez diablix w 13.04.2011 00:56

Byt który da sie rozwalić. Przykładem jest naprzykład szyba na cs_militia czy radio na cs_italy

Opis zamieszczam w kodzie

#include <amxmodx>
#include <fakemeta>
#define VERSION "0.1"
#define fm_DispatchSpawn(%1) dllfunc(DLLFunc_Spawn, %1)

new const gszFuncBreakable[] = "func_breakable"; //KLASA DLA CREATE_ENTITY
new const gszClassname[] = "breakable_ent"; //NASZA KLASA DLA NOWEGO BYTU
new const gszModel[] = "models/breakable.mdl"; //NASZ MODEL BYTU

public plugin_init(){
register_plugin("Breakable ent", VERSION, "diablix");
register_clcmd("func_breakable", "createBreakable");
}

public plugin_precache(){
engfunc(EngFunc_PrecacheModel, gszModel); //MODEL DLA NASZEGO BYTU
engfunc(EngFunc_PrecacheModel, "models/ceilinggibs.mdl"); //MODEL DLA UZYTEGO MATERIALU (WIADOMOSCI TE_BREAKMODEL [message_const.inc])
engfunc(EngFunc_PrecacheSound, "debris/bustceiling1.wav"); //DZWIEK DLA UZYTEGO MATERIALU
engfunc(EngFunc_PrecacheSound, "debris/bustceiling2.wav");// --''--
}

public createBreakable(id){
new vOrigin[3], Float:fOrigin[3];//TWORZYMY ZMIENNE O JEDNOSTCE INT I FLOAT
get_user_origin(id, vOrigin, 3); //POBIERAMY ORIGIN NUMER 3 (WEAPON AIMING) W JEDNOSTCE INT
IVecFVec(vOrigin, fOrigin); //KONWETRUJEMY INT NA JEDNOSTKE FLOAT

new iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, gszFuncBreakable)); //TWORZYMY ENT
fm_set_kvd(iEnt, "health", "400", gszFuncBreakable); //NADAJEMY HP DLA WIADOMOSCI TE_BREAKMODEL
fm_set_kvd(iEnt, "material", "4", gszFuncBreakable); //NADAJEMY TYP MATERIALU DLA WIADOMOSCI TE_BREAKMODEL
fm_DispatchSpawn(iEnt);

set_pev(iEnt, pev_classname, gszClassname); //NADAJEMY CLASSNAME
set_pev(iEnt, pev_solid, SOLID_BBOX); //NADAJEMY ZEBY BYT BYL SOLIDNY
set_pev(iEnt, pev_movetype, MOVETYPE_NONE); //USTAWIAMY TYP RUCHU

engfunc(EngFunc_SetModel, iEnt, gszModel); //USTALAMY MODEL
set_pev(iEnt, pev_size, {1.0, 1.0, 1.0}, {1.0, 1.0, 1.0}); //USTALAMY ROZMIAR
set_pev(iEnt, pev_origin, fOrigin); //USTALAMY POZYCJE
}

//STOCK KVD (DLA SZYBSZEGO EFEKTU)
stock fm_set_kvd(entity, const key[], const value[], const classname[] = ""){
if (classname[0])
set_kvd(0, KV_ClassName, classname);

else{
new class[32];
pev(entity, pev_classname, class, sizeof class - 1);
set_kvd(0, KV_ClassName, class);
}

set_kvd(0, KV_KeyName, key);
set_kvd(0, KV_Value, value);
set_kvd(0, KV_fHandled, 0);

return dllfunc(DLLFunc_KeyValue, entity, 0);
}


Pełny spis materiałów :

material(choices) :"Material type" : "" =
[
//* <b>Gibs:</b> models/glassgibs.mdl
//* <b>Break noise:</b> debris/bustglassX.wav
//* <b>Bounce noise:</b> debris/glassX.wav
"": "Glass"
//* <b>Gibs:</b> models/woodgibs.mdl
//* <b>Break noise:</b> debris/bustcrateX.wav
//* <b>Bounce noise:</b> debris/woodX.wav
1: "Wood"
//* <b>Gibs:</b> models/metalplategibs.mdl
//* <b>Break noise:</b> debris/bustmetalX.wav
//* <b>Bounce noise:</b> debris/metalX.wav
2: "Metal"
//* <b>Gibs:</b> models/fleshgibs.mdl
//* <b>Break noise:</b> debris/bustfleshX.wav
//* <b>Bounce noise:</b> debris/fleshX.wav
3: "Flesh"
//* <b>Gibs:</b> models/cindergibs.mdl
//* <b>Break noise:</b> debris/bustconcreteX.wav
//* <b>Bounce noise:</b> debris/concreteX.wav
4: "Cinder Block"
//* <b>Gibs:</b> models/ceilinggibs.mdl
//* <b>Break noise:</b> debris/bustceilingX.wav
//* <b>Bounce noise:</b> none
5: "Ceiling Tile"
//* <b>Gibs:</b> models/computergibs.mdl
//* <b>Break noise:</b> debris/bustmetalX.wav
//* <b>Bounce noise:</b> debris/woodX.wav
//* <b>Note:</b> Generates sparks when damaged.
6: "Computer"
//* <b>Gibs:</b> models/glassgibs.mdl
//* <b>Break noise:</b> debris/bustglassX.wav
//* <b>Bounce noise:</b> debris/glassX.wav
//* <b>Note:</b> Makes ricochet noises when damaged.
7: "Unbreakable Glass"
//* <b>Gibs:</b> models/rockgibs.mdl
//* <b>Break noise:</b> debris/bustconcreteX.wav
//* <b>Bounce noise:</b> debris/concreteX.wav
8: "Rocks"
]


  • +
  • -
  • 7


#236251 Italy Chicken killer

Napisane przez Muzzi w 13.04.2011 11:04

Brakowało przy pobieraniu cvara "".
Poprawione, tym errorem się nie przejmój.


#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#pragma semicolon 1

#define PLUGIN_VERSION "1.0.0"

#define HUD_COLOR_R 255
#define HUD_COLOR_G 0
#define HUD_COLOR_B 0

new gCvarEnabled;
new gCvarChickenKillFrags;
new gCvarChickenKillMoney;
new gCvarChickenKillShowKiller;
new gCvarChickenKillSlapDamage;
new gCvarChickenKillDamage;
new gCvarChickenHP;

new gHudSyncCreate;

new const gChickenModelIndexes[][] =
{
"*63",
"*66"
};

new const gChickenKilledSound[] = "misc/killChicken.wav";

public plugin_init()
{
register_plugin( "Italy Chicken Killer", PLUGIN_VERSION, "tuty" );

new szMapName[ 10 ];
get_mapname( szMapName, charsmax( szMapName ) );

if( equali( szMapName, "cs_italy" ) )
{
RegisterHam( Ham_TakeDamage, "func_breakable", "bacon_BreakableKilled", 1 );

gCvarEnabled = register_cvar( "italy_chicken_kill", "1" );
gCvarChickenKillFrags = register_cvar( "italy_chicken_frags", "2" );
gCvarChickenKillMoney = register_cvar( "italy_chicken_money", "50" );
gCvarChickenKillShowKiller = register_cvar( "italy_chicken_showkiller", "1" );
gCvarChickenKillSlapDamage = register_cvar( "italy_chicken_dm", "50" );
gCvarChickenKillDamage = register_cvar( "italy_chicken_kill_dm", "100");
gCvarChickenHP = register_cvar( "italy_chicken_killer_hp", "30" );
gHudSyncCreate = CreateHudSyncObj();
}

else
{
pause( "a" );
log_amx( "# [AMXX] :: Plugin jest zapauzowany poniewaz gramy teraz: <%s>.", szMapName );
}
}

public plugin_precache()
{
precache_sound( gChickenKilledSound );
}

public bacon_BreakableKilled( this, idinflictor, idattacker, Float:damage, damagebits )
{
if( get_pcvar_num( gCvarEnabled ) != 0 && entity_get_float( this, EV_FL_health ) <= 0 )
{
new szModelIndex[ 12 ];
entity_get_string( this, EV_SZ_model, szModelIndex, charsmax( szModelIndex ) );

new szNameIndex[ 32 ];
get_user_name( idattacker, szNameIndex, charsmax( szNameIndex ) );

for( new i = 0; i < sizeof( gChickenModelIndexes ); i++ )
{
if( equal( szModelIndex, gChickenModelIndexes[ i ] ) )
{
switch(random_num(1,5))
{
case 1:
{
entity_set_float( idattacker, EV_FL_frags, float( get_user_frags( idattacker ) + get_pcvar_num( gCvarChickenKillFrags ) ) );
cs_set_user_money( idattacker, cs_get_user_money( idattacker ) + get_pcvar_num( gCvarChickenKillMoney ), 1 );
}
case 2:
{
entity_set_float( idattacker, EV_FL_frags, float( get_user_frags( idattacker ) + get_pcvar_num( gCvarChickenKillFrags ) ) );
cs_set_user_money( idattacker, cs_get_user_money( idattacker ) + get_pcvar_num( gCvarChickenKillMoney ), 1 );
}
case 3:
{
user_slap( idattacker, get_pcvar_num( gCvarChickenKillSlapDamage ) );
}
case 4:
{
user_slap( idattacker, get_pcvar_num( gCvarChickenKillDamage ) );
}
case 5:
{
set_user_health(idattacker, get_user_health(idattacker) + get_cvar_num( "gCvarChickenHP" ) );
}

}

if( get_pcvar_num( gCvarChickenKillShowKiller ) != 0 )
{
set_hudmessage( HUD_COLOR_R, HUD_COLOR_G, HUD_COLOR_B, -1.0, 0.72, 2, 6.0, 4.0 );
ShowSyncHudMsg( 0, gHudSyncCreate, "|====================|^n| !! %s zabil kuraka!! |^n|====================|", szNameIndex );

client_cmd( 0, "speak ^"%s^"", gChickenKilledSound );
}
}
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

  • +
  • -
  • 1


#235796 Italy Chicken killer

Napisane przez Muzzi w 12.04.2011 10:31

Dodaj do includów
include <fun>
Powinno zadziałać.
  • +
  • -
  • 1


#235720 Dopalacze 2.0 Problem

Napisane przez EufooZ w 11.04.2011 21:53

Jeżeli chcesz Hama tylko do słabych to do każdego publica z dopalaczami wystarczyło dopisać
id, idinflictor, idattacker, Float:damage, damagebits

(załącznik : dopalacze2.1__1.sma)
Jeżeli do każdego z dopalaczy Hama to załącznik : dopalacze2.1__2.sma

Nie testowałem :>

Dodano 11 kwiecień 2011 - 21:56:
Oczywiście na końcu publica
return HAM_SUPERCEDE


@@UP
Za pomocą niego chce atakować, tak jest przynajmniej zapisany Ham :)

Załączone pliki


  • +
  • -
  • 2


#235442 Italy Chicken killer

Napisane przez Muzzi w 10.04.2011 22:20

Proszę Bardzo, troszkę posiedziałem nad kodem :> Błędy z klamrami.
Jest już późno wiec mogłem się w czymś pomylić + nie zrobiłem wszystkiego co pisałeś w komentarzach.


/* Plugin generated by AMXX-Studio */

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




#define PLUGIN "Italy Chicken Killer"
#define VERSION "1.5"
#define AUTHOR "ManiaQ"

new ickhp, ickdmg, ickmoney, loss, ickmoney2
new const cks[] = "misc/killChicken.wav";
new name[32];


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_TakeDamage, "player","dmg",0);

loss = random_num(0,4)
ickhp = register_cvar( "ick_hp", "30" ); // ILE HP DODAJE ZA ZABICIE KURCZAKA
ickdmg = register_cvar( "ick_dmg", "50" ); // ILE HP ZABIERA NAM ZA ZABICIE KURCZAKA
ickmoney = register_cvar( "ick_money", "1000" ); // ILE PIENIEDZY ZABIERA ZA ZABICIE KURCZAKA
ickmoney2 = register_cvar( "ick_money2", "2000" ); // ILE $ DOSTAJEMY ZA ZABICIE KURCZAKA
new szMapName[ 10 ];
get_mapname( szMapName, charsmax( szMapName ) );

if( !equali( szMapName, "cs_italy" ) )
{
pause( "a" );
log_amx( "# [ICK] :: Plugin zostal zastopowany poniewaz gramy mape <%s>.", szMapName ); // zapozyczone z ITALY CHICKEN KILLER 1.0
}
}

public plugin_precache()
{
precache_sound( cks );
}

public dmg( this, idinflictor, idattacker, Float:damage, damagebits )
{
get_user_name(idattacker,name,sizeof(name))
switch(loss)
{
case 0:
{
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(idattacker, "%s dostal od kurczaka dodatkowe HP!", name);
client_print(idattacker,print_chat,"Otrzymales HP od kurczaka!");
//set_user_health(idattacker, get_user_health(idattacker) + get_cvar_num("ickhp")) - nie lepiej tak ?
//set_pev(idattacker, pev_health, pev(idattacker, pev_health)+30.0); // CHCIALBYM TUTAJ CVARA DO icthp (ict_hp 30)//

}
case 1:
{
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(idattacker, "%s zostal podziobany przez kuraka!", name);
client_print(idattacker,print_chat,"Kurczak zabral Ci 40HP!"); // DA RADE WSTAWIC CVARA DO "KURCZA ZABRAL CI X" X- CVAR//
user_slap( idattacker, get_pcvar_num( ickdmg ) );
}
case 2:
{
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(idattacker, "%s oddal szmal kurczakowi!", name);
client_print(idattacker,print_chat,"Oddales kurczakowi 1000$!"); // DA RADE WSTAWIC CVARA DO "ODDALES KURCZAKOWI X" X- CVAR//
new money = cs_get_user_money(idattacker);
cs_set_user_money(idattacker, money - ickmoney);



}
case 3:
{
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(idattacker, "%s zostales zjedzony przez kurczaka!", name);
client_print(idattacker,print_chat,"Igrales z kurczakiem, a on Cie zjadl!");
user_kill( idattacker );
}


case 4:
{
set_hudmessage(0, 255, 0, -1.0, -1.0)
show_hudmessage(idattacker, "%s otrzymal od kurczaka 1000$!", name); // DA RADE WSTAWIC CVARA DO "%s otrzymal od kurczaka X" X- CVAR//
client_print(idattacker,print_chat,"Kurcza tym razem byl przychylny :D!");
cs_set_user_money( idattacker, cs_get_user_money( idattacker ) + get_pcvar_num( ickmoney2 ), 1 );

}
}
return HAM_IGNORED;
}

  • +
  • -
  • 1


#235178 Italy Chicken killer

Napisane przez EufooZ w 10.04.2011 14:01

Tutaj mały błędzik:
RegisterHam(Ham_TakeDamage, "player","dmg,0);

na
RegisterHam(Ham_TakeDamage, "player","dmg",0);


Może do publica dmg wrzucić te losowania ?

Takie cos:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <4fun>

#define PLUGIN "Italy Chicken Killer"
#define VERSION "1.5"
#define AUTHOR "ManiaQ"

new icthp, itcdmg, itcmoney, loss
new const cks[] = "misc/killChicken.wav";


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

RegisterHam(Ham_TakeDamage, "player","dmg",0);

loss = random_num(0,4)
icthp = register_cvar( "ict_hp", "30" ); // ILE HP DODAJE ZA ZABICIE KURCZAKA
ictdmg = register_cvar( "ict_dmg", "50" ); // ILE HP ZABIERA NAM ZA ZABICIE KURCZAKA
ictmoney = register_cvar( "ict_money", "1000" ); // ILE PIENIEDZY DOSTAJEMY ZA ZABICIE KURCZAKA

}
else
{
pause( "a" );
log_amx( "# [ICK] :: Plugin zostal zastopowany poniewaz gramy mape <%s>.", szMapName ); // zapozyczone z ITALY CHICKEN KILLER 1.0
}
}

public plugin_precache()
{
precache_sound( cks );
}

public dmg( this, idinflictor, idattacker, Float:damage, damagebits )
{
switch(loss)
{
case 0:
{
//losowanie czegos tam
}
case 1:
{
//losowanie czegos tam
}
case 2:
{
//losowanie czegos tam
}
case 3:
{
//losowanie czegos tam
}
case 4:
{
//losowanie czegos tam
}
}
return HAM_IGNORED;
}

  • +
  • -
  • 1


#234725 Paintball Shop

Napisane przez ELOS w 09.04.2011 08:07

Witam już kilka osób pisało do mnie w sprawie paintball shop który jest na moim serwie dziś wam go udostępniam za darmo.
Niestety zgubiłem sma nowszej wersji postaram się na nowo napisać ale myślę że to nie problem z tym co wam daje.

Dołączona grafika
Dodaje nam na serwer Paintball shop gdzie są 4 opcję do wyboru. Jak na screenie poniżej.

Dołączona grafika

Dołączona grafika
Niestety do grafiki musi być link nie wiem czemu nie mogę wstawić w img.
Dołączona grafika
#include <amxmodx>
#include <engine>
#include <cstrike>
#include <fun>

Dołączona grafika
Super Marker = P90
Wyrzutnia granatów = flash
Granat Wybuchowy = he
Granat Dymny = smoke

Jeżeli chciał by ktoś aby np Super Marker mogła kupić tylko osoba z ADMIN_LEVEL_H
Zmieniamy
menu_additem(menu, "Super Marker \yKoszt: \r6000$");//4
na
menu_additem(menu, "Super Marker \yKoszt: \r6000$", ADMIN_LEVEL_H);//4
W tedy mamy Super Marker za 6000$ tylko dla ADMIN_LEVEL_H czyli flagę t

Co do flag odsyłam TU

Dołączona grafika

say /sklep
say_team /sklep
say /shop
say_team /shop

say = pisanie do wszystkich członków gry standardowo "y"
say_team = pisanie do swojego teamu standardowo "u"

Dołączona grafika

Do plugins wrzucamy paintballshop.amxx
Do scrypting wrzucamy paintballshop.sma
Do plugin.ini dopisujemy paintballshop.amxx

Dołączona grafika

Załączony plik  paintballshop.sma   2,65 KB  1229 Ilość pobrań
  paintballshop.amxx
Załączony plik  paintballshop.amxx   3,58 KB  204 Ilość pobrań


Wszelkie błędy w pluginie oraz poradniku proszę kierować do mnie.
Jeżeli można chciał bym tym pluginem odpracować warny/warna.
  • +
  • -
  • 8


#230199 Challenge - wyzwania i nagrody

Napisane przez R3X w 26.03.2011 14:57

Challenge
v.0.6.1
Z powodu sposobu konfiguracji przeznaczony jest dla osób obeznanych z pisaniem własnych pluginów.
Zainteresowanych zapraszam do tematu: [Challenge] Gotowce i przykłady - AMXX.pl: Support AMX Mod X

Pomysłem zarzucił: Skull3D - Przeglądanie profilu - AMXX.pl: Support AMX Mod X

Dołączona grafika

Platforma do tworzenia wyzwań i nagradzania za ich spełniania. Używa bazy danych do gromadzenia statystyk graczy dla konkretnych broni i tylko tych, które wybierzemy. Oprócz tego sumuje czas spędzony na serwerze oraz zapisuje datę pierwszego połączenia, dzięki temu możemy wykryć kto gra długo / od dawna i też przypisać takim graczom jakiś bonus.

Można udostępnić graczom listę wyzwań:
Dołączona grafika

Przewidziałem 3 przypadki zapisywania statystyk:
  • statystyki broni standardowych
    • czyli zabicia z kałacha czy m4, DeathMsg łapane zawsze
  • statystyki broni niestandardowych
    • czyli zabicia z magicznych przedmiotów czy skilli, DeathMsg łapane zawsze tylko z użyciem Orpheu, bez tego modułu trzeba używać Ham_TakeDamage lub emessagebegin()
  • statystyki broni własnych
    • czyli staty za cokolwiek chcemy, sami dodajemy punkty funkcją ch_add_user_stats()

Wyzwania definiujemy w osobnym pluginie. Mogą one łączyć opisane wyżej przypadki, a także uwzględniać czas gry na serwerze.

Włączenie zapisywania statystyk danej broni to wywołanie w plugin_init()

challenge_uses_stats(wid);
np.
challenge_uses_stats(CSW_KNIFE);

oznacza, że plugin będzie zbierał informację o zabiciach z noża.

Pobranie zgromadzonych statystyk gracza umożliwia funkcja

ch_get_user_stats(id, wid, hs=0);

Od wersji 0.2 możemy dodawać własne pola statystyk, nie koniecznie związane z zabijaniem. Wśród przykładów dałem opcję zapisywania ilości rozbrojonych i podłożonych bomb (folder custom/).

Ważne
Skompilowanie z dołączeniem orpheu spowoduje łapanie wszystkich informacji o zabójstwach, bez nich zapisywane są tylko te wyrządzone Ham_TakeDamage lub z użyciem emessagebegin()
Sygnatury funkcji zapożyczone z Funkcja you] Advanced - AMXX.pl: Support AMX Mod X

Dołączona grafika
Standardowa


Opcje kompilacji

wersja 0.5 i starsze

Odkomentuj
//#define USING_ORPHEU
jeśli chcesz użyć modułu Orpheu (http://forums.allied...ad.php?t=103855)


Odkomentuj
//#define USING_DHUD
jeśli chcesz użyć efektów Dynamiczny HUD - AMXX.pl: Support AMX Mod X

Wygląda to mniej więcej tak: YouTube - Challenge DHUD.wmv

od 0.5.1
dostępne są 2 cvary: amx_challenge_useorpheu i amx_challenge_usedhud
aby użyć orpheu należy go zainstalować na serwerze i ustawić pierwszy cvar na 1
to samo z dhud, należy go zainstalować na serwerze i ustawić ten drugi cvar na 1

Dołączona grafika
Dane mogą być zapisywane na 2 sposóby:

SQLite (domyślnie)
  • w pliku na serwerze
  • wymaga odblokowanego modułu sqlite w modules.ini
  • plik bazy może zostać stworzony przez plugin tylko jeśli ma do tego prawo (chmod 600), możliwe, że trzeba będzie wrzuć pusty plik o podanej w cvarze nazwie na FTP

Ustawienia:
//SQLite
amx_challenge_sqltype 	"sqlite"
amx_challenge_host 	""
amx_challenge_user 	""
amx_challenge_pass 	""
amx_challenge_db 	"addons/amxmodx/data/challenge.db"
amx_challenge_prefix 	""


MySQL
  • osobny serwer bazy danych
  • wymaga odblokowanego modułu mysql w modules.ini
  • łatwiej o prezentację na stronie WWW i jest bardziej niezawodny

Ustawienia:
//MySQL
amx_challenge_sqltype 	"mysql"
amx_challenge_host 	"localhost"
amx_challenge_user 	"root"
amx_challenge_pass 	"root"
amx_challenge_db 	"challenge"
amx_challenge_prefix 	""


amx_challenge_save 1|2|3

  • typ zapisu
  • 1 - steamid
  • 2 - nick
  • 3 - ip

amx_challenge_list_available 0|1

  • włącz/wyłącz możliwość podglądu wyzwań, ustawienie na 0 blokuje komendę /challenge


amx_challenge_bots 0|1|2

  • zapisywanie statystyk botów
  • 0 - nie zapisu
  • 1 - tylko grające
  • 2 - wszystkie

amx_challenge_minplayers 0

  • wymagana ilość grających graczy na serwerze do zliczania statystyk


amx_challnege_usedhud 0

  • czy używać DHUD (jeśli dostępne)

amx_challnege_orpheu 0

  • czy używać Orpheu (jeśli dostępne)

Zmiany:

0.6.1
- poprawiona numeracja
- nowa funkcjonalność: możliwość podania koloru wiadomości
native challenge_show_custom_info(id, const szChallenge[], const szAward[], const iColor[3] = {255, 255, 255});

0.6.0
- poprawiona kolejka DHUD

0.5.2
- bugfix: plugin tworzył zbędny, kumulujący się plik temp.txt

0.5.1
- usunięty bug z motd po wyjściu z menu challenge
- nowy cvar: amx_challenge_minplayers
- nowy cvar: amx_challenge_useorpheu
- nowy cvar: amx_challenge_usedhud
- nowy natyw: challenge_get_state
- nowy natyw: ch_set_user_stats
- forward client_gain_point : można zablokować dodanie punkty zwracając PLUGIN_HANDLED

0.5
- możliwość tworzenia grup wyzwań
wystarczy je przypisać funkcją challenge_set_group() z tą samą nazwą grupy

0.4
- rozszerzone API
- nowy funkcja: client_data_loaded(id){} informuje o wczytaniu danych z bazy
- nowa funkcja: client_gain_point(id, wid, hs){} informuje o przyznaniu punktu


0.3.1
- informacje o zdobytych osiągnięciach (klient może wyłączyć je komendą /infooff)
- lista wyzwań i postęp: komenda /challenge

0.3
- współpraca z SQLite,

0.2.2
- bugfix, nie zliczało statów
- automatyczne zapisywanie niestandardowych broni do pliku

0.2.1
- wrzucało zbędne wpisy w logach, teraz już nie

0.2
- możliwa współpraca z Orpheu
- funkcja zmiany statystyk

0.1.2
- nie dodaje istniejącej już niestandardowej broni



Gotowe wyzwania:

Załączone pliki


  • +
  • -
  • 22


#220605 Puszka Pandory

Napisane przez Droso w 01.03.2011 17:03

Puszka / SKrzynka / Box Pandory

O pluginie:
Co to jest Puszka Pandory w cs?
Jest to skrzynka :D Kiedy ją otworzysz umrzesz ;)
Są różne effekty sound i sprites


zekStein++
Plugin version : 1.0.0


Modules :

- fakemeta
- hamsandwich

Komendy:
- !createpandora - zeby stworzyć Box Pandore (skrzynke) [Only For Admin / Tylko dla adminów] 1 na mape
- /pandora - informacje o Boxie Pandory


SS:
Dołączona grafika
Dołączona grafika

Instalacja:
Standardowa (modele spirte i sound też standard jak w folderach)


Download.:

Załączone pliki


  • +
  • -
  • 2


#200659 Advanced Bans

Napisane przez Pawlak093 w 28.12.2010 22:43

Advanced Bans (Real Time)
by Exolent
Version: 0.8.1



Dołączona grafika

  • Ten plugin działa z komendami amx_ban, amx_banip, amx_banid, amx_unban.
  • Działa w Realnym czasie na serwerze np: Kiedy zbanujesz kogoś na 10 minut ta osoba po 10 minutach będzie mogła wejść.
  • Zawiera listę zbanowanych graczy.
  • Nie używa banned.cfg i listip.cfg. Tworzy własny plik i w nim zapisuje bany.
  • W pliku zapisuje kiedy admin zbanował, steamid admina, powód bana, czas, nick gracza, SteamID lub IP gracza zbanowanego, i czas pozostały do unbana.
  • Wczytuje poprzednie bany z banned.cfg and listip.cfg.
  • Daje możliwość wpisania własnego powodu bana.
  • WSZYSTKIE BANY/UNBANY są LOGOWANE (amxmodx/logs) pod nazwą BAN_HISTORY_MMDDYYYY.log (MM = miesiąc, DD = dzień, YYYY = rok)
  • Jeśli chcesz mieć tylko jeden plik z historią banów, od komentuj linijkę w .sma i skompiluj plugin ponownie.
    Spoiler
  • Advanced Bans w wersji SQL może bez problemów działać na kilku serwerach na raz. Jeśli użyjesz tej samej bazy na kilku serwerach bany będą połączone, a każdy serwer będzie chroniony - zasada jak w amxbans.
  • Jeśli wykorzystasz Advanced Bans w wersji SQL plugin wykorzysta cvary z pliku sql.cfg (amx_sql_host, amx_sql_user, amx_sql_pass, amx_sql_db).
Dołączona grafika
  • amx_ban <nick, #userid, authid> <time in minutes> <reason>
  • amx_banip <nick, #userid, authid> <time in minutes> <reason>
  • amx_addban <name> <authid or ip> <time in minutes> <reason>
  • amx_unban <authid or ip> Odbanowując steama pamiętaj o "" ( amx_unban "STEAM_ID" )
  • aamx_banlist - Pokazuje listę zbanowanych graczy
  • amx_addbanlimit <flags> <time in minutes>
  • Przypisz maksymalny czas bana dla danej flagi
  • Komendę dopisz w amxx.cfg
Dołączona grafika
  • ab_website <website>
    • Adres strony wyświetlany banowanemu graczowi, gdzie może składać odwołanie.
    • Pozostaw puste, aby nie pokazywać adresu.
    • Domyślnie: puste
  • ab_immunity <0|1|2>
    • 0 - Każdy może zbanować admina z immunitetem (flaga 'a')
    • 1 - Nie można zbanować żadnego admina z immunitetem (flaga 'a')
    • 2 - Admini z immunitetem (flaga 'a') może być zbanowany tylko przez innego admina z immunitetem.
    • Domyślnie: 1
  • ab_bandelay <seconds>
    • Czas od zbanowania, do wyrzucanie gracza z serwera.
    • Domyślnie: 1
  • ab_unbancheck <seconds>
    • Odstęp w sprawdzaniu gracza gdy ten jest odbanowany (?) - (eng.: Interval of checking if a player is unbanned.)
    • Domyślnie: 5
Dołączona grafika
  • Pobierz wszystkie 3 pluginy z posta adminvote.amxx, plmenu.amxx, oraz advanced_bans_sql.amxx jeśli chcesz korzystać z wersji SQL, lub advanced_bans.amxx w przeciwnym wypadku.
  • Podmień pliki advanced_bans.amxx, plmenu.amxx i adminvote.amxx na swoim serwerze w folderze addons/amxmodx/plugins.
  • Musisz podmienić stare pliki: plmenu.amxx i adminvote.amxx
  • Otwórz plik plugins.ini na swoim serwerze z folderu addons/amxmodx/configs.
  • Dodaj advanced_bans.amxx na samym szczycie listy!
  • Upewnij się że pluginy plmenu.amxx i adminvote.amxx są włączone.
  • Zapisz i zamknij plik.
  • Podmień plik advanced_bans.txt na najnowszy pobrany z tego tematu - plik znajduje się w folderze addons/amxmodx/data/lang.
  • Zmień mapę lub zrestartuj serwer.
    Menu banów
  • Plugin plmenu.amxx został edytowany tak aby współpracował z Advanced Bans.
  • Pobierz w/w plik z tego tematu i podmień w folderze addons/amxmodx/plugins/
  • Odbanowując steama pamiętaj o "" ( amx_unban "STEAM_ID" )
Dodawanie czasy banów
  • Kolejność ustawionych czasów w tym wypadku ma znaczenie!
    • Przykładowo:
      amx_addbanlimit "b" "9000"
      amx_addbanlimit "c" "4000"
  • Jeśli admin ma flagi 'b' i 'c' brana będzie pod uwagę restrykcja z flagi 'b', czyli maksymalny czas bana to 2,5h.
    • Jeśli chcesz by admin z immunitetem nie miał restykcji co do czasu wpisz poniższą linijkę jako pierwszą w amxx.cfg!
      amx_addbanlimit "a" "0"
Pliki *.amxx w paczce

Załączone pliki


  • +
  • -
  • 74