Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5650 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki,man reikia tokio dalyko ,kad per /lr galetu ir ct rasyti + kai lieki 1x1 tik tada gali rasyti /lr ,atsiskaityciau +3REP arba FLT

/* (c) Copyright 2009 by Rube
*
*	--------------------------------------
*	---- Jailbreak Last Request ----------
*	--------------------------------------
*	---------- Author: rube --------------
*	--------------------------------------
*		About the plugin:
*	This plugin allows the last terrorist access a menu to challenge a duel 
*	(typing / lr or !Lr ) the counter-terrorist that he want.
*	--------------------------------------
*		Credits:
*	- Emp` (New AMXX Menu System)
*	- MouseSplash! (Ideas and test)
*	- cikjam (how to optimize my submenu all in one)
*	- Ganz (test)
*	--------------------------------------
*	-v1.6: Optimized duel's menu ( all in one) and set glow with fun
*	-v1.5: Added teleport for every single duel (only map some1s_jailbreak)
*	-v1.4: Added ML.
*	-V1.3: Block the menu until the TE kills the CT that he challenge.
*	-v1.2: Add shot for shot on deagle duel.
*	-V1.1: Unable touch weapons during the duel.
* 	-V1.0: First release.
*/

#include 
#include 
#include 
#include 
#include 
#include 

#define PLUGIN "Jailbreak Last Request"
#define VERSION "1.6"
#define AUTHOR "rube"

/*================================================================================
Variables | bools | Cvars		
=================================================================================*/

new g_maxPlayers, g_msgSayText, beacon_sprite

new cvar_granadas_bpammo, cvar_scout_bpammo, cvar_effect

new bool:touch_weapons[33], bool:once[33], bool:player_challenged[33], bool:duel_active,
bool:knife_duel[33] ,bool:deagle_duel[33], bool:grenade_duel[33], bool:scout_duel[33]

new tag[] = "[JailBreak]"

/*================================================================================
Init n' precache		
=================================================================================*/

public plugin_precache() 
{	
beacon_sprite = precache_model("sprites/shockwave.spr")
}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_event("HLTV", "event_round_start", "a", "1=0", "2=0")

RegisterHam(Ham_Touch, "weaponbox", "fw_touch_weapon")
RegisterHam(Ham_Touch, "armoury_entity", "fw_touch_weapon")
RegisterHam(Ham_Touch, "weapon_shield", "fw_touch_weapon")
RegisterHam(Ham_Spawn, "player", "fw_player_respawn", 1)
RegisterHam(Ham_Killed, "player", "fw_player_killed")	

register_forward(FM_CmdStart,"fw_cmdstart",1)

// Comando de jugador - Client commands
register_clcmd("say /lr", "duel_menu")
register_clcmd("say !lr", "duel_menu")
register_clcmd("say_team /lr", "duel_menu")
register_clcmd("say_team !lr", "duel_menu")

// Cvars
cvar_granadas_bpammo = register_cvar("jb_grenade_bpammo","10") // amount bpammo grenade | cantidad de granadas
cvar_scout_bpammo = register_cvar("jb_scout_bpammo", "10") // amount bpammo scout | cantidad de balas pa' la scout
cvar_effect = register_cvar("jb_effect", "2") // 0 = glow , 1 = beacon, 2 = glow n' beacon

g_maxPlayers = get_maxplayers()

g_msgSayText = get_user_msgid("SayText")

register_dictionary("jailbreak_last_request.txt")
}

/*================================================================================
Round Start				
=================================================================================*/

public event_round_start()
{
duel_active = false
}

/*================================================================================
forwards				
=================================================================================*/

public fw_player_respawn(id)
{
if(!is_user_alive(id) || !cs_get_user_team(id))
	return

set_user_rendering(id)
remove_task(id)
touch_weapons[id] = false 
once[id] = false 
knife_duel[id] = false
deagle_duel[id] = false
grenade_duel[id] = false
scout_duel[id] = false	
player_challenged[id] = false
}

