Cerere modificare plugin DeathrunVip [!rezolvat]

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Post Reply
User avatar
Ro.aLyN
Membru, skill +1
Membru, skill +1
Posts: 193
Joined: 01 Jan 2010, 03:56
Detinator Steam: Da
CS Status: Connect ZM.HOSTPIXEL.RO
Detinator server CS: ZM.HOSTPIXEL.RO
SteamID: spryte4cs
Has thanked: 2 times
Been thanked: 3 times
Contact:

08 Sep 2012, 12:02

Am nevoie sa imi modificati la acest plugin urmatoarele:
1. Doar adminii cu litera E sa poata accesa meniul, eu am modificat ceva pe acolo dar apare si la alti admini acel meniu.
2. La meniul de la CT sa mai adaugati o optiune aceea de a alege sa devina invizibil si sa se si poata face invizibil.

Download
Last edited by KronoS eXtream on 09 Sep 2012, 10:45, edited 1 time in total.
Reason: + [rezolvat!]
Hai la un Zombie MOD. Connect ZM.HOSTPIXEL.RO
Image
RoyalServer
User avatar
geo_neo9
Membru, skill +1
Membru, skill +1
Posts: 343
Joined: 29 Aug 2007, 09:45
Detinator Steam: Da
Has thanked: 12 times
Been thanked: 74 times

08 Sep 2012, 17:06

Poftim.
Click! | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <xs>
#include <engine>

#define ACCESS ADMIN_SLAY

new const VIP[] = "DeathRunVip"
new const VIP_MODEL[] = "models/player/vip_ct/vip_ct.mdl"

new const MENU_POPUP[] = "misc/DeathRunVip/vip_menu_popup.wav"
new const MENU_OK[] = "misc/DeathRunVip/vip_menu_ok.wav"
new const VIP_CONNECT[] = "misc/DeathRunVip/vip_connect.wav"

#define TASKID_SHOWHUD	2931
#define TASKID_MODEL		3810 

new player_model[33][32]
new Float: g_counter
new bool: g_model[33]
new g_hudsync
new cvar_gravity
new cvar_speed
new SayTxT

static const COLOR[] = "^x04" //green
static const CONTACT[] = "www.warfield.ro/forum"
new maxplayers
new gmsgSayText

new gCylinderSprite;

public plugin_precache()
{
	precache_model(VIP_MODEL)
        precache_sound(VIP_CONNECT)

	precache_sound(MENU_POPUP)
	precache_sound(MENU_OK)

	gCylinderSprite = precache_model( "sprites/shockwave.spr" );
}

public plugin_init()
{
	register_plugin("Deathrun V.I.P", "1.0", "DoviuX")
	register_clcmd("say /vip","ShowMotd")
	maxplayers = get_maxplayers()
	gmsgSayText = get_user_msgid("SayText")
	register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
	register_clcmd("say", "handle_say")

	cvar_gravity = register_cvar("dr_vip_gravity", "500")
	cvar_speed = register_cvar("dr_vip_speed", "500")

	RegisterHam(Ham_Spawn, "player", "bacon_spawn", 1)
	register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
	register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")

	g_hudsync = CreateHudSyncObj()
	SayTxT = get_user_msgid("SayText");
}

public client_connect(client)
{
	if(get_user_flags(client) & ADMIN_SLAY)
	{
		client_cmd(client, "spk %s", VIP_CONNECT)

    		new name[32];
    		get_user_name(client, name, 31);
        	set_hudmessage( 0, 255, 0, -1.0, 0.29, 0, 6.0, 12.0 );
        	show_hudmessage( 0, "[WarField.Ro] VIP %s se conecteaza pe server.", name);
	}
}

