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
 

Harsay - zdjęcie

Harsay

Rejestracja: 05.05.2010
Aktualnie: Nieaktywny
Poza forum Ostatnio: 01.07.2018 17:57
****-

#265637 Problem z instalacją CSDM 2.1

Napisane przez Harsay w 03.07.2011 08:27

Radzę użyć najnowszego amxx w wersji 1.8.1. Pod niego najnowsza wersja csdm jest zrobiona.

AmxModX 1.8.2 + Metamod-p - Linux & Windows - AMXX.pl: Support AMX Mod X
  • +
  • -
  • 1


#256135 Rozgrzewka za pomocą CFG

Napisane przez Harsay w 05.06.2011 11:46


Kilka dni temu napisałem config umożliwiający 60 sekundową rozgrzewkę bez amxx.
Jest to przydatne na mixy lub cw.


Wersja na serwery 1000FPS
// Warmup config by Harsay
// Wersja na serwery 1000FPS
// 2.06.2011
////////////////////////////////////////

// Ustawienia
alias	"laduj_ust"	"mp_startmoney 16000; mp_freezetime 0; mp_fadetoblack 0; mp_friendlyfire 1; sv_restart 1;" // Ustawienia podczas rozgrzewki
alias	"laduj_cfg"	"exec server.cfg" // Nazwa configu do zaladowania po rozgrzewce
alias	"laduj_rr"	"exec rr.cfg" 	// Nazwa configu do restartu

// Nizej nic nie edytuj
alias "wait5" "wait; wait; wait; wait; wait;"
alias "wait10" "wait5; wait5;"
alias "wait50" "wait10; wait10; wait10; wait10; wait10;"
alias "wait200" "wait50; wait50; wait50; wait50;"
alias "wait500" "wait200; wait200; wait50; wait50;"
alias "wait1000" "wait200; wait200; wait200; wait200; wait200;" // 1 sekunda 1000FPS
alias "wait5000" "wait1000; wait1000; wait1000; wait1000; wait1000;" // 5 sekund 1000FPS
alias "wait10000" "wait5000; wait5000;"	// 10 sekund 1000FPS

laduj_ust

say >>> ROZGRZEWKA !
say >>> CFG by Harsay
say >>> LIVE ZA 1:00
wait10000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:50
wait10000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:40
wait10000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:30
wait10000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:20
wait10000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:10
wait1000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:09
wait1000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:08
wait1000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:07
wait1000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:06
wait1000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:05
wait1000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:04
wait1000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:03
wait1000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:02
wait1000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:01
wait1000
say >>> ROZPOCZECIE GRY!
laduj_cfg
wait1000
sv_restart 1
wait5000
laduj_rr

Wersja na serwery 500FPS
// Warmup config by Harsay
// Wersja na serwery 500FPS
// 2.06.2011
////////////////////////////////////////

// Ustawienia
alias	"laduj_ust"	"mp_startmoney 16000; mp_freezetime 0; mp_fadetoblack 0; mp_friendlyfire 1; sv_restart 1;"	// Ustawienia podczas rozgrzewki
alias	"laduj_cfg"	"exec nt.cfg"	// Nazwa configu do zaladowania po rozgrzewce
alias	"laduj_rr"	"exec rr.cfg" 	// Nazwa configu do restartu

// Nizej nic nie edytuj
alias "wait5" "wait; wait; wait; wait; wait;"
alias "wait10" "wait5; wait5;"
alias "wait50" "wait10; wait10; wait10; wait10; wait10;"
alias "wait200" "wait50; wait50; wait50; wait50;"
alias "wait500" "wait200; wait200; wait50; wait50;" // 1 sekunda 500FPS
alias "wait1000" "wait200; wait200; wait200; wait200; wait200;" // 2 sekundy 500FPS
alias "wait5000" "wait1000; wait1000; wait1000; wait1000; wait1000;" // 10 sekund 500FPS

laduj_ust

say >>> ROZGRZEWKA !
say >>> CFG by Harsay
say >>> LIVE ZA 1:00
wait5000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:50
wait5000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:40
wait5000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:30
wait5000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:20
wait5000
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:10
wait500
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:09
wait500
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:08
wait500
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:07
wait500
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:06
wait500
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:05
wait500
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:04
wait500
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:03
wait500
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:02
wait500
say >>> JEST TO ROZGRZEWKA! LIVE ZA 0:01
wait500
say >>> ROZPOCZECIE GRY!
laduj_cfg
wait500
sv_restart 1
wait1000
laduj_rr

