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
 

SuchyBGC - zdjęcie

SuchyBGC

Rejestracja: 22.07.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 02.01.2015 22:31
-----

Moje tematy

Edycja obrażen klasy Umarly

16.11.2014 14:29

Witam.

Posiadam klasę Umarly i gdy używa skilla czyli tego ducha to zabiera 60+INT.

I moje pytanie jak zniwelować to że jest to uzależnione od INT'a. Chciałbym żeby było samo statyczne 60 DMG.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>
#include <engine>


new sprite_blast;
new ilosc_rakiet_gracza[33];
new poprzednia_rakieta_gracza[33];

new const nazwa[] = "Ghost";
new const opis[] = "Posiada 1 ducha pod (e)";
new const bronie = 1<<CSW_AUG | 1<<CSW_DEAGLE;
new const zdrowie = 0;
new const kondycja = 30;
new const inteligencja = 5;
new const wytrzymalosc = 20;

public plugin_init() 
{
	register_plugin(nazwa, "1.0", "QTM_Peyote")
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	register_touch("rocket", "*" , "DotykRakiety");
	
	register_event("ResetHUD", "ResetHUD", "abe");
}

public plugin_precache()
{
	sprite_blast = precache_model("sprites/dexplo.spr");
	precache_model("models/ghost.mdl");
}

public cod_class_enabled(id)
	ilosc_rakiet_gracza[id] = 1;

public cod_class_skill_used(id)
{
	if (!ilosc_rakiet_gracza[id])
	{
		client_print(id, print_center, "Wykorzystales juz wszystkie Duchy!");
		return PLUGIN_CONTINUE;
	}
	
	if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
	{
		client_print(id, print_center, "Duchow mozesz uzywac co 2 sekundy!");
		return PLUGIN_CONTINUE;
	}
	
	if (is_user_alive(id))
	{
		poprzednia_rakieta_gracza[id] = floatround(get_gametime());
		ilosc_rakiet_gracza[id]--;

		new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
		
		entity_get_vector(id, EV_VEC_v_angle, vAngle);
		entity_get_vector(id, EV_VEC_origin , Origin);
	
		new Ent = create_entity("info_target");
	
		entity_set_string(Ent, EV_SZ_classname, "rocket");
		entity_set_model(Ent, "models/ghost.mdl");
	
		vAngle[0] *= -1.0;
	
		entity_set_origin(Ent, Origin);
		entity_set_vector(Ent, EV_VEC_angles, vAngle);
	
		entity_set_int(Ent, EV_INT_effects, 2);
		entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
		entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
		entity_set_edict(Ent, EV_ENT_owner, id);
	
		VelocityByAim(id, 1000 , Velocity);
		entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
	}	
	return PLUGIN_CONTINUE;
}

public DotykRakiety(ent)
{
	if (!is_valid_ent(ent))
		return;

	new attacker = entity_get_edict(ent, EV_ENT_owner);
	

	new Float:fOrigin[3];
	entity_get_vector(ent, EV_VEC_origin, fOrigin);	
	
	new iOrigin[3];
	for(new i=0;i<3;i++)
		iOrigin[i] = floatround(fOrigin[i]);
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
	write_byte(TE_EXPLOSION);
	write_coord(iOrigin[0]);
	write_coord(iOrigin[1]);
	write_coord(iOrigin[2]);
	write_short(sprite_blast);
	write_byte(32); 
	write_byte(20); 
	write_byte(0);
	message_end();

	new entlist[33];
	new numfound = find_sphere_class(ent, "player", 190.0, entlist, 32);
	
	for (new i=0; i < numfound; i++)
	{		
		new pid = entlist[i];
		
		if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
			continue;
		cod_inflict_damage(attacker, pid, 80.0, 0.0, ent, (1<<24));
	}
	remove_entity(ent);
}	

public ResetHUD(id)
	ilosc_rakiet_gracza[id] = 1;

public client_disconnect(id)
{
	new ent = find_ent_by_class(0, "rocket");
	while(ent > 0)
	{
		if(entity_get_edict(id, EV_ENT_owner) == id)
			remove_entity(ent);
		ent = find_ent_by_class(ent, "rocket");
	}
}