public bacon_spawn(id)
{
    if (!is_user_alive(id))
        return
    
    static CsTeams: team ; team = cs_get_user_team(id)
    
    if (team == CS_TEAM_T && (get_user_flags(id) & ADMIN_SLAY))
    {   
	set_task(2.0, "T_menu", id)

    	new iOrigin[ 3 ];
    	get_user_origin( id, iOrigin );

    	Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );
    	Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );
    	Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );

	copy(player_model[id], 31, VIP)
		
	new currentmodel[32];
	fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
		
	if(!equal(currentmodel, player_model[id]))
	{
		Task_Model(id + TASKID_MODEL)
		g_counter += 0.1;
	}

	if(!task_exists(TASKID_SHOWHUD + id))
	   set_task(0.2, "Task_ShowHUD", TASKID_SHOWHUD + id)

	set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25) 
    }
    else if (team == CS_TEAM_CT && (get_user_flags(id) & ADMIN_SLAY))
    {
	set_task(2.0, "CT_menu", id)

    	new iOrigin[ 3 ];
    	get_user_origin( id, iOrigin );

    	Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );
    	Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );
    	Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );

	copy(player_model[id], 31, VIP)

	strip_user_weapons(id)
	give_item(id, "weapon_knife")
		
	new currentmodel[32];
	fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
		
	if(!equal(currentmodel, player_model[id]))
	{
		Task_Model(id + TASKID_MODEL)
		g_counter += 0.1;
	}

	if(!task_exists(TASKID_SHOWHUD + id))
	   set_task(0.2, "Task_ShowHUD", TASKID_SHOWHUD + id)

	set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25) 
    }
}

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

	client_cmd(id, "spk %s", MENU_POPUP)
		
    	new gmenu = menu_create("\y[WarField.Ro] VIP Meniu" , "Vip_Handler");
    	menu_additem(gmenu ,"\r255 \wViata", "1" , 0);
    	menu_additem(gmenu ,"\r255 \wArmura", "2" , 0);
    	menu_additem(gmenu ,"\wGravitatie", "3" , 0);
    	menu_additem(gmenu ,"\wViteza", "4" , 0);
    	menu_additem(gmenu ,"\wDeagle cu \r5\w gloante", "5" , 0);
    	menu_additem(gmenu ,"\wGrenada", "6" , 0);
    	menu_additem(gmenu ,"\wNightVision (\rPentru hartile intunecate\w)", "7" , 0);
 
    	menu_setprop(gmenu , MPROP_EXIT , MEXIT_ALL);
 
    	menu_display(id , gmenu , 0);

	return PLUGIN_CONTINUE
}

public CT_menu(id)
{
	if(!is_user_alive(id))
	   return PLUGIN_HANDLED
		
	client_cmd(id, "spk %s", MENU_POPUP)

    	new gmenu = menu_create("\y[WarField.Ro] VIP Meniu" , "VipCt_Handler");
    	menu_additem(gmenu ,"\r255 \wViata", "1" , 0);
    	menu_additem(gmenu ,"\r255 \wArmura", "2" , 0);
    	menu_additem(gmenu ,"\wGravitatie", "3" , 0);
    	menu_additem(gmenu ,"\wViteza", "4" , 0);
    	menu_additem(gmenu ,"\wGrenada", "5" , 0);
    	menu_additem(gmenu ,"\wNightVision (\rPentru hartile intunecate\w)", "6" , 0);
     	menu_additem(gmenu ,"\wInvizibilitate", "7" , 0);

    	menu_setprop(gmenu , MPROP_EXIT , MEXIT_ALL);
 
    	menu_display(id , gmenu , 0);

	return PLUGIN_CONTINUE
}

public Vip_Handler(id, gmenu, item, player)
{
   if (item == MENU_EXIT)
   {
      menu_destroy(gmenu)
      return PLUGIN_HANDLED
   }

   new data[6], iName[64]
   new access, callback
   menu_item_getinfo(gmenu, item, access, data, 5, iName, 63, callback)
   
   new key = str_to_num(data)
   
   switch(key)
   {
      case 1:
      {
	client_cmd(id, "spk %s", MENU_OK)

	set_user_health(id, 255)
	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /w255 /gviata /y!")
      }

      case 2:
      {
	client_cmd(id, "spk %s", MENU_OK)

	set_user_armor(id, 255)
	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /w255 /garmura /y!")
      }

      case 3:
      {
	client_cmd(id, "spk %s", MENU_OK)

	new Float: gravity
	gravity	= get_pcvar_float(cvar_gravity) / 800

	set_user_gravity(id, gravity)
	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /ggravitatie /y!")
      }
      
      case 4:
      {
	new Float: speed
	speed	= get_pcvar_float(cvar_speed)

	client_cmd(id, "spk %s", MENU_OK)

	set_user_maxspeed(id, speed)
	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /gviteza /y!")
      }
      
      case 5:
      {
        give_item(id,"weapon_deagle")

	new weapon_id = find_ent_by_owner(-1, "weapon_deagle", id);
	if(weapon_id)
	{
		cs_set_weapon_ammo(weapon_id, 5);
	}

	client_cmd(id, "spk %s", MENU_OK)

	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /gdeagle /ycu /g5 /ygloante!")
      }
      
      case 6:
      {
	give_item(id, "weapon_hegrenade")

	client_cmd(id, "spk %s", MENU_OK)

	client_printcolor(player, "/g[WarField.Ro]/y Ai ales o /ggrenada /y!")
      }

      case 7:
      {
	cs_set_user_nvg(id)

	client_cmd(id, "spk %s", MENU_OK)

	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /gnightvision /y!")
      }

   }
   menu_destroy(gmenu)
   return PLUGIN_HANDLED;
}

