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
 

SAL - zdjęcie

SAL

Rejestracja: 19.01.2012
Aktualnie: Nieaktywny
Poza forum Ostatnio: 11.08.2017 19:11
-----

#442390 Generowanie SteamID dla gracza NonSteam!

Napisane przez Portek w 07.08.2012 22:17

Przechodząc do rzeczy, revEmu to dzieło naszych przyjaciół zza granicy, dzieło, dość stare, ale nadal rozwijane i przede wszystkim skuteczne. Program o który mówimy ma na celu emulowanie graczom NonSteam działanie programu Steam, a tym samym generowanie SteamID na podstawie HardwareID. Bezpośrednim następstwem jest fakt że każdy NonSteam z zainstalowanym revEmu posiada własny INDYWIDUALNY i NIEZMIENNY identyfikator, nie zależnie od tego czy posiada zmienne IP, czy też nie. Gracz nie ma możliwości zmiany wygenerowanego SteamID i na każdym serwerze z którym się on łączy jest ono takie samo.

Co zrobić by dla gracza NonSteam SteamID zostało wygenerowane? Taki gracz musi pobrać revEmu, oraz odpowiednio spreparować skrót odnoszący się do Counter-Strike. W tym celu powstał plugin, który należy zainstalować na serwerze, przy każdym wejściu gracza będzie on sprawdzał czy gracz NonSteam posiada już revEmu, w wypadku gdyby go nie posiadał, by móc dalej grać na serwerze zostanie zmuszony do downloadu i instalacji programu.

Pobieramy więc plugin: Załączony plik  revEmu_plugin.rar   62,05 KB  1443 Ilość pobrań
- instalacja standardowa, przerobiona wersja multilang, więc plik txt ląduje w folderze addons/amxmodx/data/lang.
Interesują Was dwa cvary:
  • amx_revtime "2" - odpowiedzialny za czas (w minutach), w ciągu którego gracz NonSteam bez revEmu będzie dostawał komunikat że musi zainstalować modyfikacje, by nadal grać
  • amx_revpage "http://portek.net.pl...mu/revemu.html" - odpowiedzialny za wyświetlenie graczowi odpowiedniego komunikatu w MOTD, obecnie pliki są na moim serwerze, dobrze było by jednak gdyby każdy wrzucił sobie pliki zawarte w archiwum powyżej w folderze www na swój serwer i podał dokładny link doń w tym cvarze
Po upływie ustalonego czasu gracz zobaczy okno MOTD z zawartością, oraz zobaczy link do bezpośredniego pobrania przygotowanego przeze mnie instalatora revEmu.

Instalator został sprawdzony przez serwis VirusTotal i możecie być w 101% pewni że jest on wolny od jakichkolwiek zagrożeń, expliotów, backdorów i innych tego typu przygód - dwa komunikaty o "wirusie" to efekt kompresji plików z wykorzystaniem metody LZMA.

Sam instalator dostępny jest do pobrania z poziomu mojego konta dropbox, jak również udostępniam go do pobrania bezpośrednio z tego tematu:
Załączony plik  revEmu.rar   4,87 MB  1796 Ilość pobrań
Suma kontrolna: Załączony plik  md5sum.txt   376 bajtów  519 Ilość pobrań


Wersja instalacyjna ma tę przewagę nad wersją do instalacji ręcznej iż wskazuje na domyślny folder w którym Counter-Strike 1.6 w wersji NS chce się zainstalować (C:\Program Files\Valve) - oczywiście jest to mój domysł, w przeciwnym wypadku gracz musi sam wskazać folder do którego instalował CS'a (folder w który jest plik hl.exe, folder cstrike itd.), kompresja plików którą zapewnia LZMA pozwoliła na prawie 50% utratę na wadze, więc gracz musi pobrać zaledwie 5Mb, a nie blisko 11.

revEmu można bez przeszkód instalować w połączeniu z każdym dostępnym w sieci patchem, więc gracze z patchem v23 i większymi nie będą mieli żadnego problemu z kompatybilnością. Po instalacji należy zmodyfikować skrót prowadzący do CS'a:
  • Klikamy prawym przyciskiem myszy na ikonie Counter-Strike na pulpicie
  • Z listy wybieramy opcje "Właściwości"
  • W polu "Element docelowy" parametr "-nomaster" zastępujemy parametrem "-steam" - bez ""!
    Przykładowy efekt zmian: C:\Program Files\Valve\hl.exe" -steam -game cstrike
  • Dołączona grafika
Po instalacji i wykonaniu modyfikacji skrótu gracz NonSteam będzie widziany na serwerze jako pełnoprawny gracz Steam, posiadał będzie wygenerowany na podstawie HardwareID niezmienny SteamID. Jako że graczy Steam i tych z emulowanym Steamem ciężko na serwerze będzie rozpoznać proponuję wykonać małą modyfikację dodatkową ustawień dproto. W pliku dproto.cfg zmieniamy parametr RevEmu_Prefix1 np. na 4 (RevEmu_Prefix1 = 4;), po restarcie serwera, dzięki tej operacji gracz NonSteam będzie posiadał SteamID w postaci: STEAM_4_{WYGENEROWANY SID}.


Bzdety:
Spoiler

  • +
  • -
  • 35


#460133 Paczka Klas od Gluta

Napisane przez glut w 21.09.2012 21:23

Witam otóż 79 klas walało się u mnie na komputerze więc postanowiłem je tu wrzucić, bo mogą się komuś przydać (nie wszystkie,muszą działać). Klasy były robione na potrzeby użytkowników forum. Jeżeli są jakieś błędy pisać.

nazwa_pliku -- Nazwa klasy -- opis klasy