Co zrobić jeżeli masz inną ilość fpsów?
Dla danej ilości fpsów przypada odpowienia ilość komendy wait.
Dla 1000fps na 1 sekundę potrzeba 1000 komend wait.
Dla 200fps na 1 sekundę potrzeba 200 komend wait.
Więc wystarczy chwilkę pobawić się aliasami.
  • +
  • -
  • 1


#255958 knife dm

Napisane przez Harsay w 04.06.2011 19:01

Wystarczy tylko plugin do respawnu.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "Respawn"
#define VERSION "1.0"
#define AUTHOR "Harsay"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("DeathMsg", "resp", "a");
}

public Respawn(id){   
	if( !is_user_alive( id ) ){
		ExecuteHamB( Ham_CS_RoundRespawn, id );
	}
	return PLUGIN_HANDLED;
} 
Amxx: http://amxx.pl/kompi...ame=respawn.sma

Oraz Infinite_Round (Aby nie kończyło rundy gdy będzie 1 gracz żywy)- działa na steam jak i nonsteam (w temacie jest źle napisane)
Infinite Round - AMXX.pl: Support AMX Mod X

1.Plik respawn.amxx wrzucasz do folderu plugins
2.Zawartość Infinite Round wrzucasz aby podmieniło foldery.
3.Do plugins.ini wpisujesz
respawn.amxx
infinite_round.amxx

  • +
  • -
  • 1


#191806 Laptop - jaki kupić ?

Napisane przez Harsay w 26.11.2010 19:41

i7 za 1500zł chyba i3/i5...

troche mało... a co zamierzasz na nim robić?


Zależy gdzie kupuje, jeżeli w saturnie czy w sklepie dla idiotów to możesz nawet przepłacić kilka stówek za sprzęt.

fuuu!, napisz do czego chcesz laptopa.
  • +
  • -
  • 1


#190856 Nowy COD MW stare LVL

Napisane przez Harsay w 22.11.2010 16:08

Radzę to zrobić tak:
1. Wyłącz cod moda
2. Zmień mapę
3. Usuń plik codmod.nvault
4. Włącz codmoda
5. Zmień mapę
6. I powinno wszystko chulać ^^
  • +
  • -
  • 1


#190486 [Perk] Kapcie ze skóry królika (Bunnyhop)

Napisane przez Harsay w 21.11.2010 10:35

Dołączona grafika
Nazwa perku: Kapcie ze skóry królika
Opis perku: Kapice wykonane ze skóry królika, dają one możliwość wykonywania tzw. bunnyhopu*

*Bunnyhop - Trick umożliwiający skakanie z dużym przyśpieszeniem.

Dołączona grafika
Dp pliku plugins-codmod.ini dopisujemy codperk_kapciezeskorykrolika.amxx

Użycie
Jak masz ten przedmiot trzymasz spacje i automatycznie skacze.

Dołączona grafika
Sprawna wersja 100% no bug
Załączony plik  codperk_kapciezeskorykrolika.sma   1,47 KB  749 Ilość pobrań
  codperk_kapciezeskorykrolika.amxx
Załączony plik  codperk_kapciezeskorykrolika.amxx   2,27 KB  349 Ilość pobrań

  • +
  • -
  • 3


#186253 Plugin na Vot Serwer OnlyHs Tak/Czy/ Nie

Napisane przez Harsay w 06.11.2010 21:55

Wielkie Dzięki a Da się zrobić tak aby od razu wysyłał widaomość w Hud Vote Rozpocznie Się za 3 2 1 I vot :P

i Widomośc w Say www.bleble.PL Death Match !


- dodałem odliczanie (po mojemu :P)
- wznowienie głosowania gdy tak i nie będzie równe
- restart gdy glosowanie się zakończy
- info w say (** www.blebleble.pl DeathMatch!)

Jeżeli chcesz aby były zawarte dźwięki odliczania to napisz a to zrobię ^^

Dodano 07 listopad 2010 - 10:58:
Masz tutaj trochę poprawione sma (akurat dzisiaj małe błędy zauważyłem :P)

#include <amxmodx> 
#include <amxmisc>
#include <colorchat>
#pragma semicolon 1;