public fw_touch_weapon(weapon, id)
{
if (!is_user_connected(id))
	return HAM_IGNORED;

new players[32], pnum, tempid;
get_players(players, pnum, "a");
for( new i; i	{        
	tempid = players[i];
}

if (touch_weapons[id] || touch_weapons[tempid])
	return HAM_SUPERCEDE;

return HAM_IGNORED;
}


public fw_cmdstart(player,uc_handle,random_seed)
{
if(deagle_duel[player])
{
	cs_set_user_bpammo(player, CSW_DEAGLE, 1)
}
}

public fw_player_killed(victim, attacker, shouldgib)
{
new name[32]
get_user_name(attacker, name, 31)

if(duel_active)
{
	if(cs_get_user_team(victim) == CS_TEAM_CT && player_challenged[victim])
	{
		knife_duel[attacker] = false
		deagle_duel[attacker] = false
		grenade_duel[attacker] = false
		scout_duel[attacker] = false
		once[attacker] = false
		strip_user_weapons(attacker)
		give_item(attacker, "weapon_knife")
		set_user_rendering(attacker)
		duel_menu(attacker)
	}
	else if(cs_get_user_team(victim) == CS_TEAM_CT && !player_challenged[victim])
	{
		set_task(0.4, "kill_player", attacker)
		set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
		show_hudmessage(0, "%L", LANG_PLAYER,"DUEL_DOWN", name)

	}
}
remove_task(attacker)
remove_task(victim)
}

public kill_player(id)
{
user_kill(id)
}

/*================================================================================
Main Menu				
=================================================================================*/

public duel_menu(id)
{	
if(!is_user_alive(id))
	return PLUGIN_HANDLED

if (!once[id])
{
	if(cs_get_user_team(id) == CS_TEAM_T)
	{
		new cts[32], ts[32], ctsnum, tsnum 

		for (new id=1; id <= g_maxPlayers; id++)
		{
			if (!is_user_connected(id) || !is_user_alive(id)) 
			{ 
				continue 
			} 

			if (cs_get_user_team(id) == CS_TEAM_T) 
			{ 
				ts[tsnum++] = id
			} 
			else if (cs_get_user_team(id) == CS_TEAM_CT) 
			{ 
				cts[ctsnum++] = id
			} 
		} 
		if (tsnum == 1 && ctsnum >= 1) 
		{  

			static opcion[64]

			formatex(opcion, charsmax(opcion),"\y%L:", id, "CHOOSE_DUEL")
			new iMenu = menu_create(opcion, "sub_duel_menu")

			formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_1")
			menu_additem(iMenu, opcion, "1")	

			formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_2")
			menu_additem(iMenu, opcion, "2")

			formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_3")
			menu_additem(iMenu, opcion, "3")	

			formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_4")
			menu_additem(iMenu, opcion, "4")


			menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
			menu_display(id, iMenu, 0)

		}
		else if	(tsnum == 1 && ctsnum < 1)
		{
			ChatColor(id, "%L", LANG_PLAYER,"NOT_CTS", tag) 
		}
		else if	(tsnum > 1)
		{
			ChatColor(id, "%L", LANG_PLAYER,"ONLY_LAST", tag)
		}
	}
	else
	{
		ChatColor(id, "%L", LANG_PLAYER,"ONLY_TTS", tag) 
	}
}
else
{
	ChatColor(id, "%L", LANG_PLAYER,"KILL_CHALLENGED", tag) 
}
return PLUGIN_HANDLED
}

public sub_duel_menu(id, menu, item)
{

if (item == MENU_EXIT)
{
	menu_destroy(menu)
	return PLUGIN_HANDLED
}

new Data[6], Name[64]
new Access, Callback

menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)

new Key = str_to_num(Data)

switch (Key)
{
	case 1:
	{	
		knife_duel[id] = true
		choose_enemy(id)
	}
	case 2: 
	{
		deagle_duel[id] = true
		choose_enemy(id)
	}
	case 3: 
	{
		grenade_duel[id] = true
		choose_enemy(id)
	}
	case 4: 
	{
		scout_duel[id] = true
		choose_enemy(id)
	}
}

menu_destroy(menu)	
return PLUGIN_HANDLED
}

/*================================================================================
Menu of challenges				
=================================================================================*/

public choose_enemy(id)
{
static opcion[64]

formatex(opcion, charsmax(opcion),"\y%L:", id, "CHOOSE_ENEMY")
new iMenu = menu_create(opcion, "sub_choose_enemy")

new players[32], pnum, tempid
new szName[32], szTempid[10]

get_players(players, pnum, "a")

for( new i; i	{
	tempid = players[i]

	if (cs_get_user_team(tempid) != CS_TEAM_CT)
	{
		continue
	}

	get_user_name(tempid, szName, 31)
	num_to_str(tempid, szTempid, 9)
	menu_additem(iMenu, szName, szTempid, 0)
}

menu_display(id, iMenu)
return PLUGIN_HANDLED
}

public sub_choose_enemy(id, menu, item)
{
if( item == MENU_EXIT )
{
	menu_destroy(menu)
	return PLUGIN_HANDLED
}

new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)

new tempid = str_to_num(Data)

new mapname[32], challenger[32], challenged[32], ct_origin[3], te_origin[3]

get_mapname(mapname,31)
get_user_name(id, challenger, 31)
get_user_name(tempid, challenged, 31)

// strip weapons
strip_user_weapons(id)
strip_user_weapons(tempid)

// health
set_user_health(id, 100)
set_user_health(tempid, 100)

// effects
switch (get_pcvar_num(cvar_effect))
{
	case 0: // glow
	{
		set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)	
		set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
	}
	case 1: // beacon
	{
		set_task(1.0, "beacon", id)
		set_task(1.0, "beacon", tempid)
	}
	case 2: // glow n' beacon
	{
		set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)	
		set_task(1.0, "beacon", id)
		set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
		set_task(1.0, "beacon", tempid)
	}
}

// player challenged
player_challenged[tempid] = true