codclass_adaven -- Adaven (Klasa Premium) -- Dostaje famas, mp5, usp, glock, 130 speeda, 160hp, 4 dynamity
codclass_admiral -- Admiral[Premium] -- Ma podwojny skok, 20 hp oraz pelen magazynak za kazde zabojstwo
codclass_amadeusz -- Amadeusz -- Dodatkowe  5(+inteligencja) obrazen z MP5
codclass_amadeuszp -- Amadeusz [P] -- 1/12 z mp5, 2 rakiety, 3 skoki, 1/1 z he
codclass_assassin -- Assasin -- Klasa Premium 3x skok mniejsza grawitacja troche szybszy od pozostałych 150 hp na start
codclass_auklander --Auklander(Premium) -- Duzo hp i duzo wytrzymałości, trudno go zabić. 1/1 z AWP i 1/2 z HE, zmiejszona grawitacja
codclass_bandyta -- Bandyta -- TMP , Ubranie wroga , 1/7 na odrodzenie się u wroga
codclass_barbarzynca -- Barbarzynca[P] -- M4   25 + inteligencja obrazen
codclass_bogdaniec -- Bogdaniec -- Aug , Famas , 2 apteczki
codclass_destroyer -- Destroyer[P] -- Ma 1/4 z kazdej broni
codclass_fajtlapa -- Fajtlapa --Dodatkowe 5(+inteligencja) obrazen z M4A1 oraz +15(+inteligencja) z MP5
codclass_fizyk -- Fizyk -- UMP, deagle, 1 ulepszona rakieta, defuser
codclass_hardmen -- Hardmen -- ak47, Odrdza sie 1/2 na czyjms Respie
codclass_hardpremium -- HardPremium -- Na nożu widoczność spada do 20 , DMG z mp5 +30, 2 skoki w powietrzu
codclass_hooligans -- Hooligans(premium) -- Posiada deagle, 1/1 kosy(LPM), mniej widoczny(255/75), podwojny skok, mala grawika(800/400)
codclass_kamikadze -- Kamikadze -- Ma 3 rakiety i 20 + inteligencja obrazen z kazdej broni
codclass_kapitanpremium -- Kapitan [Premium] -- Posiada 1/4 na natychmiastowe zabicie z Deagla i 1/1 z AWP
codclass_killer -- KILLER (premium) -- Aug (dmg + int obrazen z AUG ) 1 rakieta
codclass_kolos -- Kolos -- Jest bardzo wytrzymały, ma m4 i deagle
codclass_komandor -- Komandor -- 1/7 z szotgunow
codclass_komandos_superpremium --Komandos[Super premium] -- 1/1 z noża,1/1 z AWP ,1/1 z he oraz 1/40 z deagla
codclass_krolstrzelcow -- Krol Strzelcow -- Posiada on M4A1 oraz Deagle + Eliminator Rozrzutu
codclass_maniak -- Maniak -- Dostaje HE|AK|M249 jest mniej widzialny i bardzo szybki na nozu oraz posiada 3 dynamity moze uzyc co 3sek.
codclass_marszalekpremium -- Marszalek[Premium] -- Awp 1/1 , niewidzialny na kucaniu 30 % , bardzo szybki all granaty
codclass_melencujsz_premium -- Melencjusz(Premium) -- 50HP i 100 Kondycji
codclass_minimentos -- Mini Mentos -- 1/7 na zabicie z XM1014
codclass_mnich -- Mnich -- Posiada teleport (Mozna uzyc co 10s)
codclass_moderator -- Moderator(premium) -- Posiada M4/AWP/Deagle/HE/FLASH, ma 1/10 na wyrzucenie broni przeciwnika, 1 rakieta
codclass_monolicer_premium -- Monolicer[Premium] -- 1/1 z scouta 1/3 z he 1/2 z noża
codclass_mrocznyrycerz -- Mroczny Rycerz(premium) -- Jest w ogóle nie widzoczny (255/0), Ma 1 hp, i ma 1/1 z kosy.I jest bardzo szybki.Ma małą grawitacje
codclass_nieustraszonypremium -- Nieustraszony (Premium) -- Dostaje M4 oraz 20 wiecej dmg, moze wykonac skok w powietrzu.na nożu. 70/255
codclass_ninja -- Ninja -- Klasa Premium 2x skok mniejsza widocznosc 140 hp na start
codclass_ninjas -- Ninja -- Na nożu 35 widoczności, 1/2 z kosy, mniejsza grawitacja oraz 3 skoki w powietrzu
codclass_obserwator -- Obserwator -- Posiada snajperkę 1/10 z AWP, Deagle Lekko Niewidzialny(255/200)
codclass_oficerpremium -- Oficer (Premium) -- Ma 1/3 z M3, posiada lekko grawitacje 550/800 i może wykonać 2 skoki w powietrzu
codclass_pancerkipremium -- Pancernik (Klasa Premium) -- Posiada tarczę SWAT oraz DGL
codclass_pedofil -- Pedofil -- M4, 2skoki, 2rakietki
codclass_policjant -- Policjant -- Ma 1/9 z usp i glocka +15 dmg z deagla
codclass_profesjonalista -- Profesjonalista (Klasa Premium) -- Dostaje M4A1, AK47, AWP, DEAGLE, HE, 150 hp, 140 speeda, 250 armoru
codclass_profesjonalnydoktor -- Profesjonalny Doktor -- M4 , Może reanimowac : odradza ludzi , ma 4 apteczki ,all granat
codclass_profesjonalnyszturmowiec -- Profesjonalny Szturmowiec -- M4A1,deagle podwójny skok i 2 rakiety
codclass_prokomandos -- ProKomandos -- Posiada m4 i 1 apteczke ma 1/1 z noża oraz 2 fleshe i podwójny skok
codclass_rabuspremium -- Rabus (Premium) -- AWP, Mac 10 i mniejsza widocznosc przy kucaniu
codclass_rysiop -- Rysio[Premium] -- M4 , Famas , 2 rakiety , 5 skokow , Niewidzialny Na Nozu 40 %
codclass_samurajpremium -- Samuraj (Premium) -- Zmniejszona widoczność na nożu. 70/255
codclass_sierzantpremium -- Sierzant[Premium] -- mp5 1/2 , krowa , all granaty , 10 apteczek , 4 skoki
codclass_skoczek -- Skoczek  -- Mniejsza Grawitacja
codclass_slepyninja -- Slepy Ninja [Premium] -- 1/3 z noża ppm, 300 grawitacji, na nożu widoczny w 10%, 1/2 z awp
codclass_slepyninja (2) -- Slepy Ninja [Premium Gold] -- 1/4 na odrodzenie się, 1/2awp, 15% widoczny na nożu, 1/2 z noża [PPM], 300 grawitacji
codclass_smouke -- Smouke -- 20 kondycja, 20 inteligencja, 20 wytrzymalosc
codclass_spacedivision -- Space division -- Masz karabin plazmowy
codclass_sprinter -- Sprinter -- 75HP i 10 Wytrzymalosci
codclass_spryciarz -- Spryciarz -- Posiada M4|FAMAS|FB ma 40% wiecej obrazen z famasa, 4 fleshe nie slychac jego krokow.
codclass_starszyteleporter -- Starszy Teleporter --  Posiada Teleport (Mozna Uzyc Co 30 Sekund), 25 Dmg Z M4, 1/3 z SG550(Snajperka)
codclass_strzelec -- Strzelec -- Strzelec ma 4 apteczki , famasa,m4a1,deagle,zenstaw granatow,i 50%niewidzialnosci podczas kucania ma miec 14 skokow
codclass_strzelecwyborowy -- Strzelec wyborowy -- Dostaje AK i M4A1 + 200 dmg, 110hp bazowe, 80 % biegu, 100 pancerza
codclass_superhero -- SuperHero (Klasa Premium) -- Dostaje 120hp, 700 grawitacji, wszystkie granaty, 1/5 z uzi
codclass_superszpieg -- Super Szpieg(Max Premium) -- Podczas kucania z nozem jest niewidzialny, 1/1 z AWP, 1/1 z HE
codclass_szaman -- Szaman -- Posiada AUG,5 Błyskawic,posiada wszyskie granaty
codclass_szeregowiec -- Szeregowiec -- ma m4 i AWP. jest szybki  i wytrzymały, ma zmniejszoną grawitacje
codclass_szybcior -- Szybcior -- Ma 70hp i jest szybszy od pozostalych
codclass_teezik -- TeeZik (Klasa Premium) -- Posiada Krowe i zadaje z niej 150 dmg
codclass_terminator -- Terminator -- 30 kondycja i 10 inteligencja
codclass_terminator (2) -- Terminator -- Ma m4 i elites oraz 1/3 z HE i he co 15 sek. 2 apteczki i podwójny skok!
codclass_terminatorpremium -- Terminator (Premium) -- Posiada 1/5 z XM 1014 i Deagla
codclass_terminatorpremium (2) -- Terminator[Premium] -- famas , awp 1/1 , niewidac kiedy kuca , 2 rakiety , 6 skoków
codclass_terrorysta -- Terrorysta -- ma 1 rakiete, przebranie wroga oraz 1/4 szansy na zrespieniu sie na respie wroga.
codclass_trustxxl -- TrusT XXL -- Posiada 2 HE 1/2 z nich , 2 rakiety , 1/4 z XM1014 , 1/1 z noża(PPM) , mało widoczny podczas kucania z nim
codclass_worm -- Worm[Premium] -- Natychmiastowe zabicie z noza, brak rozrzutu
codclass_wyszkolonydave -- Wyszkolony Dave -- Posiada ubranie wroga, zmniejszona widoczność na nożu do 200, 1/1 he
codclass_wyszkolonygeneral -- Wyszkolony Generał (Premium) -- Posiada 3 rakietki, 1/4 z He, może wykonać skok w powietrzu
codclass_wyszkolonykomandos -- Wyszkolony Komandos -- 1/1 z kosy PPM, 1/4 z HE, może wykonać skok w powietrzu, zmniejszona widoczność do 200
codclass_wyszkolonysnajper -- Wyszkolony Snajper -- 1/4 z AWP, 1/10 z Deagle, może wykonać skok w powietrzu
codclass_wyszkolonystrzelec -- Wyszkolony Strzelec -- Może wykonać skok w powietrzu, 1/5 z Deagle
codclass_wzorowystrzelec -- Wzorowy Strzelec -- 1/12 z M4A1 ma HE 1/6 deagle
codclass_zawodowystrzelecpremium -- Zawodowy Strzelec(Premium) -- Ma dodatkowe 500 Obrażeń z M4A1 i AK47 oraz 1/1 Z awp i 1/2 z deagle
codclass_zeus -- Zeus -- Posiada 7 Błyskawic,1/15 z wszystkich broni, 1/1 z kosy, 1,5x wieksze dmg Famas 10x podskok oraz mniejsza grawitacja
codclass_zlodziej -- Zlodziej -- Ma zmniejszona widocznosc oraz 1/2 szansy na zabranie perku swojej ofierze
codclass_zwinnyzolniez -- Zwinny Zolniez -- Obrażenia z MP5 dodane o 8 % z inteligencji

