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
 

se7en - zdjęcie

se7en

Rejestracja: 05.03.2009
Aktualnie: Nieaktywny
Poza forum Ostatnio: 24.05.2019 01:26
-----

Moje tematy

PodBot Freeze

24.01.2012 01:14

Witam.
Bawie sie z botami PodBot, i mam do Was takie pytanko...
Mam Deathmatcha w ktorym CT respi sie na swoim respie, a Terro to Boty i respia sie po calej mapie...
Jednak bardzo czesto gdy rozpoczyna sie runda Bot juz kgoos zabije...

Chcialbym sie dowiedzeic czy jest mozliwosc aby na poczatku rundy boty byly zFreezowane tak by nie mogly sie ruszac ani nie mozna bylo im zadac obrazen?

P.s. wiem ze lepiej zrobic tak by to CT mialo Spawn Protection, ale zalezy mi na rozwiazaniu mojego problemu

Pozdrawiam i czekam na odpowiedz, se7en.

Co zablokuje wpis w csie: np. "se7en (M4A1) BOT"

06.08.2011 19:23

Witam ;]

W wielkim skrocie:
Mam taki prosty plugin a w nim funkcje ktora liczy kto zadal ile obrazen przeciwnikowi i w sytuacji ze Gracz1 zadal 99 obrazen Graczowi3, a Gracz2 dobil Gracza3, wyswietla sie informacja (w prawym gornym rogu) Gracz1 + Gracz2 (M4A1) Gracz3

Problem mam taki ze wyswietla sie ten "nowy" wpis oraz ten "stary"
Czyli efekt jest mniejwiecej taki:

Gracz2 (M4A1) Gracz3
Gracz1 + Gracz2 (M4A1) Gracz3

jak widzicie, wpis sie podwaja...
Jak moge zablokowac ten standardowy wpis ?

kawalek mojej funkcji:

public event_deathmsg()
{	
	if( !get_pcvar_num(p_Enabled) )
		return PLUGIN_CONTINUE;
	
	new counted_triple = get_pcvar_num(xp_kill) + get_pcvar_num(xp_triple)
	new counted_ultra = get_pcvar_num(xp_kill) + get_pcvar_num(xp_ultra)
	
	
	new iVictim = read_data(2)
	new iKiller = read_data(1)
	new iHS = read_data(3)
	new szWeapon[24]
	read_data(4, szWeapon, 23)

	g_kills[iKiller]++;

	if(!is_player(iVictim))
	{
		do_deathmsg(iKiller, iVictim, iHS, szWeapon)

		return PLUGIN_CONTINUE
	}

	g_bAlive[iVictim] = false

	if(!is_player(iKiller))
	{
		do_deathmsg(iKiller, iVictim, iHS, szWeapon)

		return PLUGIN_CONTINUE
	}
	

	new iKillerTeam = g_iTeam[iKiller]

	if(iKiller != iVictim && g_iTeam[iVictim] != iKillerTeam)
	{
		new iKiller2 = 0
		new iDamage2 = 0

		
		
		
		for(new p = 1; p <= g_maxplayers; p++)
		{
			if(p != iKiller && g_bOnline[p] && (ch_pCVar_onlyAlive && g_bAlive[p] || !ch_pCVar_onlyAlive) && iKillerTeam == g_iTeam[p] && g_iDamage[p][iVictim] >= ch_pCVar_minDamage && g_iDamage[p][iVictim] > iDamage2)
			{
				iKiller2 = p
				iDamage2 = g_iDamage[p][iVictim]
			}

			g_iDamage[p][iVictim] = 0
		}

		if(iKiller2 > 0 && iDamage2 > ch_pCVar_minDamage)
		{
			new iFrags = get_user_frags(iKiller2)+1

			g_kills[iKiller2]++;

			message_begin(MSG_ALL, msgID_scoreInfo)
			write_byte(iKiller2)
			write_short(iFrags)
			write_short(get_user_deaths(iKiller2))
			write_short(0)
			write_short(iKillerTeam)
			message_end()

			
			new szName1[32], iName1Len, szName2[32], iName2Len, szNames[32], szWeaponLong[32]

			iName1Len = get_user_name(iKiller, szName1, 31)
			iName2Len = get_user_name(iKiller2, szName2, 31)
 
			g_szName[iKiller] = szName1

			if(iName1Len < 14)
			{
				formatex(szName1, iName1Len, "%s", szName1)
				formatex(szName2, 28-iName1Len, "%s", szName2)
			}
			else if(iName2Len < 14)
			{
				formatex(szName1, 28-iName2Len, "%s", szName1)
				formatex(szName2, iName2Len, "%s", szName2)
			}
			else
			{
				formatex(szName1, 13, "%s", szName1)
				formatex(szName2, 13, "%s", szName2)
			}

			formatex(szNames, 31, "%s + %s", szName1, szName2)
			set_msg_block(msgID_sayText, BLOCK_ONCE)
			set_user_info(iKiller, "name", szNames)

			if(equali(szWeapon, "grenade"))
				szWeaponLong = "weapon_hegrenade"
			else
				formatex(szWeaponLong, 31, "weapon_%s", szWeapon)

			new args[4]

			args[0] = iVictim
			args[1] = iKiller
			args[2] = iHS
			args[3] = get_weaponid(szWeaponLong)

			set_task(0.1, "player_diePost", 0, args, 4)
		}	
	}
	return PLUGIN_CONTINUE;
}