public VipCt_Handler(id, gmenu, item, player)
{
   if (item == MENU_EXIT)
   {
      menu_destroy(gmenu)
      return PLUGIN_HANDLED
   }

   new data[6], iName[64]
   new access, callback
   menu_item_getinfo(gmenu, item, access, data, 5, iName, 63, callback)
   
   new key = str_to_num(data)
   
   switch(key)
   {
      case 1:
      {
	client_cmd(id, "spk %s", MENU_OK)

	set_user_health(id, 255)
	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /w255 /gviata /y!")
      }

      case 2:
      {
	client_cmd(id, "spk %s", MENU_OK)

	set_user_armor(id, 255)
	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /w255 /garmura /y!")
      }

      case 3:
      {
	client_cmd(id, "spk %s", MENU_OK)

	new Float: gravity
	gravity	= get_pcvar_float(cvar_gravity) / 800

	set_user_gravity(id, gravity)
	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /ggravitatie /y!")
      }
      
      case 4:
      {
	new Float: speed
	speed	= get_pcvar_float(cvar_speed)

	client_cmd(id, "spk %s", MENU_OK)

	set_user_maxspeed(id, speed)
	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /gviteza /y!")
      }
      
      case 5:
      {
	give_item(id, "weapon_hegrenade")

	client_cmd(id, "spk %s", MENU_OK)

	client_printcolor(player, "/g[WarField.Ro]/y Ai ales o /ggrenada /y!")
      }

      case 6:
      {
	cs_set_user_nvg(id)

	client_cmd(id, "spk %s", MENU_OK)

	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /gnightvision /y!")
      }

      case 7:
      {
	client_cmd(id, "spk %s", MENU_OK)
	client_printcolor(player, "/g[WarField.Ro]/y Ai ales /ginvizibilitate /y!")
	set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 35)
      }

   }
   menu_destroy(gmenu)
   return PLUGIN_HANDLED;
}

public Task_ShowHUD(task)
{
	new id = task - TASKID_SHOWHUD
	
	if(!is_user_alive(id))
		return PLUGIN_HANDLED
	
	static health, armour
	health = get_user_health(id)
	armour = get_user_armor(id)
	
	set_hudmessage(150, 150, 150, 0.40, 0.92, 0, 0.0, 0.3, 0.0, 0.0)
	ShowSyncHudMsg(id, g_hudsync , "[WarField.Ro] Viata: %d | Armura: %d", health, armour)
	
	set_task(0.1, "Task_ShowHUD", TASKID_SHOWHUD + id)		
	
	return PLUGIN_CONTINUE
}

public ShowMotd(id)
{
 show_motd(id, "vip.txt")
}
public client_authorized(id)
{
 set_task(30.0, "PrintText" ,id)
}
public PrintText(id)
{
 client_print(id, print_chat, "")
}

public client_PreThink(id)
{
    if(is_user_alive(id))
    {
        if(get_user_flags(id) & ADMIN_SLAY)
        {
            
            new oldbuttons = get_user_oldbutton(id);
        
            
            oldbuttons &= ~IN_JUMP;
            entity_set_int(id, EV_INT_oldbuttons, oldbuttons);
        }
    }
}  

public Task_Model(task)
{
	new id = task - TASKID_MODEL 
	
	fm_set_user_model(id, player_model[id])
}

stock Create_BeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed )
{
	message_begin( MSG_PVS, SVC_TEMPENTITY, origin ); 
	write_byte( TE_BEAMCYLINDER );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] );
	write_coord( origin[ 0 ] );
	write_coord( origin[ 1 ] );
	write_coord( origin[ 2 ] + addrad );
	write_short( sprite );
	write_byte( startfrate );
	write_byte( framerate );
	write_byte(life );
	write_byte( width );
	write_byte( amplitude );
	write_byte( red );
	write_byte( green );
	write_byte( blue );
	write_byte( brightness );
	write_byte( speed );
	message_end();
}

stock te_sprite(id, Float:origin[3], sprite, scale, brightness)
{
	message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)
	write_byte(TE_SPRITE)
	write_coord(floatround(origin[0]))
	write_coord(floatround(origin[1]))
	write_coord(floatround(origin[2]))
	write_short(sprite)
	write_byte(scale) 
	write_byte(brightness)
	message_end()
}