Galileo - źle zmienia mapy

14.09.2014 11:37

Siemka.

Mam ten plugin do zmiany map - http://amxx.pl/topic...arzadzania-map/

Problem polega na tym, że plugin zmienia na losowa mapę.

Po wygranym vote, normalnie jest napisane na chatcie, że wygrała mapa de_dust2 a gdy dochodzi do zmiany to zmienia na zła i jest de_inferno.

Logi są czyste, nie żadnej wzmianki od galileo.

Galileo.cfg

// Galileo Configuration File



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

amx_extendmap_step 15 //ile mapa ma by� przed�u�ana je�li gracze wybior� ta opcje (w minutach)

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

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


gal_banrecentstyle 1 // jak maja by� wy�wietlane mapy po wpisaniu recentmaps
// 1 - wszystkie mapy w jednej linii
// 2 - kazda mapa w osobnej lini

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

gal_rtv_wait 10
//ile czasu po starcie mapy mo�e by� rozpocz�te rtv

gal_rtv_ratio 0.60
//Ile % graczy musi wpisa� rtv �eby zosta�o odpalone.

gal_nom_playerallowance 2 //ile nominacji mo�e zrobi� ka�dy gracz

gal_nom_mapfile mapcycle.txt // sk�d maja by� sczytywane mapy

gal_nom_prefixes 0
// prefix przy mapie wymagany?

gal_nom_qtyused 0 // ile nominacji ma by� u�ywanych w nast�pnym g�osowaniu.

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

gal_runoff_enabled 1
//Mozliwe glosowanie rozstrzygaj�ce

gal_runoff_duration 15
//po ilu sekundach ma si� rozpacza�

gal_vote_weight 1
//Czy ma by� wi�ksza waga g�osu admina?

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

gal_endonround 1
//Ma czeka� do sko�czenia rundy ze zmian� mapy?

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

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


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

gal_endofmapvote 1

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

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

gal_vote_duration 15 // ile sekund powinien trwa� vote

gal_vote_mapfile mapcycle.txt // sk�d ma pobiera� mapy

gal_vote_expirationcountdown 1
gal_vote_uniqueprefixes 0

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

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

gal_emptyserver_mapfile mapcycle.txt
// Plik z kt�rego czyta empty serwer mapcyke

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

W czym jest problem ?

Jak wychwycić gracza który wypuścił rakietę?

02.09.2014 17:14

Czy jest taka funkcja, że złapać tego kto wypuścił rakietę? Jego ID lub nick, cokolwiek?

Chodzi o CodMod. Rakieta, duch i tym podobne byty.

Blokowanie obrażeń z jakiegoś bytu

01.09.2014 12:13

Siemka mam taki kod:

Define:

#define dmg(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %2 && get_user_team(%1) == 1)
#define dmg2(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %1 && get_user_team(%2) == 1)

Kod:

public HamTakeDamage(victim, inflictor, attacker)
	return (dmg(victim, attacker) || dmg2(victim, attacker)  || !is_user_connected(attacker)) ? HAM_IGNORED : HAM_SUPERCEDE;

Czy ja zmienię to na:

public HamTakeDamage(victim, inflictor, attacker)
	return (dmg(victim, attacker) || dmg2(victim, attacker) || dmg(victim, inflictor) || dmg2(victim, inflictor) || !is_user_connected(attacker)) ? HAM_IGNORED : HAM_SUPERCEDE;

To czy ten kod zablokuje mi też obrażenia z bytu?

Bo pierwszy Kod blokuje obrażenia zadane z tylko i wyłącznie z broni, a mi chodzi o to żeby blokował każdy byt jak np. uderzenie z rakiety

Dzięki z góry, jestem zielony w pawn

Kolejka do TT - blokowanie zadanych obrażeń

30.08.2014 21:36

Mam ten plugin - http://amxx.pl/topic...tt-na-deathrun/

Chciałbym aby ktoś przerobił mi ten plugin - chodzi o blokowanie zadanych obrażeń.

Plugin blokuje tylko obrażenia zadane z broni, a takich rzeczy jak rakiety, miny, trutki nie blokuje.