Załączone pliki

  • Załączony plik  klasy.rar   98 KB  5107 Ilość pobrań

  • +
  • -
  • 29


#556681 Perk aimbot, namierza głowy przeciwników

Napisane przez Kaleka w 19.07.2013 19:10

testyq.png

 

Perk: Aimbot

Opis: W czasie gry przytrzymujemy [C], najbliższa głowa przeciwnika zostanie namierzona.

 

Przerobiłem plugin z tego tematu: http://amxx.pl/topic...e-przeciwnikow/

Autorem jest: diablix, ja tylko edytowałem to na perk.

 

Wymagane moduły:

  • Fakemeta
  • Engine

Filmik:

 

testyi.png

Załączone pliki


  • +
  • -
  • 3


#556049 Doświadczenie za pełen serwer

Napisane przez Kaleka w 17.07.2013 13:45

testyq.png

 

Plugin który dodaje nam doświadczenie gdy serwer jest pełen.

Przerobiony z diablomoda: http://amxx.pl/topic...a-pelny-serwer/ Autorem tego pluginu jest Stachuu :D ??

Ja tylko zrobiłem go na codmoda i dodałem cvary.

 

Cvary:

cod_fullserwer_ile "12" // Ile osób musi być online aby dodawało doświadczenie
cod_fullserwer_exp "100" // ile ma dodawać expa

 

 

testyi.png

Załączone pliki


  • +
  • -
  • 16


#56664 BS Creator

Napisane przez R3X w 12.04.2009 19:57

BS Creator

Menedżer BombSite`ów.

wersja 1.3
+sporo tłumaczeń

Opis
Plugin służy do tworzenia / edytowania / usuwania BSów na dowolnych mapach. Do dyspozycji admina oddaje
przejrzyste menu, które ułatwi konfigurację mapy.
Konfiguracja
Główny plik konfiguracyjny to configs/bs_creator/bsconfig

;Set to 0 if you want unable menu with configuration (passive mode)
MENU = 1
;What you want to log
;a - saving file
;b - editing BS
;c - adding BS
;d - deleted BS
;e - restoring default BSs
LOGS = "abcde"


MENU = 0|1
Czy pozwolić adminom na edycję BSów czy nie. Przydatne gdy H@ ustawił już bombsite`y i nie chce by inny admini bawili się menu.

LOGS = "abcde"
określa, które czynności admina są zapisywane w logach

Pozostałe pliki są tworzone za pomocą menu.

Komendy

bs_menu

otwiera menu, oprócz tej komendy mamy też dostęp przez amxmodmenu
Menu główne: http://rex.netsky.pl.../hl/bs_menu.JPG
Menu edycji BSa: http://rex.netsky.pl.../hl/bs_edit.JPG

bs_default

przywraca domyślne ustawienia dla mapy (po użyciu daj restart lub zmień mapę, aby działania to przyniosło efekt)

bs_radar

dla graczy, wł/wył BSy na radarze

Cvary

amx_bs_draw 0|1

wyłącza/włącza funkcję BS radar

Załączone pliki


  • +
  • -
  • 6


#554659 Generator Shop'a

Napisane przez DarkGL w 12.07.2013 13:28

Panowie ! Nie każdy musi być programistą mimo to też może chce modyfikować rozgrywkę na swoim serwerze. Trochę zrozumienia koledzy ;)


  • +
  • -
  • 3


#259495 Tabela EXP'a w nowym CoD'zie

Napisane przez Goliath w 16.06.2011 16:16

W tym krótkim poradniku, pokażę jak zrobić tabelę EXP'a w nowym CoD'zie (taką, jaka była w starym).

1. Najpierw zrób tabelę z EXP'em (ręcznie lub np. przez TEN generator) o nazwie doswiadczenie_poziomu np. taką:
new const doswiadczenie_poziomu[] = {
0,15,45,60,100,225,405,545,665,845,
945,1055,1355,1485,1555,2005,2085,2425,2965,3440,
3940,4360,4580,4925,5525,5775,6425,7235,7515,7660,
8260,8570,9210,9705,10045,10395,11295,12220,13360,13555,
14555,14965,16225,16440,16660,17110,18490,19195,19915,20405,
21405,22425,23465,23995,25615,27265,28385,30095,31255,32730,
33630,34545,35475,36420,37380,37705,39685,41025,42725,44795,
45845,47975,49415,50510,51990,52740,53120,55430,56210,56605,
57405,58620,59440,60270,62370,64070,66650,67955,69275,71055,
72405,73315,75615,76545,78425,79375,80335,82760,85210,86695,
88195,88700,90740,93315,94355,96980,100160,101765,103385,106655,
107755,109975,113335,113900,116750,117325,120225,121395,124935,128505,
129105,130315,132145,135220,138320,140820,142710,146520,150360,151005,
152305,155580,156900,159560,163580,166280,166960,170385,172455,173150,
175950,179475,183735,185165,187325,189500,190230,191700,193920,198390,
199140,200650,201410,203705,208325,209100,210660,211445,216185,220160,
224160,228185,229805,233880,237980,238805,241295,246305,251345,255570,
256420,261550,264990,267585,268455,269330,273730,276385,281725,286200,
288900,292520,293430,298920,300760,301685,304475,310085,313845,318570,
321420,325240,327160,330055,334905,336855,338815,341770,344740,349715,
352715}