public player_diePost(arg[])
{
	new szWeapon[24]
	new iKiller = arg[1]

	get_weaponname(arg[3], szWeapon, 23)
	replace(szWeapon, 23, "weapon_", "")

	do_deathmsg(iKiller, arg[0], arg[2], szWeapon)

	set_msg_block(msgID_sayText, BLOCK_ONCE)
	set_user_info(iKiller, "name", g_szName[iKiller])
	
	return PLUGIN_CONTINUE
}

proszę o pomoc jezeli wiecie o co mi chodzi :]

Flagi admina i get_user_flags(id)

04.08.2011 22:32

A witam was serdecznie po raz kolejny ;]

Tym razem mam taki dosyc prosty problem :D

Napisalem plugin, ktory zczytuje Adminow z pliku zewnetrznego (z serwera http) zamiast z users.ini.

Plugin pobiera $string z dostepem w formacie "abcdefghijklmnopqrstuvw"

Nastepnie dodaje admina w taki sposob:

admins_push(SteamID," ",read_flags(dostepik),read_flags(Flags));

gdzie Flags = "ce"; a dostepik to wlasnie ten $string z dostepem admina.

I teraz mam pytanie.

Mam rowniez drugi plugin ktory zmienia mi wyglad wiadomosci wyslanych przez Admina/Vipa oraz HeadAdmina.

czesc kodu to:
new bool:vip = false
	new bool:headadmin = false
	new bool:admin = false
	
	if (get_user_flags(id) & DOSTEP_ADMIN)
	{
		admin = true;
		
		if (get_user_flags(id) & DOSTEP_HEADADMIN)
		{
			admin = false;
			headadmin = true;
		}
	}
	else if(get_user_flags(id) & DOSTEP_VIP)
	{
		vip = true
	}	

I Teraz mam pytanie.
Jak moge sie odwolac do porzedniego pluginu i do tej zmiennej "dostepik" ?
Jak moge sprawdzic kto jest kim ? :)

proszę o pomoc.

P.s. mam nadizeje ze rozumiecie, bo troche chaotycznie napisalem. W razie czego, piszcie, postaram sie wytlumaczyc dokladniej ;]

Komenda w sayu z equali

04.08.2011 10:20

A wiec mam cos takiego
Po wpisaniu !admin, wywolywana jest funkcja nizej...
Problem mam taki ze widac jak jakis gracz wpisze !admin, a chce zeby nie bylo tego widac ;)
Jak to zrobic ?

public CmdSay( id )
{ 
	new name[ 32 ], steamid[ 34 ]
	
	get_user_name( id, name, 31 ) 
	get_user_authid( id, steamid, charsmax( steamid ) ) 
	
	static szText[ 256 ]
	read_args( szText, 255 )
	remove_quotes( szText )
	
	if( szText[0] != '!' )
	{
		return PLUGIN_CONTINUE
	}
	
	if( equali( szText, "!admin", 6 ) )
	{

Po prostu nie chce zeby bylo widac ze ktos wpisal komende "!admin"
proszę o pomoc ;)

Czy jest admin online

04.08.2011 09:35

Prosty Problem. Zglupialem. proszę o pomoc ;)

stock czy_jest_admin_online()
{
	for(new i=1;i<get_maxplayers();i++)
	{
		if(is_user_connected(i))
		{
			if(get_user_flags(i) & ADMIN_MAP)
				return 1
		}
	}
	return 0
}


public d*pa(id)
{ 
		if(equal(czy_jest_admin_online, "1"))
		{
		ColorChat(id, GREEN, "^x01 Na serwerze jest Admin. Wpisz w say_team:^x04 @ wiadomosc^x01, aby sie z nim skontaktowac");	
		}
		else
		{

WTF is
Error: Argument type mismatch (argument 1) on line 839
???

Serio nie wiem juz mi sie all .... ***@#$*( ;]

proszę o pomoc ;)