/*WERSJA Z KOLOROWYMI WIADOMOŚCIAMI*/
/*DODATKI BY HARSAY*/

new const PLUGIN[]	=	"Vote Only HS";
new const AUTHOR[]	=	"elajt & [H]ARDBO[T] & Harsay";
new const VERSION[] =	"1.3";

new wyborow[3];

public plugin_init()  
{ 
	register_plugin(PLUGIN,VERSION,AUTHOR);
	set_task(15.0, "info_vote");
} 

/* Odliczanie po mojemu <img src='https://amxx.pl/public/style_emoticons/default/tongue.gif' class='bbc_emoticon' alt=':P' /> (Harsay) */
public info_vote() {
	set_hudmessage(0, 255, 0, -1.0, 0.13, 0, 6.0, 10);
	show_hudmessage(0, "UWAGA!^nPrzygotuj sie do glosowania na OnlyHS!");
	set_task(4.0, "info_trzy", 0);
}

public info_trzy() {
	set_hudmessage(0, 255, 0, -1.0, 0.13, 0, 6.0, 10);
	show_hudmessage(0, "Glosowanie na OnlyHS rozpocznie sie za: 3 sekundy!");
	set_task(1.0, "info_dwa", 0);
}

public info_dwa() {
	set_hudmessage(0, 255, 0, -1.0, 0.13, 0, 6.0, 10);
	show_hudmessage(0, "Glosowanie na OnlyHS nrozpocznie sie za: 2 sekundy!");
	set_task(1.0, "info_jeden", 0);
}

public info_jeden() {
	set_hudmessage(0, 255, 0, -1.0, 0.13, 0, 6.0, 10);
	show_hudmessage(0, "Glosowanie na OnlyHS rozpocznie sie za: 1 sekunde!");
	set_task(1.0, "start_vote");	
}

public start_vote(id) 
{     
	new menu = menu_create("\yChcesz grac\r HeadShot Only\y?", "menu_handler");
	menu_additem(menu, "\rTak", "1", 0);
	menu_additem(menu, "\rNie", "2", 0);
	
	menu_addblank(menu, 0);
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); 
	
	new players[32], inum;
	get_players(players, inum, "ch");
	
	for(new i = 0; i < inum; i++) menu_display(players[i], menu, 0); 
	
	set_task(15.0, "finish_vote");
	wyborow[1] = wyborow[2]; 
	
	return 1;
} 
public menu_handler(id, menu, item) 
{ 
	if (item == MENU_EXIT) 
	{ 
		menu_cancel(id); 
		return PLUGIN_HANDLED; 
	} 
	
	new data[6], name[32]; 
	new access, callback;
	
	menu_item_getinfo(menu, item, access, data, 5, _, _, callback); 
	
	new key = str_to_num(data);
	get_user_name(id, name, 31); 
	
	switch (key)  
	{ 
		case 1:  
		{ 
			ColorChat(0, GREEN, "^x03[Glosowanie]^x04 %s^x01 zaglosowal na:^x04 TAK", name); 
		} 
		case 2: 
		{ 
			ColorChat(0, GREEN, "^x03[Glosowanie]^x04 %s^x01 zaglosowal na:^x04 NIE", name); 
		} 
	}
	++wyborow[key];
	
	menu_cancel(id);
	return PLUGIN_HANDLED;
} 
public finish_vote() 
{ 
	
	if(wyborow[1] > wyborow[2]) // Jezeli bedzie wiecej tak niz nie
	{ 
		ColorChat(0, GREEN, "^x03[Glosowanie]^x04 HeadShot Only^x01 zostal wlaczony, zadecydowaly o tym glosy^x04 %d osob!", wyborow[1]); 
		server_cmd("amx_hs_mode 1");
		server_cmd("sv_restart 1");
		ColorChat(0, GREEN, "^x03**^x04 www.blebleble.pl^x01 DeathMatch!"); 
		
	} 
	else if(wyborow[2] > wyborow[1]) // Jezeli bedzie wiecej nie niz tak
	{ 
		ColorChat(0, GREEN, "^x03[Glosowanie]^x04 HeadShot Only^x01 zostal wylaczony, zadecydowaly o tym glosy^x04 %d osob!", wyborow[2]);
		server_cmd("amx_hs_mode 0");
		server_cmd("sv_restart 1");
		ColorChat(0, GREEN, "^x03**^x04 www.blebleble.pl^x01 DeathMatch!"); 
		
	} 
	else if(wyborow[1] == wyborow[2]) // Jezeli tak i nie bedzie rowne
	{
		ColorChat(0, GREEN, "^x03[Glosowanie]^x04 UWAGA!^x01 Gracze rowno zaglosowali! Glosowanie zostanie ponowione!"); 
		set_task(2.0, "info_vote");
	}
}

  • +
  • -
  • 2