2. Otwórz plik QTM_CodMod.sma i wklej powyższy kod pod:
new bool:freezetime = true;

3. Następnie znajdź ten public:
public PobierzDoswiadczeniePoziomu(poziom)
return power(poziom, 2)*get_pcvar_num(cvar_proporcja_poziomu);

I zmień na:
public PobierzDoswiadczeniePoziomu(poziom)
return doswiadczenie_poziomu[poziom];

4. Teraz znajdź wszystkie:
get_pcvar_num(cvar_limit_poziomu)

I zmień na:
sizeof doswiadczenie_poziomu-1

5. Teraz znajdź:
new cvar_doswiadczenie_za_zabojstwo,
cvar_doswiadczenie_za_obrazenia,
cvar_doswiadczenie_za_wygrana,
cvar_typ_zapisu,
cvar_limit_poziomu,
cvar_proporcja_poziomu,
cvar_blokada_broni;

I zmień na:
new cvar_doswiadczenie_za_zabojstwo,
cvar_doswiadczenie_za_obrazenia,
cvar_doswiadczenie_za_wygrana,
cvar_typ_zapisu,
cvar_blokada_broni;

6. Następnie usuń z plugin_init to:
	cvar_limit_poziomu = register_cvar("cod_maxlevel", "200");
cvar_proporcja_poziomu = register_cvar("cod_levelratio", "35");

7. Skompiluj plik i gotowe! Dołączona grafika
  • +
  • -
  • 31


#536524 Własny HUD

Napisane przez dasiek w 22.04.2013 21:31

Zasada Jest prosta – Wpisujesz /hud – wybierasz Sobie z gotowca bądź własne położenie i kolor a nawet rodzaj. 
Film : 
Zaczynamy!
 
Otwieramy Sinlik CodModa (najczęściej QTM_CodMod.sma)
przed plugin_init dodajemy
 

new HudGracza[33][6];
enum { Typ=0,R,G,B,X,Y};


new standardowe_ustawienia[6] = {0,0,255,0,2,23};
new Gotowiec_1[6] = {0,0,255,255,70,68};
new Gotowiec_2[6] = {0,255,0,100,70,12};
new vault_hud;
new gmsgStatusText;

 
do plugin_init

 
 

vault_hud = nvault_open("CodHud");
gmsgStatusText = get_user_msgid("StatusText");
register_clcmd("say /hud", "ZmienHud");

 
 
 

do client_disconnect
 
 

ZapiszHud(id);

Do Pluginu dodajemy Funkcje. 

public client_putinserver(id)
{
	WczytajHud(id);
}
public ZmienHud(id)
{
	new menu = menu_create("Opcje Huda","OpcjeHuda_h")
	if(!HudGracza[id][Typ])
	{
		menu_additem(menu,"Typ : HudMsg")
		menu_additem(menu,"Standardowe Ustawienia")
		menu_additem(menu,"Zmien na Gotowiec (1)")
		menu_additem(menu,"Zmien na Gotowiec (2)")
		menu_additem(menu,"Wlasne Ustawienie Huda")
	}
 
	else
		menu_additem(menu,"Typ : Status Tekst")
 
	menu_display(id,menu)
}
public OpcjeHuda_h(id,menu,item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu)
		return PLUGIN_CONTINUE;
	}
	switch(item)
	{
		case 0:
		{
			if(!HudGracza[id][Typ])
				HudGracza[id][Typ]++;
			else
				HudGracza[id][Typ]--;
 
			ZmienHud(id)
			return PLUGIN_CONTINUE;
		}
		case 1:
		{
			for(new i = 0 ; i < 6;i++)
				HudGracza[id][i] = standardowe_ustawienia[i];
 
			ZmienHud(id)
			return PLUGIN_CONTINUE;
		}
		case 2:
		{
			for(new i = 0 ; i < 6;i++)
				HudGracza[id][i] = Gotowiec_1[i];
 
			ZmienHud(id)
			return PLUGIN_CONTINUE;
		}
		case 3:
		{
			for(new i = 0 ; i < 6;i++)
				HudGracza[id][i] = Gotowiec_2[i];
 
			ZmienHud(id)
			return PLUGIN_CONTINUE;
		}
		case 4:
		{
			WlasneUstawienia(id);
			return PLUGIN_CONTINUE;
		}
	}
	return PLUGIN_CONTINUE;
}
public WlasneUstawienia(id)
{
	new menu = menu_create("Zmien Huda","WlasneUstawienia_h")
	menu_additem(menu,"Skonczylem!");
	new txt[32];
	formatex(txt,31,"Czerwony + %i",HudGracza[id][R])
	menu_additem(menu,txt);
	formatex(txt,31,"Zielony + %i",HudGracza[id][G])
	menu_additem(menu,txt);
	formatex(txt,31,"Niebieski+ %i",HudGracza[id][B])
	menu_additem(menu,txt);
	formatex(txt,31,"Polozenie X + %i",HudGracza[id][X])
	menu_additem(menu,txt);
	formatex(txt,31,"Polozenie Y + %i",HudGracza[id][Y])
	menu_additem(menu,txt);
	menu_display(id,menu);
}
public WlasneUstawienia_h(id,menu,item)
{
	if(item == MENU_EXIT)
	{
		client_print(id,print_chat,"[CodMod] Wysjcie Spowodowalo standardowe ustawienia")
		for(new i = 0 ; i < 6;i++)
				HudGracza[id][i] = standardowe_ustawienia[i];
 
		return PLUGIN_CONTINUE;
	}
	switch(item)
	{
		case 0:
		{
			ZapiszHud(id);
			menu_destroy(menu)
			return PLUGIN_CONTINUE;	
		}
		case 1:
		{
			HudGracza[id][R]+=25 
			if(HudGracza[id][R] > 255)
				HudGracza[id][R]=0;
 
			WlasneUstawienia(id);
		}
		case 2:
		{
			HudGracza[id][G]+=25 
			if(HudGracza[id][G] > 255)
				HudGracza[id][G]=0;
 
			WlasneUstawienia(id);
		}
		case 3:
		{
			HudGracza[id][B]+=25 
			if(HudGracza[id][B] > 255)
				HudGracza[id][B]=0;
 
			WlasneUstawienia(id);
		}
		case 4:
		{
			HudGracza[id][X]+=5;
			if(HudGracza[id][X] > 72)
				HudGracza[id][X]=0;
 
			WlasneUstawienia(id);
		}
		case 5:
		{
			HudGracza[id][Y]+=5;
			if(HudGracza[id][Y] > 80)
				HudGracza[id][Y]=0;
 
			WlasneUstawienia(id);
		}
 
	}
	return PLUGIN_CONTINUE;	
}
public ZapiszHud(id)
{
	new vaultkey[128],vaultdata[256]
	format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i", HudGracza[id][Typ],HudGracza[id][R],HudGracza[id][G],HudGracza[id][B],HudGracza[id][X],HudGracza[id][Y])
 
	format(vaultkey, charsmax(vaultkey),"Hud-%s", nazwa_gracza[id]);
	nvault_set(vault_hud,vaultkey,vaultdata);
}
public WczytajHud(id)
{
	new vaultkey[128],vaultdata[256]
	format(vaultkey, charsmax(vaultkey),"Hud-%s", nazwa_gracza[id]);
 
	if(!nvault_get(vault_hud,vaultkey,vaultdata,255)) // Jezeli nie ma danych gracza sprawdza stary zapis. 
	{
		for(new i = 0 ; i < 6;i++)
			HudGracza[id][i] = standardowe_ustawienia[i];
 
		return PLUGIN_CONTINUE;
	}
 
	replace_all(vaultdata, 255, "#", " ");
 
	new danegracza[6][32];
 
	parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 
 
31);
	for(new i = 0 ; i < 6;i++)
		HudGracza[id][i] = str_to_num(danegracza[i]);
 
	return PLUGIN_CONTINUE;
}

 i ZMieniamy PokazInfrormacje Na Ten :