stock normalize(Float:fIn[3], Float:fOut[3], Float:fMul)
{
	new Float:fLen = xs_vec_len(fIn)
	xs_vec_copy(fIn, fOut)
	
	fOut[0] /= fLen, fOut[1] /= fLen, fOut[2] /= fLen
	fOut[0] *= fMul, fOut[1] *= fMul, fOut[2] *= fMul
}

public fw_SetClientKeyValue(id, infobuffer, key[], value[])
{   
	if (g_model[id] && equal(key, "model"))
		return FMRES_SUPERCEDE
	
	return FMRES_IGNORED
}

public fw_ClientUserInfoChanged(id, infobuffer)
{   
	if (!g_model[id])
		return FMRES_IGNORED
	
	new currentmodel[32]; 
	fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);
	
	if(!equal(currentmodel, player_model[id]))
		fm_set_user_model(id, player_model[id]) 
	
	return FMRES_IGNORED
}

stock fm_set_user_model(player, modelname[])
{   
	engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)
	
	g_model[player] = true
}

stock fm_get_user_model(player, model[], len)
{   
	engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}

stock fm_reset_user_model(player)
{         
	g_model[player] = false
	
	dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
}

public handle_say(id) {
	new said[192]
	read_args(said,192)
	if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
		set_task(0.1,"print_adminlist",id)
	return PLUGIN_CONTINUE
}

public print_adminlist(user) 
{
	new adminnames[33][32]
	new message[256]
	new contactinfo[256], contact[112]
	new id, count, x, len
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_flags(id) & ADMIN_SLAY)
				get_user_name(id, adminnames[count++], 31)

	len = format(message, 255, "[WarField.Ro]%s VIP-uri ONLINE: ",COLOR)
	if(count > 0) {
		for(x = 0 ; x < count ; x++) {
			len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
			if(len > 96 ) {
				print_message(user, message)
				len = format(message, 255, "%s ",COLOR)
			}
		}
		print_message(user, message)
	}
	else {
		len += format(message[len], 255-len, "[WarField.Ro] Nu sunt VIP-uri ONLINE")
		print_message(user, message)
	}
	
	get_cvar_string("amx_contactinfo", contact, 63)
	if(contact[0])  {
		format(contactinfo, 111, "%s[WarField.Ro] Forum server -- %s", COLOR, CONTACT)
		print_message(user, contactinfo)
	}
}

print_message(id, msg[]) {
	message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
	write_byte(id)
	write_string(msg)
	message_end()
}




stock client_printcolor(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 txt
	replace_all(msg,190,"/y","^1");// orange txt
	replace_all(msg,190,"/t","^3");// team txt
	replace_all(msg,190,"/w","^0");// team txt
	if (id) players[0] = id; else get_players(players,count,"ch");
	for (new i = 0; i < count; i++)
		if (is_user_connected(players))
		{
			message_begin(MSG_ONE_UNRELIABLE, SayTxT, _, players);
			write_byte(players);
			write_string(msg);
			message_end();
		}
}
Last edited by geo_neo9 on 08 Sep 2012, 23:59, edited 2 times in total.
User avatar
Ro.aLyN
Membru, skill +1
Membru, skill +1
Posts: 193
Joined: 01 Jan 2010, 03:56
Detinator Steam: Da
CS Status: Connect ZM.HOSTPIXEL.RO
Detinator server CS: ZM.HOSTPIXEL.RO
SteamID: spryte4cs
Has thanked: 2 times
Been thanked: 3 times
Contact:

08 Sep 2012, 21:52

Merge, mersi mult, puteti da tc.
Hai la un Zombie MOD. Connect ZM.HOSTPIXEL.RO
Image
User avatar
geo_neo9
Membru, skill +1
Membru, skill +1
Posts: 343
Joined: 29 Aug 2007, 09:45
Detinator Steam: Da
Has thanked: 12 times
Been thanked: 74 times

09 Sep 2012, 00:01

Ro.aLyN wrote:Merge, mersi mult, puteti da tc.
Ia-l din nou, o sa ai lipsuri . Nu vazusem ca pusesei peste tot level_e. L-am modificat sa fie tot pluginul pentru accesul E.
User avatar
Ro.aLyN
Membru, skill +1
Membru, skill +1
Posts: 193
Joined: 01 Jan 2010, 03:56
Detinator Steam: Da
CS Status: Connect ZM.HOSTPIXEL.RO
Detinator server CS: ZM.HOSTPIXEL.RO
SteamID: spryte4cs
Has thanked: 2 times
Been thanked: 3 times
Contact:

09 Sep 2012, 10:37

Aia am avut pe altcineva care mi-a modificat el si merge bine.
Hai la un Zombie MOD. Connect ZM.HOSTPIXEL.RO
Image
Post Reply

Return to “Cereri”

  • Information