#185102 Item dodający expa za zabicie.

Napisane przez Harsay w 01.11.2010 20:22

Witam.

W tym tutku wytłumaczę wam jak zrobić przedmiot dodający exp za każde zabicie.
Ten exp jest dodawany! Czyli jak kogos zabijesz (10xp) oraz będziesz posiadał ten przedmiot (+20exp) to dostaniesz 30 expa!

Zaczynamy!

To...
new const nazwy_przedmiotow[][] = {"Brak", 
	"Buty Szturmowego", //1
	"Podwojna Kamizelka", //2
	"Wzmocniona Kamizelka", //3
	"Weteran Noza", //4
	"Zaskoczenie Wroga", //5
	"Plaszcz Partyzanta", //6 
	"Morfina", //7
	"Noz Komandosa", //8
	"Podrecznik Szpiega", //9
	"Tajemnica Generala", //10
	"Notatki Ninji", //11
	"Tajemnica Wojskowa", //12
	"AWP Sniper",//13
	"Adrenalina",//14
	"Tajemnica Rambo",//15
	"Wyszkolenie Sanitarne",//16
	"Kamizelka NASA",//17
	"Wytrenowany Weteran",//18
	"Apteczka",//19
	"Eliminator Rozrzutu",//20
	"Tytanowe Naboje",//21
	"Naboje Pulkownika",//22
	"Ogranicznik Rozrzutu",//23
	"Tarcza SWAT",//24
	"Wytrenowany Rekrut",//25
	"Pancerz Nomexowy",//26
	"Notatki Kapitana",//27
	"Modul odrzutowy"
	
};

new const opisy_przedmiotow[][] = {"Zabij kogos aby dostac przedmiot", 
	"Cicho biegasz", 
	"Obniza uszkodzenia zadawane graczowi o LW",
	"Obniza uszkodzenia zadawane graczowi o LW", 
	"Zadajesz wieksze obrazenia nozem",
	"Gdy trafisz kogos od tylu, obrazenia sa 2 razy wieksze", 
	"Masz LW premii niewidocznosci",
	"1/LW szans do ponownego odrodzenia sie po smierci",
	"Natychmiastowe zabicie z Noza",
	"Masz 1/LW szans na natychmiastowe zabicie z HE. Posiadasz takze ubranie wroga",
	"Natychmiastowe zabicie granatem HE. Zadajesz LW dodatkowych obrazen",
	"Mozesz zrobic podwojny skok w powietrzu",
	"Twoje obrazenia sa zredukowane o 5. Masz 1/LW szans na oslepienie wroga",
	"Natychmiastowe zabicie z AWP",
	"Za kazdego Fraga dostajesz 50 zycia",
	"Za kazdego Fraga dostajesz pelen magazynek oraz +20 hp",
	"Dostajesz 10 HP co 5 sekund",
	"Masz 500 pancerza",
	"Dostajesz +100 HP co runde, wolniej biegasz",
	"Uzyj, aby uleczyc sie do maksymalnej ilosci HP",
	"Nie posiadasz rozrzutu broni",
	"Zadajesz 10 obrazen wiecej",
	"Zadajesz 20 obrazen wiecej",
	"Twoj rozrzut jest mniejszy",
	"Nie dzialaja na ciebie zadne przedmioty",
	"Dostajesz +50 HP co runde, wolniej biegasz",
	"Masz 1/LW szans na odbicie pocisku przez pancerz",
	"Jestes odporny na 3 pociski w kazdej rundzie",
	"Nacisnij CTRL i SPACE aby uzyc modulu, modul laduje sie co 4 sekundy"
};