public PokazInformacje(id) 
{
	id -= ZADANIE_POKAZ_INFORMACJE;
	
	if(!is_user_connected(id))
	{
		remove_task(id+ZADANIE_POKAZ_INFORMACJE);
		return PLUGIN_CONTINUE;
	}
	
	if(!is_user_alive(id))
	{
		new target = pev(id, pev_iuser2);
		
		if(!target)
			return PLUGIN_CONTINUE;
		
		set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
		ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);
		return PLUGIN_CONTINUE;
	}
	new status[1024]
	if(!HudGracza[id][Typ])
	{
		format(status,1023," ");	
		set_hudmessage(HudGracza[id][R], HudGracza[id][G], HudGracza[id][B], float(HudGracza[id][X])/100, float(HudGracza[id][Y])/100, 0, 0.0, 0.3, 0.0, 0.0);
		ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);
	}
	else
	{
		format(status,1023,"Klasa: %s [%i] XP: %i/%i Perk: %s", nazwy_klas[klasa_gracza[id]],poziom_gracza[id], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), nazwy_perkow[perk_gracza[id]]);	
	}
	
	message_begin(MSG_ONE,gmsgStatusText,{0,0,0}, id) 
	write_byte(0) 
	write_string(status) 
	message_end() 
	return PLUGIN_CONTINUE;
} 

Wsio! :)


  • +
  • -
  • 14


#368629 Napalm, czyli granat podpalający - perk

Napisane przez d0naciak w 21.02.2012 19:48

chapajcie, nietestowane

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <xs>
#include <codmod>
#include <cstrike>
/*================================================================================
[Opcje]
=================================================================================*/
new cod_weapon;
// Model Granatu
new const model_grenade_vfire[] = "models/v_hegrenade.mdl"
new const model_grenade_pfire[] = "models/p_hegrenade.mdl"
new const model_grenade_wfire[] = "models/w_hegrenade.mdl"
new ma_perk[33];
// Dzwiek Eksplozji
new const grenade_fire[][] = { "weapons/hegrenade-1.wav" }

// Dzwiek palocego sie gracza
new const grenade_fire_player[][] = { "scientist/sci_fear8.wav", "scientist/sci_pain1.wav", "scientist/scream02.wav" }

// Sprity Granade
new const sprite_grenade_fire[] = "sprites/flame.spr"
new const sprite_grenade_smoke[] = "sprites/black_smoke3.spr"
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
new const sprite_grenade_ring[] = "sprites/shockwave.spr"

// Glow and trail colors (red, green, blue) Niewiem?
const NAPALM_R = 200
const NAPALM_G = 0
const NAPALM_B = 0

/*===============================================================================*/

// Burning task
const TASK_BURN = 1000
#define ID_BURN (taskid - TASK_BURN)

// Flame task
#define FLAME_DURATION args[0]
#define FLAME_ATTACKER args[1]

// CS Offsets
#if cellbits == 32
const OFFSET_CSTEAMS = 114
const OFFSET_CSMONEY = 115
const OFFSET_MAPZONE = 235
#else
const OFFSET_CSTEAMS = 139
const OFFSET_CSMONEY = 140
const OFFSET_MAPZONE = 268
#endif
const OFFSET_LINUX = 5 // offsets +5 in Linux builds

const PLAYER_IN_BUYZONE = (1<<0)

// HE grenade weapon entity
#define HE_WPN_ENTITY(%1) fm_find_ent_by_owner(-1, "weapon_hegrenade", %1)

// pev_ field used to store custom nade types and their values
const PEV_NADE_TYPE = pev_flTimeStepSound
const NADE_TYPE_NAPALM = 681856

// Whether ham forwards are registered for CZ bots
new g_hamczbots

// Precached sprites indices
new g_flameSpr, g_smokeSpr, g_trailSpr, g_exploSpr

// Messages
new g_msgDamage, g_msgMoney, g_msgBlinkAcct

// CVAR pointers
new cvar_radius, cvar_price, cvar_hitself, cvar_duration, cvar_slowdown, cvar_override,
cvar_damage, cvar_buyzone, cvar_ff, cvar_cankill, cvar_spread, cvar_botquota

// Precache all custom stuff
public plugin_precache()
{
engfunc(EngFunc_PrecacheModel, model_grenade_vfire)
engfunc(EngFunc_PrecacheModel, model_grenade_pfire)
engfunc(EngFunc_PrecacheModel, model_grenade_wfire)

new i
for (i = 0; i < sizeof grenade_fire; i++)
engfunc(EngFunc_PrecacheSound, grenade_fire[i])
for (i = 0; i < sizeof grenade_fire_player; i++)
engfunc(EngFunc_PrecacheSound, grenade_fire_player[i])

g_flameSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_fire)
g_smokeSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_smoke)
g_trailSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_trail)
g_exploSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_ring)
}
new const perk_name[] = "Napalm";
new const perk_desc[] = "Dostajesz 5 granatow podpalajacych";