Przez to gracz który nie jest pierwszy w kolejce może zabić np. z rakiety terrorystę.

Proszę Was o przerobienie go na blokowanie każdego typu obrażeń dla tego kto nie jest pierwszy w kolejce.

Tutaj sma:

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

#include <deathrun_stats>

#define PLUGIN "Kolejka do TT"
#define VERSION "1.0"
#define AUTHOR "DarkGL"

#define dmg(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %2 && get_user_team(%1) == 1)
#define dmg2(%1,%2) (ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == %1 && get_user_team(%2) == 1)

new Array: arKolejka;
new kolor;
new hud;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	arKolejka = ArrayCreate(1,32);
	
	kolor = register_cvar("kolejka_kolorek", "0 255 0");
	
	register_event("HLTV", "event_RoundStart", "a", "1=0", "2=0"); 
	
	RegisterHam(Ham_TakeDamage, "player", "HamTakeDamage");
	RegisterHam(Ham_Spawn,"player","HamSpawned",1)
	
	register_event("DeathMsg", "DeathMsg", "a", "1=0")
	
	hud = CreateHudSyncObj();
	
	set_task(1.0, "wyswietl",.flags = "b");
}

public DeathMsg(){
	new victim = read_data(2)
	
	new iRet = iFind(victim);
	if(iRet != -1){
		ArrayDeleteItem(arKolejka,iRet);
		
		if(iRet	== 0 && ArraySize(arKolejka) > 0 && ArrayGetCell(arKolejka,0) == victim){
			ArrayDeleteItem(arKolejka,0);
			if(ArraySize(arKolejka) > 0)	fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40);
		}
	}
	
	return PLUGIN_HANDLED;
}

public HamSpawned(id){
	if(!is_user_alive(id))	return ;
	
	fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 40);
}

public event_RoundStart() {
	ArrayClear(arKolejka);
}

public HamTakeDamage(victim, inflictor, attacker)
	return (dmg(victim, attacker) || dmg2(victim, attacker) || !is_user_connected(attacker)) ? HAM_IGNORED : HAM_SUPERCEDE;

public fwPlayerFinished(id) {
	if( is_user_alive( id ) && cs_get_user_team( id ) == CS_TEAM_CT ){
		new iRet = iFind(id);
		if(iRet == -1)	ArrayPushCell(arKolejka,id);
		
		if(is_user_alive(ArrayGetCell(arKolejka,0)))	fm_set_user_rendering(ArrayGetCell(arKolejka,0), kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 40);
		else ArrayDeleteItem( arKolejka , 0 );
	}
}

public wyswietl() {
	
	new msg[512];
	new bool: bNone = true;
	new szName[64]
	
	for(new i = 0;i<ArraySize(arKolejka);i++){
		if(!is_user_alive(ArrayGetCell(arKolejka,i))){
			ArrayDeleteItem(arKolejka,i)
			continue;
		}
		
		get_user_name(ArrayGetCell(arKolejka,i), szName,charsmax(szName));
		
		formatex(msg, 511, "%s%d. %s^n", msg, i+1, szName); 
		bNone = false;
	}
	
	if(bNone) formatex(msg, 511, "Lista jest pusta");
	
	new color[15], rgb[3][4]; get_pcvar_string(kolor, color, 14);
	parse(color, rgb[0], 3, rgb[1], 3, rgb[2], 3);
	
	set_hudmessage(str_to_num(rgb[0]), str_to_num(rgb[1]), str_to_num(rgb[2]), 0.78, 0.3, 0, 6.0, 1.0);
	ShowSyncHudMsg(0, hud, "Kolejka:^n%s^n^n", msg);
}

public client_disconnect(id)	arClear(id);
public client_connect(id)	arClear(id);

arClear(id){
	new iRet = iFind(id);
	
	if(iRet == -1)	return	;
	
	ArrayDeleteItem(arKolejka,iRet)
}

iFind(id){
	for(new i = 0;i<ArraySize(arKolejka);i++){
		if(ArrayGetCell(arKolejka,i) == id)	return i;
	}
	return -1;
}