... zmieniamy na
new const nazwy_przedmiotow[][] = {"Brak", 
	"Buty Szturmowego", //1
	"Podwojna Kamizelka", //2
	"Wzmocniona Kamizelka", //3
	"Weteran Noza", //4
	"Zaskoczenie Wroga", //5
	"Plaszcz Partyzanta", //6 
	"Morfina", //7
	"Noz Komandosa", //8
	"Podrecznik Szpiega", //9
	"Tajemnica Generala", //10
	"Notatki Ninji", //11
	"Tajemnica Wojskowa", //12
	"AWP Sniper",//13
	"Adrenalina",//14
	"Tajemnica Rambo",//15
	"Wyszkolenie Sanitarne",//16
	"Kamizelka NASA",//17
	"Wytrenowany Weteran",//18
	"Apteczka",//19
	"Eliminator Rozrzutu",//20
	"Tytanowe Naboje",//21
	"Naboje Pulkownika",//22
	"Ogranicznik Rozrzutu",//23
	"Tarcza SWAT",//24
	"Wytrenowany Rekrut",//25
	"Pancerz Nomexowy",//26
	"Notatki Kapitana",//27
	"Modul odrzutowy", //28
        "Pamietnik zolnierza"	
};

new const opisy_przedmiotow[][] = {"Zabij kogos aby dostac przedmiot", 
	"Cicho biegasz", 
	"Obniza uszkodzenia zadawane graczowi o LW",
	"Obniza uszkodzenia zadawane graczowi o LW", 
	"Zadajesz wieksze obrazenia nozem",
	"Gdy trafisz kogos od tylu, obrazenia sa 2 razy wieksze", 
	"Masz LW premii niewidocznosci",
	"1/LW szans do ponownego odrodzenia sie po smierci",
	"Natychmiastowe zabicie z Noza",
	"Masz 1/LW szans na natychmiastowe zabicie z HE. Posiadasz takze ubranie wroga",
	"Natychmiastowe zabicie granatem HE. Zadajesz LW dodatkowych obrazen",
	"Mozesz zrobic podwojny skok w powietrzu",
	"Twoje obrazenia sa zredukowane o 5. Masz 1/LW szans na oslepienie wroga",
	"Natychmiastowe zabicie z AWP",
	"Za kazdego Fraga dostajesz 50 zycia",
	"Za kazdego Fraga dostajesz pelen magazynek oraz +20 hp",
	"Dostajesz 10 HP co 5 sekund",
	"Masz 500 pancerza",
	"Dostajesz +100 HP co runde, wolniej biegasz",
	"Uzyj, aby uleczyc sie do maksymalnej ilosci HP",
	"Nie posiadasz rozrzutu broni",
	"Zadajesz 10 obrazen wiecej",
	"Zadajesz 20 obrazen wiecej",
	"Twoj rozrzut jest mniejszy",
	"Nie dzialaja na ciebie zadne przedmioty",
	"Dostajesz +50 HP co runde, wolniej biegasz",
	"Masz 1/LW szans na odbicie pocisku przez pancerz",
	"Jestes odporny na 3 pociski w kazdej rundzie",
	"Nacisnij CTRL i SPACE aby uzyc modulu, modul laduje sie co 4 sekundy",
        "Za kazde zabicie dostajesz bonusowe punkty doswiadczenia."
};

Przedmiot będzie się nazywał: "Pamiętnik żołnierza"

Szukamy:
Death()

Pod...
if(informacje_przedmiotu_gracza[attacker][0] == 14)
{
new nowe_zdrowie = (zdrowie+50<maksymalne_zdrowie_gracza[attacker])? zdrowie+50: maksymalne_zdrowie_gracza[attacker];
set_user_health(attacker, nowe_zdrowie);
}

Dodajemy:
new bonus_doswiadczenie = 20
if(informacje_przedmiotu_gracza[attacker][0] == 29) // 29 to numer przedmiotu.
		nowe_doswiadczenie += bonus_doswiadczenie

I to było na tyle :)

Pozdrawiam.

Jeżeli masz pytanie pisz śmiało :)
  • +
  • -
  • 1


#180501 Nożówka v0.2

Napisane przez Harsay w 16.10.2010 12:05

Dołączona grafika
Gdy następuje rozpoczęcie gry (game commencing) rozpoczyna się runda nożowa.
Gdy jedna z drużyn wygra następują trzy restarty i normalna gra.
Nożówka występuje tylko przy pierwszym rozpoczęciu!