public plugin_init()
{
cod_register_perk(perk_name, perk_desc);
// Register plugin call
register_plugin("Napalm Nades", "1.1", "MeRcyLeZZ & fbang")

// Events
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("CurWeapon", "event_curweapon", "be", "1=1")

// Forwards
register_forward(FM_SetModel, "fw_SetModel")
RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade")
RegisterHam(Ham_Touch, "player", "fw_TouchPlayer")

// Client commands
register_clcmd("say napalm", "buy_napalm")
register_clcmd("say /napalm", "buy_napalm")

// CVARS
cvar_override = register_cvar("napalm_override", "1")
cvar_price = register_cvar("napalm_price", "1000")
cvar_buyzone = register_cvar("napalm_buyzone", "1")

cvar_radius = register_cvar("napalm_radius", "240.0")
cvar_hitself = register_cvar("napalm_hitself", "0")
cvar_ff = register_cvar("napalm_ff", "0")
cvar_spread = register_cvar("napalm_spread", "0")

cvar_duration = register_cvar("napalm_duration", "5")
cvar_damage = register_cvar("napalm_damage", "7")
cvar_cankill = register_cvar("napalm_cankill", "1")
cvar_slowdown = register_cvar("napalm_slowdown", "0.5")

cvar_botquota = get_cvar_pointer("bot_quota")
register_event("ResetHUD", "ResetHUD", "abe");

// Message ids
g_msgDamage = get_user_msgid("Damage")
g_msgMoney = get_user_msgid("Money")
g_msgBlinkAcct = get_user_msgid("BlinkAcct")
}
public cod_perk_enabled(id)
{
cod_weapon = CSW_HEGRENADE
cod_give_weapon(id, cod_weapon);
ma_perk[id] = true;
ResetHUD(id);

}
public cod_perk_disabled(id)
{
cod_take_weapon(id, cod_weapon);
ma_perk[id] = false;
}
// Round Start Event
public event_round_start()
{
// Stop any burning tasks on players
static id
for (id = 1; id <= 32; id++) remove_task(id+TASK_BURN);
}

// Current Weapon Event
public event_curweapon(id)
{
// Napalm grenades disabled
if (!ma_perk[id])
return;

// Not a HE grenade
if (read_data(2) != CSW_HEGRENADE)
return;

// Not a napalm grenade (because the weapon_hegrenade entity of its owner doesn't have the flag set)
if (!get_pcvar_num(cvar_override) && pev(HE_WPN_ENTITY(id), PEV_NADE_TYPE) != NADE_TYPE_NAPALM)
return;


// Replace models
set_pev(id, pev_viewmodel2, model_grenade_vfire)
set_pev(id, pev_weaponmodel2, model_grenade_pfire)
}

// Client joins the game
public client_putinserver(id)
{
// CZ bots seem to use a different "classtype" for player entities
// (or something like that) which needs to be hooked separately
if (cvar_botquota && !g_hamczbots) set_task(0.1, "register_ham_czbots", id)
}

// Set Model Forward
public fw_SetModel(entity, const model[])
{
// Napalm grenades disabled
if (!ma_perk[id])
return FMRES_IGNORED;

// Not a HE grenade
if (!equal(model[7], "w_hegrenade.mdl"))
return FMRES_IGNORED;

// Get damage time of grenade
static Float:dmgtime
pev(entity, pev_dmgtime, dmgtime)

// Grenade not yet thrown
if (dmgtime == 0.0)
return FMRES_IGNORED;

// Not a napalm grenade (because the weapon_hegrenade entity of its owner doesn't have the flag set)
if (!get_pcvar_num(cvar_override) && pev(HE_WPN_ENTITY(pev(entity, pev_owner)), PEV_NADE_TYPE) != NADE_TYPE_NAPALM)
return FMRES_IGNORED;

// Give it a glow
fm_set_rendering(entity, kRenderFxGlowShell, NAPALM_R, NAPALM_G, NAPALM_B, kRenderNormal, 16)

// And a colored trail
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(entity) // entity
write_short(g_trailSpr) // sprite
write_byte(10) // life
write_byte(10) // width
write_byte(NAPALM_R) // r
write_byte(NAPALM_G) // g
write_byte(NAPALM_ B) // b
write_byte(200) // brightness
message_end()

// Set grenade type on the thrown grenade entity
set_pev(entity, PEV_NADE_TYPE, NADE_TYPE_NAPALM)

// Set owner's team on the thrown grenade entity
set_pev(entity, pev_team, fm_get_user_team(pev(entity, pev_owner)))

// Set custom model and supercede the original forward
engfunc(EngFunc_SetModel, entity, model_grenade_wfire)
return FMRES_SUPERCEDE;
}

// Grenade Think Forward
public fw_ThinkGrenade(entity)
{
// Get damage time of grenade
static Float:dmgtime
pev(entity, pev_dmgtime, dmgtime)

// Check if it's time to go off
if (dmgtime > get_gametime())
return HAM_IGNORED;

// Not a napalm grenade
if (pev(entity, PEV_NADE_TYPE) != NADE_TYPE_NAPALM)
return HAM_IGNORED;

// Explode event
napalm_explode(entity)

return HAM_SUPERCEDE;
}

// Player Touch Forward
public fw_TouchPlayer(self, other)
{
// Spread cvar disabled or not on fire
if (!get_pcvar_num(cvar_spread) || !task_exists(self+TASK_BURN))
return;

// Not touching a player or player already on fire
if (!is_user_alive(other) || task_exists(other+TASK_BURN))
return;

// Check if friendly fire is allowed
if (!get_pcvar_num(cvar_ff) && fm_get_user_team(self) == fm_get_user_team(other))
return;

// Heat icon
message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, _, other)
write_byte(0) // damage save
write_byte(0) // damage take
write_long(DMG_BURN) // damage type
write_coord(0) // x
write_coord(0) // y
write_coord(0) // z
message_end()

// Our task params
static params[2]
params[0] = get_pcvar_num(cvar_duration)*2; // duration (reduced a bit)
params[1] = self; // attacker

// Set burning task on victim
set_task(0.1, "burning_flame", other+TASK_BURN, params, sizeof params)
}

// Say hook
public buy_napalm(id)
{
// Napalm grenades disabled
if (!ma_perk[id])
return PLUGIN_CONTINUE;

// Check if override setting is enabled instead
if (get_pcvar_num(cvar_override))
{
client_print(id, print_center, "Just buy a HE grenade and get a napalm automatically!")
return PLUGIN_HANDLED;
}

// Check that we are alive
if (!is_user_alive(id))
{
client_print(id, print_center, "You can't buy when you're dead!")
return PLUGIN_HANDLED;
}

// Check that we are in a buyzone
if (get_pcvar_num(cvar_buyzone) && !fm_get_user_buyzone(id))
{
client_print(id, print_center, "You need to be in a buyzone!")
return PLUGIN_HANDLED;
}

// Check that we have the money
if (fm_get_user_money(id) < get_pcvar_num(cvar_price))
{
client_print(id, print_center, "#Cstrike_TitlesTXT_Not_Enough_Money")

// blink money
message_begin(MSG_ONE_UNRELIABLE, g_msgBlinkAcct, _, id)
write_byte(2) // times
message_end()

return PLUGIN_HANDLED;
}

// Check that we don't have a hegrenade already
if (user_has_weapon(id, CSW_HEGRENADE))
{
client_print(id, print_center, "#Cstrike_Already_Own_Weapon")
return PLUGIN_HANDLED;
}

// Give napalm
fm_give_item(id, "weapon_hegrenade")

// Set grenade type
set_pev(HE_WPN_ENTITY(id), PEV_NADE_TYPE, NADE_TYPE_NAPALM)

// Remove the money
fm_set_user_money(id, fm_get_user_money(id)-get_pcvar_num(cvar_price))

// Update money on HUD
message_begin(MSG_ONE, g_msgMoney, _, id)
write_long(fm_get_user_money(id)) // amount
write_byte(1) // flash
message_end()

return PLUGIN_HANDLED;
}

