←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Dziala odrazu perk

Zablokowany

  • +
  • -
xyz? - zdjęcie xyz? 10.07.2011

SIema, mam problem z perkiem.
on mi działa nawet jak go nie mam;d
a ja chce żeby działał dopiero jak go dostane


co jest źle?

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <engine>
#include <codmod>
#include <fakemeta>
#include <posmv>

new const nazwa[] = "Detektor";
new const opis[] = "Uzyj, aby oslepic wrogow w promieniu 250(+inteligencja)";


new spriteBeacon;
new  const g_sSound[] = "radar/detector.wav";
new bool:ma_perk[33];

public plugin_init()
{
	register_plugin(nazwa, "1.0", "xyz?");
	
	register_forward(FM_PlayerPreThink, "fwPreThink");
	
	set_task(2.75, "taskCheck4Beacon", 0, _, _, "b");
	
}

public plugin_precache(){
	spriteBeacon = engfunc(EngFunc_PrecacheModel, "sprites/beacon.spr");
	engfunc(EngFunc_PrecacheSound, g_sSound);
}

public cod_perk_enabled(id)
{
	ma_perk[id] = true;
}
	
public cod_perk_disabled(id)
	ma_perk[id] = false

public fwPreThink(id){ 
	if(!ma_perk[id])	return 1;
	if(!is_user_alive(id)) 	return 1;
		
	new iClosestPlayer = getClosestPlayer(id, IGNORUJ_SWOICH);
	if(is_user_connected(iClosestPlayer) && is_user_alive(iClosestPlayer)){
		new Float:flRange = fm_entity_range(id, iClosestPlayer);
		
		if(flRange > 2000.0) return 1;
		
		new iColor[3], sMetry[7];
		add(sMetry, sizeof sMetry - 1, "metr");
		dodajOw(flRange, sMetry, sizeof sMetry - 1);
		getHudColorsByRange(flRange, iColor);
		
		set_hudmessage(iColor[0], iColor[1], iColor[2], 0.40, 0.02, 0, 0.1, 0.01, 0.1, 0.1, 2);
		show_hudmessage(id, "Wrog jest w poblizu %.1f %s", flRange / 100.0, sMetry);
	}
	
	return 0;
}

public taskCheck4Beacon(){
	new iPlayers[32], iNum;
	get_players(iPlayers, iNum, "ae", "TERRORIST");
	
	if(iNum == 1){
		for(new i = 0 ; i < iNum; i++){
			createBeacon(iPlayers[i]);
		}
	}
}

stock createBeacon(index){
	new Float:flOrigin[3];
	pev(index, pev_origin, flOrigin);
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_BEAMCYLINDER);
	engfunc(EngFunc_WriteCoord, flOrigin[0]);
	engfunc(EngFunc_WriteCoord, flOrigin[1]);
	engfunc(EngFunc_WriteCoord, flOrigin[2] - 20.0);
	engfunc(EngFunc_WriteCoord, flOrigin[0]);   
	engfunc(EngFunc_WriteCoord, flOrigin[1]);
	engfunc(EngFunc_WriteCoord, flOrigin[2] + 200.0);
	write_short(spriteBeacon);
	write_byte(0);
	write_byte(1);
	write_byte(6);
	write_byte(2);       
	write_byte(1);      
	write_byte(255);     
	write_byte(40);    
	write_byte(10);
	write_byte(200);
	write_byte(6);
	message_end();
	
	emit_sound(index, CHAN_ITEM, g_sSound, 1.0, ATTN_NORM, 0, PITCH_NORM);
}

stock getHudColorsByRange(Float:flRange, iColor[3]){
	switch(floatround(flRange)){
		case 0..400: 		iColor = { 255, 0, 0 };
		case 401..1000: 	iColor = { 255, 255, 0 };
		case 1001..2000: 	iColor = { 0, 255, 0 };
		default: 		iColor = { 0, 255, 0 };
	}
	return 1;
}

stock Float:fm_entity_range(ent1, ent2) {
	new Float:origin1[3], Float:origin2[3];
	pev(ent1, pev_origin, origin1);
	pev(ent2, pev_origin, origin2);
	
	return get_distance_f(origin1, origin2);
}

stock dodajOw(Float:flRange, sTablica[], iLen){
	new iRange = floatround(flRange);
	new sToAdd[3];
	
	formatex(sToAdd, sizeof sToAdd - 1, "%s", iRange <= 199 ? "a" : "ow");
	
	add(sTablica, iLen, sToAdd);
}

addSayCommand(const s_Command[], const s_Handle[])
{
	new s_TempCommand[64];
	formatex(s_TempCommand, sizeof s_TempCommand - 1, "say %s", s_Command);
	register_clcmd(s_TempCommand, s_Handle);
	formatex(s_TempCommand, sizeof s_TempCommand - 1, "say_team %s", s_Command);
	register_clcmd(s_TempCommand, s_Handle);
}
Odpowiedz

  • +
  • -
BliBs_Pl - zdjęcie BliBs_Pl 11.07.2011

Skąd go ściągnąłeś?
Może zrób w każdym publicu warunek if(ma_perk[id]).
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 11.07.2011

Hmmm...
To
if(!ma_perk[id])	return 1;
if(!is_user_alive(id)) return 1;

na to:
if(!ma_perk[id])
return PLUGIN_CONTINUE;
if(!is_user_alive(id))
return PLUGIN_CONTINUE;

Może to coś da
Użytkownik kisiel96 edytował ten post 11.07.2011 15:24
Odpowiedz

  • +
  • -
xyz? - zdjęcie xyz? 11.07.2011

przetestuję zaraz.

Dodano 11 lipiec 2011 - 20:18:
nadal działa nawet jak go niemam;/
Odpowiedz

  • +
  • -
sharkowy - zdjęcie sharkowy 11.07.2011

W standardowym nowym cod modzie jest perk Rozbłysk - działanie takie same jak Twój.

Ewentualnie dodaj klamry do cod_perk_disabled.
Użytkownik RPK. Shark edytował ten post 11.07.2011 20:29
Odpowiedz

  • +
  • -
xyz? - zdjęcie xyz? 11.07.2011

to nie rozblysk ;d
kod jest z pluginu detektor
ale coś pomyślę ;)

Dodano 11 lipiec 2011 - 23:20:
zrobiłem sobie perk błyskawica i działa, a to nie chce...;d
Odpowiedz
Zablokowany