Dołączona grafika
Autor: Harsay
Wersja: 0.2

Zmiany:
Spoiler


Dołączona grafika
<amxmisc>
<amxmodx>
<colorchat>

Dołączona grafika
Standardowa

Dołączona grafika
wersja 0.2
Załączony plik  harsay_nozowka.amxx   5,53 KB  580 Ilość pobrań

Załączony plik  harsay_nozowka.sma   1,98 KB  1705 Ilość pobrań
  harsay_nozowka.amxx

Dodano 17 październik 2010 - 10:38:
Aktualizacja do wersji v0.2
  • +
  • -
  • 9


#173015 [Engine/Fakemeta] 3rd Person (widok zza pleców)

Napisane przez Harsay w 20.09.2010 22:32

Źródło
CS 1.6 Custom 3rd Person View - AlliedModders

Nie jestem autorem tej funkcji. Tylko tutaj wrzucam.

Wersja <engine>
Create_PlayerCamera( id )
{
    new entid;
    while( (entid = find_ent_by_class(entid, "PlayerCamera")) != 0)
        if( entity_get_edict( entid, EV_ENT_owner ) == id )
        {
            attach_view( id, entid );
            return;
        }
        
    entid = create_entity("info_target");
        
    if(entid)
    {
        entity_set_string(entid,EV_SZ_classname,"PlayerCamera");
        entity_set_model(entid,"models/w_usp.mdl");
        entity_set_int( entid, EV_INT_solid, SOLID_TRIGGER);
        entity_set_int( entid, EV_INT_movetype, MOVETYPE_FLY );
        
        entity_set_edict( entid, EV_ENT_owner, id );
        entity_set_int( entid, EV_INT_rendermode, kRenderTransTexture);
        entity_set_float( entid, EV_FL_renderamt, 0.0);
        attach_view( id, entid ); 
        entity_set_float( entid, EV_FL_nextthink, get_gametime() );
    }   
}

public Think_PlayerCamera( entid )
{
    new id = entity_get_edict( entid, EV_ENT_owner );
    
    //Kill our entity if we hit USE key
    new buttons = entity_get_int( id, EV_INT_button );
    if(buttons & IN_USE)
    {
        attach_view( id, id );
        remove_entity(entid);
        return;
    }

    new Float:origin[3], Float:angle[3], Float:vBack[3];
    entity_get_vector( id, EV_VEC_origin, origin );
    entity_get_vector( id, EV_VEC_v_angle, angle );

    angle_vector( angle, ANGLEVECTOR_FORWARD, vBack );

    origin[2] += 20.0;
    
    origin[0] += (-vBack[0] * 150.0);
    origin[1] += (-vBack[1] * 150.0);
    origin[2] += (-vBack[2] * 150.0);

    entity_set_origin( entid, origin );
    entity_set_vector( entid, EV_VEC_angles, angle );   
    
    entity_set_float( entid, EV_FL_nextthink, get_gametime() );
}