// Napalm Grenade Explosion
napalm_explode(ent)
{
// Get attacker and its team
static attacker, attacker_team
attacker = pev(ent, pev_owner)
attacker_team = pev(ent, pev_team)

// Get origin
static Float:originF[3]
pev(ent, pev_origin, originF)

// Explosion
create_blast2(originF)

// Napalm explosion sound
engfunc(EngFunc_EmitSound, ent, CHAN_WEAPON, grenade_fire[random_num(0, sizeof grenade_fire - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)

// Collisions
static victim
victim = -1;

while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, originF, get_pcvar_float(cvar_radius))) != 0)
{
// Only effect alive players
if (!is_user_alive(victim))
continue;

// Check if myself is allowed
if (victim == attacker && !get_pcvar_num(cvar_hitself))
continue;

// Check if friendly fire is allowed
if (victim != attacker && !get_pcvar_num(cvar_ff) && attacker_team == fm_get_user_team(victim))
continue;

// Heat icon
message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, _, victim)
write_byte(0) // damage save
write_byte(0) // damage take
write_long(DMG_BURN) // damage type
write_coord(0) // x
write_coord(0) // y
write_coord(0) // z
message_end()

// Our task params
static params[2]
params[0] = get_pcvar_num(cvar_duration)*5; // duration
params[1] = attacker; // attacker

// Set burning task on victim
set_task(0.1, "burning_flame", victim+TASK_BURN, params, sizeof params)
}

// Get rid of the grenade
engfunc(EngFunc_RemoveEntity, ent)
}

// Burning Task
public burning_flame(args[2], taskid)
{
// Player died/disconnected
if (!is_user_alive(ID_BURN))
return;

// Get player origin
static Float:originF[3]
pev(ID_BURN, pev_origin, originF)

// In water or burning stopped
if ((pev(ID_BURN, pev_flags) & FL_INWATER) || FLAME_DURATION < 1)
{
// Smoke sprite
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_SMOKE) // TE id
engfunc(EngFunc_WriteCoord, originF[0]) // x
engfunc(EngFunc_WriteCoord, originF[1]) // y
engfunc(EngFunc_WriteCoord, originF[2]-50.0) // z
write_short(g_smokeSpr) // sprite
write_byte(random_num(15, 20)) // scale
write_byte(random_num(10, 20)) // framerate
message_end()

return;
}

// Randomly play burning sounds
if (!random_num(0, 20))
engfunc(EngFunc_EmitSound, ID_BURN, CHAN_VOICE, grenade_fire_player[random_num(0, sizeof grenade_fire_player - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)

// Fire slow down
if (get_pcvar_float(cvar_slowdown) > 0.0 && (pev(ID_BURN, pev_flags) & FL_ONGROUND))
{
static Float:velocity[3]
pev(ID_BURN, pev_velocity, velocity)
xs_vec_mul_scalar(velocity, get_pcvar_float(cvar_slowdown), velocity)
set_pev(ID_BURN, pev_velocity, velocity)
}

// Take damage from the fire
if (pev(ID_BURN, pev_health) > get_pcvar_num(cvar_damage))
fm_set_user_health(ID_BURN, pev(ID_BURN, pev_health) - get_pcvar_num(cvar_damage))
else if (get_pcvar_num(cvar_cankill))
{
// Kill the victim
ExecuteHamB(Ham_Killed, ID_BURN, FLAME_ATTACKER, 0)

// Smoke sprite
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_SMOKE) // TE id
engfunc(EngFunc_WriteCoord, originF[0]) // x
engfunc(EngFunc_WriteCoord, originF[1]) // y
engfunc(EngFunc_WriteCoord, originF[2]-50.0) // z
write_short(g_smokeSpr) // sprite
write_byte(random_num(15, 20)) // scale
write_byte(random_num(10, 20)) // framerate
message_end()

return;
}

// Flame sprite
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_SPRITE) // TE id
engfunc(EngFunc_WriteCoord, originF[0]+random_float(-5.0, 5.0)) // x
engfunc(EngFunc_WriteCoord, originF[1]+random_float(-5.0, 5.0)) // y
engfunc(EngFunc_WriteCoord, originF[2]+random_float(-10.0, 10.0)) // z
write_short(g_flameSpr) // sprite
write_byte(random_num(5, 10)) // scale
write_byte(200) // brightness
message_end()

// Decrease task cycle count
FLAME_DURATION -= 1;

// Keep sending flame messages
set_task(0.2, "burning_flame", taskid, args, sizeof args)
}

// Napalm Grenade: Fire Blast (originally made by Avalanche in Frostnades)
create_blast2(const Float:originF[3])
{
// Smallest ring
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_BEAMCYLINDER) // TE id
engfunc(EngFunc_WriteCoord, originF[0]) // x
engfunc(EngFunc_WriteCoord, originF[1]) // y
engfunc(EngFunc_WriteCoord, originF[2]) // z
engfunc(EngFunc_WriteCoord, originF[0]) // x axis
engfunc(EngFunc_WriteCoord, originF[1]) // y axis
engfunc(EngFunc_WriteCoord, originF[2]+385.0) // z axis
write_short(g_exploSpr) // sprite
write_byte(0) // startframe
write_byte(0) // framerate
write_byte(4) // life
write_byte(60) // width
write_byte(0) // noise
write_byte(200) // red
write_byte(100) // green
write_byte(0) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()

// Medium ring
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_BEAMCYLINDER) // TE id
engfunc(EngFunc_WriteCoord, originF[0]) // x
engfunc(EngFunc_WriteCoord, originF[1]) // y
engfunc(EngFunc_WriteCoord, originF[2]) // z
engfunc(EngFunc_WriteCoord, originF[0]) // x axis
engfunc(EngFunc_WriteCoord, originF[1]) // y axis
engfunc(EngFunc_WriteCoord, originF[2]+470.0) // z axis
write_short(g_exploSpr) // sprite
write_byte(0) // startframe
write_byte(0) // framerate
write_byte(4) // life
write_byte(60) // width
write_byte(0) // noise
write_byte(200) // red
write_byte(50) // green
write_byte(0) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()

// Largest ring
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_BEAMCYLINDER) // TE id
engfunc(EngFunc_WriteCoord, originF[0]) // x
engfunc(EngFunc_WriteCoord, originF[1]) // y
engfunc(EngFunc_WriteCoord, originF[2]) // z
engfunc(EngFunc_WriteCoord, originF[0]) // x axis
engfunc(EngFunc_WriteCoord, originF[1]) // y axis
engfunc(EngFunc_WriteCoord, originF[2]+555.0) // z axis
write_short(g_exploSpr) // sprite
write_byte(0) // startframe
write_byte(0) // framerate
write_byte(4) // life
write_byte(60) // width
write_byte(0) // noise
write_byte(200) // red
write_byte(0) // green
write_byte(0) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()
}