// lr menu once until he kills the player challenged
once[id] = true 

// unable pick up weapon (only the 2 players on duel)
touch_weapons[id] = true
touch_weapons[tempid] = true

if(knife_duel[id])
{
	give_item(id, "weapon_knife")
	give_item(tempid, "weapon_knife")

	if(equali(mapname,"some1s_jailbreak"))
	{
		ct_origin[0] = -759, ct_origin[1] = 1047, ct_origin[2] = 100
		te_origin[0] = -585, te_origin[1] = 867, te_origin[2] = 100
		set_user_origin(id,te_origin)
		set_user_origin(tempid,ct_origin)
	}

	set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
	show_hudmessage(0, "%L",LANG_PLAYER,"KNIFE_DUEL", challenger, challenged)

}
else if(deagle_duel[id])
{
	deagle_duel[tempid] = true

	cs_set_weapon_ammo(give_item(id, "weapon_deagle"), 1)
	cs_set_weapon_ammo(give_item(tempid, "weapon_deagle"), 1)

	if(equali(mapname,"some1s_jailbreak"))
	{
		ct_origin[0] = -1352, ct_origin[1] = 271, ct_origin[2] = 38
		te_origin[0] = -1338, te_origin[1] = -782, te_origin[2] = 38
		set_user_origin(id,te_origin)
		set_user_origin(tempid,ct_origin)
	}

	set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
	show_hudmessage(0, "%L", LANG_PLAYER,"DEAGLE_DUEL", challenger, challenged)
}
else if(grenade_duel[id])
{
	give_item(id, "weapon_hegrenade")
	give_item(tempid, "weapon_hegrenade")
	cs_set_user_bpammo(id, CSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))		
	cs_set_user_bpammo(tempid, CSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))

	if(equali(mapname,"some1s_jailbreak"))
	{
		ct_origin[0] = -1756, ct_origin[1] = -2526, ct_origin[2] = 36
		te_origin[0] = -3020, te_origin[1] = -2529, te_origin[2] = 36
		set_user_origin(id,te_origin)
		set_user_origin(tempid,ct_origin)
	}

	set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
	show_hudmessage(0, "%L", LANG_PLAYER,"GRENADE_DUEL", challenger, challenged)
}
else if(scout_duel[id])
{
	give_item(id, "weapon_scout")
	give_item(tempid, "weapon_scout")
	cs_set_user_bpammo(id, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))
	cs_set_user_bpammo(tempid, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))

	if(equali(mapname,"some1s_jailbreak"))
	{
		ct_origin[0] = -2898, ct_origin[1] = -2040, ct_origin[2] = 37
		te_origin[0] = -2908, te_origin[1] = 905, te_origin[2] = 37
		set_user_origin(id,te_origin)
		set_user_origin(tempid,ct_origin)
	}

	set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
	show_hudmessage(0, "%L", LANG_PLAYER,"SCOUT_DUEL", challenger, challenged)
}

duel_active = true

menu_destroy(menu)
return PLUGIN_HANDLED
}

public beacon(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
	static origin[3]
	get_user_origin(id, origin)
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_BEAMCYLINDER)	// TE id
	write_coord(origin[0])	 	// x
	write_coord(origin[1])		// y
	write_coord(origin[2]-20)	// z
	write_coord(origin[0])    	// x axis
	write_coord(origin[1])    	// y axis
	write_coord(origin[2]+200)	// z axis
	write_short(beacon_sprite)	// sprite
	write_byte(0)			// startframe   
	write_byte(1)			// framerate   
	write_byte(6)			// life
	write_byte(2)  			// width
	write_byte(1)   			// noise    
	write_byte(0)  			// red  
	write_byte(0)   			// green 
	write_byte(250) 		// blue
	write_byte(200)			// brightness
	write_byte(0)			// speed
	message_end()
}
else
{
	static origin[3]
	get_user_origin(id, origin)
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_BEAMCYLINDER)	// TE id
	write_coord(origin[0])	 	// x
	write_coord(origin[1])		// y
	write_coord(origin[2]-20)	// z
	write_coord(origin[0])    	// x axis
	write_coord(origin[1])    	// y axis
	write_coord(origin[2]+200)	// z axis
	write_short(beacon_sprite)	// sprite
	write_byte(0)			// startframe   
	write_byte(1)			// framerate   
	write_byte(6)			// life
	write_byte(2)  			// width
	write_byte(1)   			// noise    
	write_byte(250)			// red  
	write_byte(0)   			// green 
	write_byte(0) 			// blue
	write_byte(200)			// brightness
	write_byte(0)			// speed
	message_end()
}
set_task(1.0, "beacon", id)

}

/*================================================================================
Stocks					
=================================================================================*/

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color

if (id) players[0] = id
else get_players(players, count, "ch")
for (new i = 0; i < count; i++)
{
	if (is_user_connected(players[i]))
	{
		message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, players[i])
		write_byte(players[i])
		write_string(msg)
		message_end()
	}
}
}

fanas.png

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5650 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...