Wersja <fakemeta> + komenda
    new const g_sCamclass[] = "PlayerCamera";

    public plugin_init()
    {
        register_clcmd( "say /cam", "cmdCam" );
        register_forward( FM_Think, "Think_PlayerCamera" );
    }

    public cmdCam( id )
        Create_PlayerCamera( id );

    Create_PlayerCamera( id )
    {
        new iEnt; static const sClassname[] = "classname";
        while( ( iEnt = engfunc( EngFunc_FindEntityByString, iEnt, sClassname, g_sCamclass ) ) != 0 )
        {
            if( pev( iEnt, pev_owner) == id )
            {
                engfunc( EngFunc_SetView, id, iEnt );
                return;
            }
        }

        static const sInfo_target[] = "info_target";
        iEnt = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, sInfo_target ) )

        if( !iEnt )
            return;
        
        static const sCam_model[] = "models/w_usp.mdl";
        set_pev( iEnt, pev_classname, g_sCamclass );
        engfunc( EngFunc_SetModel, iEnt, sCam_model );

        set_pev( iEnt, pev_solid, SOLID_TRIGGER );
        set_pev( iEnt, pev_movetype, MOVETYPE_FLY );
        set_pev( iEnt, pev_owner, id );

        set_pev( iEnt, pev_rendermode, kRenderTransTexture );
        set_pev( iEnt, pev_renderamt, 0.0 );

        engfunc( EngFunc_SetView, id, iEnt );
        set_pev( iEnt, pev_nextthink, get_gametime() );
    }

    public Think_PlayerCamera( iEnt )
    {
        static sClassname[32];
        pev( iEnt, pev_classname, sClassname, sizeof sClassname - 1 );

        if( !equal( sClassname, g_sCamclass ) )
            return FMRES_IGNORED;

        static iOwner;
        iOwner = pev( iEnt, pev_owner );

        if( !is_user_alive( iOwner ) )
            return FMRES_IGNORED;

        static iButtons;
        iButtons = pev( iOwner, pev_button );

        if( iButtons & IN_USE )
        {
            engfunc( EngFunc_SetView, iOwner, iOwner );
            engfunc( EngFunc_RemoveEntity, iEnt );
            return FMRES_IGNORED;
        }

        static Float:fOrigin[3], Float:fAngle[3];
        pev( iOwner, pev_origin, fOrigin );
        pev( iOwner, pev_v_angle, fAngle );

        static Float:fVBack[3];
        angle_vector( fAngle, ANGLEVECTOR_FORWARD, fVBack );

        fOrigin[2] += 20.0;

        fOrigin[0] += ( -fVBack[0] * 150.0 );
        fOrigin[1] += ( -fVBack[1] * 150.0 );
        fOrigin[2] += ( -fVBack[2] * 150.0 );

        engfunc( EngFunc_SetOrigin, iEnt, fOrigin );

        set_pev( iEnt, pev_angles, fAngle );
        set_pev( iEnt, pev_nextthink, get_gametime() );

        return FMRES_HANDLED;
    }

Niedługo opiszę. Akurat wrzucałem to kiedy już nie miałem siły...
  • +
  • -
  • 1


#173007 Skarga na [G]o[Q]

Napisane przez Harsay w 20.09.2010 22:18

Skarga anulowana.

Hmmm... mogłem nie pisać że to z alliedmodders, mogłem skłamać i napisać że wszystko sam zrobiłem. Cóż...

Od jutra odrabiam ostrzeżenia.

[warn=Pavulon]skopiowanie linijki kodu prowadzi w odpowiednie miejsce, więc pewnie natychmiastowego bana byś zebrał[/warn]
  • +
  • -
  • -1


#172647 [nVault] Zdobywanie doswiadczenia. [bez klas!]

Napisane przez Harsay w 19.09.2010 17:41

Witam.
Trzymajcie gotową podstawę zdobywania doświadczenia i poziomów za pomocą nvault.

Jest to kod z alliedmodders w 90% przerobiony przeze mnie + małe zapożyczenie z cod moda

Spoiler


Cvary:
amx_exp_kill "" // Doswiadczenie za zabicie kogos
amx_save_type "" // Typ zapisu 1 - steamid // 2 - Nick

  • +
  • -
  • 3


#172572 Problem z xp modem

Napisane przez Harsay w 19.09.2010 13:51

Dam tobie cały poprawiony kod tego exp moda (z alliedmodders masz?) :
PAMIĘTAJ EXP I LVL JEST ZAPISYWANY NA STEAM ID!
#include <amxmodx>
#include <amxmisc>
#include <nvault>