// Register Ham Forwards for CZ bots
public register_ham_czbots(id)
{
// Make sure it's a CZ bot and it's still connected
if (g_hamczbots || !get_pcvar_num(cvar_botquota) || !is_user_connected(id) || !is_user_bot(id))
return;

RegisterHamFromEntity(Ham_Touch, id, "fw_TouchPlayer")

// Ham forwards for CZ bots succesfully registered
g_hamczbots = true;
}

// Set entity's rendering type (from fakemeta_util)
stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
static Float:color[3]
color[0] = float(r);
color[1] = float(g);
color[2] = float( B);

set_pev(entity, pev_renderfx, fx);
set_pev(entity, pev_rendercolor, color);
set_pev(entity, pev_rendermode, render);
set_pev(entity, pev_renderamt, float(amount));
}

// Set player's health (from fakemeta_util)
stock fm_set_user_health(id, health)
{
(health > 0) ? set_pev(id, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, id);
}

// Give an item to a player (from fakemeta_util)
stock fm_give_item(id, const item[])
{
static ent
ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item));
if (!pev_valid(ent)) return;

static Float:originF[3]
pev(id, pev_origin, originF);
set_pev(ent, pev_origin, originF);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);

static save
save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, id);
if (pev(ent, pev_solid) != save)
return;

engfunc(EngFunc_RemoveEntity, ent);
}

// Find entity by its owner (from fakemeta_util)
stock fm_find_ent_by_owner(entity, const classname[], owner)
{
while ((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) {}

return entity;
}

// Get User Money
stock fm_get_user_money(id)
{
return get_pdata_int(id, OFFSET_CSMONEY, OFFSET_LINUX);
}

// Set User Money
stock fm_set_user_money(id, amount)
{
set_pdata_int(id, OFFSET_CSMONEY, amount, OFFSET_LINUX);
}

// Get User Team
stock fm_get_user_team(id)
{
return get_pdata_int(id, OFFSET_CSTEAMS, OFFSET_LINUX);
}

// Returns whether user is in a buyzone
stock fm_get_user_buyzone(id)
{
if (get_pdata_int(id, OFFSET_MAPZONE) & PLAYER_IN_BUYZONE)
return 1;

return 0;
}
public ResetHUD(id)
set_task(0.1, "ResetHUDx", id);

public ResetHUDx(id)
{
if(!is_user_connected(id)) return;

if(!ma_perk[id]) return;

cs_set_user_bpammo(id, CSW_HEGRENADE, 5);
}


  • +
  • -
  • -1


#391048 Perk "Teleport"

Napisane przez Klakier w 04.04.2012 12:30

Przedstawiam wam perk teleport. Przerobiłem go na cod'a z zombiemoda.
Proszę o wyrozumiałość jestem początkujący :D

Dołączona grafika
Nazwa: Teleport
Opis: Dostajesz 10 SMOKE'ow. Rzucasz tam gdzie chcesz sie przeteleportowac

Dołączona grafika
codperk_teleport.amxx wrzucamy do: addons/amxmodx/plugins
codperk_teleport.sma wrzucamy do: addons/amxmodx/scripting

Załączone pliki


  • +
  • -
  • 5


#552918 [Klasa] Commandos !

Napisane przez DEADP00L w 07.07.2013 06:39

Tak jak pisałem wyżej macie tutaj wersję ze sprite, który ukazuje się podczas leczenia :)

plik heal.spr wrzucamy do folderu /sprites

 

screen:

 

yu76.jpg

 

Download wer. 1.1 :

Załączone pliki


  • +
  • -
  • 5


#552865 [Klasa] Commandos !

Napisane przez DEADP00L w 06.07.2013 22:12

Siema to znowu Ja ! :D

 

Tym razem przygotowałem dla Was kolejną klasę do cod moda :) Myślę, że i ta wam się spodoba. Otóż ta klasa leczy się spadając z wysokości, pod celownikiem pokazuje nam się licznik HP, który informuje Nas ile zostało nam jeszcze HP do uleczenia. Jeżeli zostanie nam 0/100 pkt w liczniku to musimy poczekać na nową rundę :)

 

 

testyq.png

Nazwa Klasy: "Commandos"
Opis Klasy: "Posiadajac ta klase leczysz sie spadajac z wysokosci !"
Dodatkowe Bronie Klasy: "M4A1 & HEGRENADE"
Zdrowie na start: "120"
Kondycja: "40"
Inteligencja: "10"
Wytrzymalosc "10"

CVARY:

ilosc_hp "100" - tym cvarem ustalamy ile maksymalnie możemy się uleczyć (domyślnie 100)

Wymagane moduły:

engine
fun
hamsandwich

Planuję dodać sprite nad naszą głową, który będzie pokazywał że się leczymy coś jak w apteczkach.

 

testyi.png

 

 

Załączone pliki


  • +
  • -
  • 11


#552774 [Klasa] Ostatni Żywy !

Napisane przez DEADP00L w 06.07.2013 18:57

Siema :D

 

Jako, że się nudzę to postanowiłem napisać tak na szybko klasę. Nazwę klasy wziąłem z filmu "Ostatni Żywy Człowiek" ale mniejsza o to :P

Opis działania klasy macie w informacjach poniżej.

 

testyq.png

Nazwa Klasy: "Ostatni Zywy"
Opis Klasy: "Posiadajac ta klase stajesz sie niesmiertelny pod koniec rundy !"
Dodatkowe Bronie Klasy: "M4A1 & HEGRENADE"
Zdrowie na start: "120"
Kondycja: "40"
Inteligencja: "10"
Wytrzymalosc "10"

Wymagane Moduły:

hamsandwich

testyi.png

 

 

Załączone pliki


  • +
  • -
  • 8


#552798 [Klasa] Ostatni Żywy !

Napisane przez DEADP00L w 06.07.2013 19:47

Musiałbyś ustawić taska czasowego mniej więcej tak jak długość rundy. Przykładowo runda trwa i Ciebie 3min to taska ustawiasz na 2min i 50s i wtedy działa nieśmiertelność ale musiałbyś wziąć też pod uwagę to, że kiedy dedniesz to task się kasuje i od nowej rundy znowu się nalicza. Ale to już sam musisz sobie to zrobić lub napisać prośbę w innym dziale :)


  • +
  • -
  • 2


#453401 Klasa Chemik

Napisane przez A może sma? w 30.08.2012 00:33

Siema ;] Skoro już ją ktoś tu wrzucił, to teraz zrobi to jej autor ;)

Co robi klasa? Jest bardzo podobna do Medyka, lecz zamiast leczyć członków zespołu, rani wrogów ;]
Ma zmieniony model apteczki i kolor rozchodzących się pierścieni.
Pozsiada 2 trutki, które co 0,5 sekundy łącznie przez 7 sekund zadają obrażenia: 10+inteligencja/10 wszystkim będącym w jej polu rażenia.

Modele do models/QTM_CodMod

Łapatajcie:
Załączony plik  codclass_chemik.sma   4,1 KB  823 Ilość pobrań
  codclass_chemik.amxx
Załączony plik  modele.zip   5,26 KB  804 Ilość pobrań

:D
  • +
  • -
  • 17