new const LEVELS[6] = {
	100, 
	200, 
	400, 
	800,
	1600,
	3200
}
new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
new XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault
new gmsgStatusText;
public plugin_init()
{
	register_plugin("XpMod", "1.0", "Fxfighter")
	
	register_event("DeathMsg", "eDeath", "a") 
	
	SaveXP = register_cvar("SaveXP","1")
	XP_Kill=register_cvar("XP_per_kill", "20")
	XP_Hs=register_cvar("XP_hs_bonus","20")
	XP_Knife=register_cvar("XP_knife_bonus","20")
	g_vault = nvault_open("animod")
	
	register_clcmd("say /exp", "lvl_info")
	register_clcmd("say_team /exp", "lvl_info")
}
public eDeath( id )
{       
	new attacker = read_data( 1 )
	new headshot = read_data( 3 )
	new weapon[ 64 ]
	if(!is_user_connected(id) || !is_user_connected(attacker)) return;
	read_data(4,weapon,63) 
	
	PlayerXP[attacker] += get_pcvar_num(XP_Kill)
	
	if(headshot)
		PlayerXP[attacker] += get_pcvar_num(XP_Hs)
	
	if(equal(weapon,"knife"))
		PlayerXP[attacker] += get_pcvar_num(XP_Knife)
	
	
	while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
		{!
		client_print(attacker, print_chat, "[ExpTest] LEVEL UP!")
		PlayerLevel[attacker] += 1
	}
	SaveData(attacker)
}
public lvl_info(id)
{	
	new level_exp[512] 
	
	format(level_exp,1023,"Poziom: %i | Doswiadczenie: %i", PlayerLVL[id], PlayerXP[id])
	
	message_begin(MSG_ONE, gmsgStatusText, {0,0,0}, id) 
	write_byte(0) 
	write_string(level_exp) 
	message_end()	
}
public client_connect(id)
{
	if(get_pcvar_num(SaveXP) == 1)
	{
		
		LoadData(id)
	}
}
public client_disconnect(id)
{
	if(get_pcvar_num(SaveXP) == 1)
	{
		
		SaveData(id)
	}
	PlayerXP[id] = 0
	PlayerLevel[id] = 0
}
public SaveData(id)
{
	new AuthID[35]
	get_user_authid(id,AuthID,34)
	
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-Mod",AuthID)
	format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
	nvault_set(g_vault,vaultkey,vaultdata)
	return PLUGIN_CONTINUE
}
public LoadData(id)
{
	new AuthID[35]
	get_user_authid(id,AuthID,34)
	
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-Mod",AuthID)
	format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
	nvault_get(g_vault,vaultkey,vaultdata,255)
	
	replace_all(vaultdata, 255, "#", " ")
	
	new playerxp[32], playerlevel[32]
	
	parse(vaultdata, playerxp, 31, playerlevel, 31)
	
	PlayerXP[id] = str_to_num(playerxp)
	PlayerLevel[id] = str_to_num(playerlevel)
	
	return PLUGIN_CONTINUE
}

  • +
  • -
  • 1


#141570 Ustawianie prędkości gracza

Napisane przez Harsay w 04.06.2010 22:34

Może to tobie pomoże:
/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new shop

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_logevent("koniec", 2, "1=Round_End") 
	
	shop = menu_create("Sklep","menushop");	
	menu_additem(shop,"Szybkosc");
	
}

public plugin_cfg() {
}

public menushop(id, menu, item) {	
	switch(item) {
		case: 0 {
			ustaw_szybkosc(id)
		}
	}
}

public ustaw_szybkosc(id) {
	set_user_maxspeed(id, 720)
	set_task(1.0, "speed_cont", 666, "", id)
}

public speed_cont(id) ustaw_szybkosc(id)

public koniec(id) {
	remove_task(id, 666)
}

  • +
  • -
  • 1


#139623 Poprawa jakości dźwięku na serwerze.

Napisane przez Harsay w 29.05.2010 13:42

Pewnie niektórzy z was zauważyli że na waszym serwerze w rozmowie przez mikrofon jest straszna jakość dźwięku.
Aby poprawić jakość dźwięku na serwerze, powinniśmy użyć kodeka o nazwie SPEEX, który charakteryzuje sie dosyć dobrą jakością i wydajnością w porównaniu do poprzednika. Aby to zrobić należy dodać 2 komendy do pliku serwer.cfg w katalogu cstrike na naszym serwerze:

1. Pierwsza komenda sv_voicecodec voice_speex, przestawia kodek na serwerze z MILES na SPEX:

sv_voicecodec voice_speex

2. Drugą komendą zmieniamy jakosc strumienia dzwieku:

sv_voicequality X

X to ustalenie, jak duży procent łącza ma zużywać Speex, co przekłada sie na jakość dźwięku.
sv_voicequality 1 = 2,400 bitów/sekunde, 7.5% zuzycia lacza (najsłabsza jakość)
sv_voicequality 2 = 6,000 bitów/sekunde, 18.75% zuzycia lacza
sv_voicequality 3 = 8,000 bitów/sekunde, 25% zuzycia lacza
sv_voicequality 4 = 11,200 bitów/sekunde, 35% zuzycia lacza
sv_voicequality 5 = 15,200 bitów/sekunde, 47.5% zuzycia lacza (najlepsza jakość)

Akurat znalazłem to na kompie i postanowiłem wrzucić na forum.
  • +
  • -
  • 1