Cerere modificare plugin !

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
..::DeeP-SiDe::.. ;D
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 16 Dec 2011, 17:53
Detinator Steam: Da
SteamID: Da !
Location: Romania.
Has thanked: 6 times
Contact:

14 Sep 2013, 18:14

Vreau ca acest plugin sa fie modificat in asa fel sa fie automat si gratis pentru orice player de pe server doar prin simpla apasare de buton "e". Multumesc.
| Afiseaza codul
/***************************************************************************************************
                        		AMX Parachute


  Commands:

	say buy_parachute	- buys a parachute
	
	amx_parachute <name>|@all	- gives a player a free parachute

	Press +use to slow down your fall.

  Cvars:

	sv_parachute "1"	 -	0: disables the plugin
					1: enables the plugin

	parachute_cost "0"	 -	cost of the parachute
	
	admin_parachute "0"	 -	0: admins with level A won't get a free parachute
					1: admins with level A get a free parachute
					
	parachute_payback "100"	 -	the amount you get back of the parachute in %(75/100*1000) = 750
	
	para_free "1"		 -	0: no free parachute
					1: free parachute for everyone
	

  Setup (AMXX 1.71):

    Install the amxx file. 
    Enable engine and cstrike(amxx's modules.ini) 
    Put the parachute.mdl file in the cstrike/models folder


***************************************************************************************************/

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>

#define PLUGINNAME	"AMXX Parachute"
#define VERSION		"0.2.3"
#define AUTHOR		"-"

new bool:has_parachute[33];
new para_ent[33];
new bool:had_parachute[33];
new bool:player_died[33];

public plugin_init()
{
	register_plugin( PLUGINNAME, VERSION, AUTHOR )
	
	register_dictionary( "parachute.txt" )
	
	register_concmd( "say buy_parachute", "buy_parachute" )
	register_concmd( "say sell_parachute", "sell_parachute" )
	register_concmd( "amx_parachute", "give_parachute", ADMIN_LEVEL_A, "amx_parachute <name, @all>" )

	register_cvar( "sv_parachute", "1" )
	register_cvar( "parachute_cost", "0" )
	register_cvar( "parachute_payback", "75" )
	register_cvar( "admin_parachute", "0" )
	register_cvar( "para_free", "1" )
	
	register_logevent( "event_roundstart", 2, "0=World triggered", "1=Round_Start" )
	register_logevent( "event_roundend", 2, "0=World triggered", "1=Round_End" )
	register_event( "ResetHUD", "event_resethud", "be" )
	register_event( "DeathMsg", "death_event", "a" )
	
	register_event ( "HLTV", "Round_Start", "a", "1=0", "2=0" );
}

public plugin_modules() {
	require_module( "engine" )
	require_module( "cstrike" )
}

public Round_Start ( )
	server_cmd ( "amx_parachute @all" );

public plugin_precache()
{
	precache_model("models/parachute.mdl")
}

public client_connect(id)
{
	if(para_ent[id] > 0)
	{
		remove_entity(para_ent[id])
	}
	has_parachute[id] = false
	para_ent[id] = 0
}

public event_roundstart() {
	new MaxPlayers = get_maxplayers();
	for( new id; id < MaxPlayers; id++ ) {
		if( had_parachute[id] == true && player_died[id] == false ) {
			has_parachute[id] = true
		}
	}
	set_task( 3.0, "free_parachute" );
		
}

public event_roundend() {
	new MaxPlayers = get_maxplayers();
	for( new id; id < MaxPlayers; id++ ) {
		if( is_user_alive( id ) ) {
			if( has_parachute[id] == true ) {
				had_parachute[id] = true;
			}else{
				had_parachute[id] = false;
			}
			player_died[id] = false;

		}else {
			if(para_ent[id] > 0) {
				remove_entity(para_ent[id])
			}
			has_parachute[id] = false
			para_ent[id] = 0
			player_died[id] = true;
		}
	}
		
}

public event_resethud( id ) {
	if(para_ent[id] > 0)
	{
		remove_entity(para_ent[id])
	}
	has_parachute[id] = false
	para_ent[id] = 0
}

public death_event()
{
	new id = read_data(2)

	if(para_ent[id] > 0)
	{
		remove_entity(para_ent[id])
	}
	has_parachute[id] = false
	para_ent[id] = 0
	player_died[id] = true
}

public buy_parachute(id) {
	
	if(get_cvar_num( "sv_parachute" ) == 0)
	{
		client_print(id, print_chat, "%L", id, "para_disabled")
		return PLUGIN_HANDLED
	}

	if(has_parachute[id])
	{
		client_print(id, print_chat, "%L", id, "para_has" )
		return PLUGIN_HANDLED		
	}

	new money = cs_get_user_money(id)
	new cost = get_cvar_num( "parachute_cost" )

	if(money < cost)
	{
		client_print(id, print_chat, "%L", id, "para_money", cost)
		return PLUGIN_CONTINUE
	}

	cs_set_user_money(id, money - cost)
	client_print(id, print_chat, "%L", id, "para_buy" )
	has_parachute[id] = true

	return PLUGIN_CONTINUE
}

public sell_parachute(id) {
	if (get_cvar_num("sv_parachute") == 0) {
		client_print(id, print_chat, "%L", id, "para_disabled")
		return PLUGIN_CONTINUE
	}
	if (has_parachute[id]) {
		if(para_ent[id] > 0)
		{
			if(is_valid_ent(para_ent[id])) {
				remove_entity(para_ent[id])
			}
		}
		has_parachute[id] = false
		para_ent[id] = 0

		new money = cs_get_user_money(id)
		new cost = get_cvar_num("parachute_cost")
		new payback = floatround(float(cost) * (get_cvar_float("parachute_payback") / 100))
		cs_set_user_money(id, money + payback)
		client_print(id, print_chat, "%L", id, "para_sell", payback)
	}
	return PLUGIN_CONTINUE
}
public free_parachute() {
	new maxPlayers = get_maxplayers();
	if(get_cvar_num( "sv_parachute" ) == 0) return PLUGIN_CONTINUE

        for( new i = 1; i <= maxPlayers; i++ )
        {
		if( !is_user_connected( i ) ) return PLUGIN_CONTINUE
		
		if ( get_cvar_num( "para_free") == 1 ) {
			client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" )
			has_parachute = true
			
			return PLUGIN_CONTINUE
		}
		if ( get_cvar_num("admin_parachute") == 1 && get_user_flags( i ) && ADMIN_LEVEL_A ) {
			client_print( i, print_chat, "%L", LANG_PLAYER, "para_admin_free" )
			has_parachute = true
			
			return PLUGIN_CONTINUE
		}
	}
	return PLUGIN_CONTINUE
}

public give_parachute(id, level, cid) {
	
	if (!cmd_access(id, level, cid, 2 ) ) {
		return PLUGIN_CONTINUE
	}
	
	if (get_cvar_num("sv_parachute") == 0 ) {
		client_print(id, print_chat, "%L", id, "para_disabled")
		
		return PLUGIN_CONTINUE
	}else{
		new arg[32]
		read_argv( 1, arg, 31 )
		if (arg[0] == '@' && arg[1] == 'a') {
			new maxPlayers = get_maxplayers();
			for( new i = 1; i <= maxPlayers; i++ )
			{
				client_print( i, print_chat, "%L", LANG_PLAYER, "para_free_all" )
				has_parachute = true
			}
			
			return PLUGIN_CONTINUE
		}
		new player = cmd_target( id, arg, 4 )
		
		if (has_parachute[id]) {
			client_print(id, print_chat, "%L", id, "para_has" )
			
			return PLUGIN_CONTINUE
		}
		if( !player ) {
			client_print( id, print_chat, "%L", id, "para_no_player" )
	
			return PLUGIN_CONTINUE
		}else{
			client_print(player, print_chat, "%L", player, "para_give" )
			has_parachute[player] = true
			
			return PLUGIN_CONTINUE
		}
		
	}
	return PLUGIN_CONTINUE
}

public client_PreThink(id)
{
	if( get_cvar_num( "sv_parachute" ) == 0 )
	{
		return PLUGIN_CONTINUE
	}

	if( !is_user_alive(id) )
	{
		return PLUGIN_CONTINUE
	}

	if( has_parachute[id] )
	{
		if (get_user_button(id) & IN_USE )
		{
			if ( !( get_entity_flags(id) & FL_ONGROUND ) )
			{
				new Float:velocity[3]
				entity_get_vector(id, EV_VEC_velocity, velocity)
				if(velocity[2] < 0)
				{
					if (para_ent[id] == 0)
					{
						para_ent[id] = create_entity("info_target")
						if (para_ent[id] > 0)
						{
							entity_set_model(para_ent[id], "models/parachute.mdl")
							entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
							entity_set_edict(para_ent[id], EV_ENT_aiment, id)
						}
					}
					if (para_ent[id] > 0)
					{
						velocity[2] = (velocity[2] + 40.0 < -100) ? velocity[2] + 40.0 : -100.0
						entity_set_vector(id, EV_VEC_velocity, velocity)
						if (entity_get_float(para_ent[id], EV_FL_frame) < 0.0 || entity_get_float(para_ent[id], EV_FL_frame) > 254.0)
						{
							if (entity_get_int(para_ent[id], EV_INT_sequence) != 1)
							{
								entity_set_int(para_ent[id], EV_INT_sequence, 1)
							}
							entity_set_float(para_ent[id], EV_FL_frame, 0.0)
						}
						else 
						{
							entity_set_float(para_ent[id], EV_FL_frame, entity_get_float(para_ent[id], EV_FL_frame) + 1.0)
						}
					}
				}
				else
				{
					if (para_ent[id] > 0)
					{
						remove_entity(para_ent[id])
						para_ent[id] = 0
					}
				}
			}
			else
			{
				if (para_ent[id] > 0)
				{
					remove_entity(para_ent[id])
					para_ent[id] = 0
				}
			}
		}
		else if (get_user_oldbutton(id) & IN_USE)
		{
			if (para_ent[id] > 0)
			{
				remove_entity(para_ent[id])
				para_ent[id] = 0
			}
		}
	}
	
	return PLUGIN_CONTINUE
}
Image

CONNECT RESPAWN.CSGAMING.RO !
CONNECT RESPAWN.CSGAMING.RO !
CONNECT RESPAWN.CSGAMING.RO !
RoyalServer
User avatar
KrAiD.
Fost moderator
Fost moderator
Posts: 866
Joined: 15 Jun 2013, 12:14
Detinator Steam: Da
CS Status: Cat de cat activ :D
Detinator server CS: Nu
Reputatie: Fost Moderator ajutator
0.7 / 3
Has thanked: 14 times
Been thanked: 131 times
Contact:

14 Sep 2013, 18:17

ai pus cvar-urile?

Code: Select all

sv_parachute 1
parachute_cost 0
parachute_payback 75
admin_parachute 1
para_free 1
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

14 Sep 2013, 18:38

Code: Select all

sv_parachute 1
parachute_cost 10
parachute_payback 75
admin_parachute 0
para_free 1
adauga-le in amxx.cfg :) si merge asa am avut eu pe server :P
Last edited by tweky on 16 Sep 2013, 16:39, edited 1 time in total.
Reason: exact asta a spus si kraid mai sus , +1 .?
User avatar
..::DeeP-SiDe::.. ;D
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 16 Dec 2011, 17:53
Detinator Steam: Da
SteamID: Da !
Location: Romania.
Has thanked: 6 times
Contact:

14 Sep 2013, 18:59

Am pus cvar-urile si deageaba merge doar pana mori si dupaia gata
Image

CONNECT RESPAWN.CSGAMING.RO !
CONNECT RESPAWN.CSGAMING.RO !
CONNECT RESPAWN.CSGAMING.RO !
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

14 Sep 2013, 19:02

Deci eu cand aveam server aveam o mica problema: daca sunt admin nu imi merge mereu parasuta dar la restu' playerilor le mergea .
User avatar
cyby
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 1777
Joined: 16 Jul 2011, 21:46
Detinator Steam: Da
Detinator server CS: Da
Reputatie: Scripter eXtreamCS
Fost Moderator ajutator
Has thanked: 146 times
Been thanked: 396 times

14 Sep 2013, 19:12

| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new bool:has_parachute[33]
new para_ent[33]

public plugin_init()
{
	register_plugin("Parasuta", "1.4b", "-")

	register_event("ResetHUD", "newSpawn", "be")
	register_event("DeathMsg", "death_event", "a")
}

public plugin_precache()
{
	precache_model("models/parachute.mdl")
}

public client_connect(id)
{
	parachute_reset(id)
}

public client_disconnect(id)
{
	parachute_reset(id)
}

public death_event()
{
	new id = read_data(2)
	parachute_reset(id)
}

parachute_reset(id)
{
	if(para_ent[id] > 0) 
	{
		if(is_valid_ent(para_ent[id])) 
		{
			remove_entity(para_ent[id])
		}
	}

	has_parachute[id] = false
	para_ent[id] = 0
}

public newSpawn(id)
{
	if(para_ent[id] > 0) 
	{
		if(is_valid_ent(para_ent[id])) 
		{
			remove_entity(para_ent[id])
		}
		para_ent[id] = 0
	}
	has_parachute[id] = true
}

public client_PreThink(id)
{
	//parachute.mdl animation information
	//0 - deploy - 84 frames
	//1 - idle - 39 frames
	//2 - detach - 29 frames

	if (!is_user_alive(id) || !has_parachute[id]) return

	new Float:fallspeed = 100.0 * -1.0
	new Float:frame

	new button = get_user_button(id)
	new oldbutton = get_user_oldbutton(id)
	new flags = get_entity_flags(id)

	if (para_ent[id] > 0 && (flags & FL_ONGROUND)) 
	{
		if (entity_get_int(para_ent[id],EV_INT_sequence) != 2) 
		{
			entity_set_int(para_ent[id], EV_INT_sequence, 2)
			entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
			entity_set_float(para_ent[id], EV_FL_frame, 0.0)
			entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
			entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
			entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
			return
		}

		frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
		entity_set_float(para_ent[id],EV_FL_fuser1,frame)
		entity_set_float(para_ent[id],EV_FL_frame,frame)

		if (frame > 254.0) 
		{
			remove_entity(para_ent[id])
			para_ent[id] = 0
		}
	}

	if (button & IN_USE) 
	{

		new Float:velocity[3]
		entity_get_vector(id, EV_VEC_velocity, velocity)

		if (velocity[2] < 0.0) {

			if(para_ent[id] <= 0) {
				para_ent[id] = create_entity("info_target")
				if(para_ent[id] > 0) {
					entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
					entity_set_edict(para_ent[id], EV_ENT_aiment, id)
					entity_set_edict(para_ent[id], EV_ENT_owner, id)
					entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
					entity_set_model(para_ent[id], "models/parachute123.mdl")
					entity_set_int(para_ent[id], EV_INT_sequence, 0)
					entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
					entity_set_float(para_ent[id], EV_FL_frame, 0.0)
					entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
				}
			}

			if (para_ent[id] > 0) {

				entity_set_int(id, EV_INT_sequence, 3)
				entity_set_int(id, EV_INT_gaitsequence, 1)
				entity_set_float(id, EV_FL_frame, 1.0)
				entity_set_float(id, EV_FL_framerate, 1.0)

				velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
				entity_set_vector(id, EV_VEC_velocity, velocity)

				if (entity_get_int(para_ent[id],EV_INT_sequence) == 0) {

					frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
					entity_set_float(para_ent[id],EV_FL_fuser1,frame)
					entity_set_float(para_ent[id],EV_FL_frame,frame)

					if (frame > 100.0) {
						entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
						entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
						entity_set_int(para_ent[id], EV_INT_sequence, 1)
						entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
						entity_set_float(para_ent[id], EV_FL_frame, 0.0)
						entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
					}
				}
			}
		}
		else if (para_ent[id] > 0) 
		{
			remove_entity(para_ent[id])
			para_ent[id] = 0
		}
	}
	else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) 
	{
		remove_entity(para_ent[id])
		para_ent[id] = 0
	}
}
93.114.82.17:27015 - Monster Invasion CO-OP Mod
User avatar
KrAiD.
Fost moderator
Fost moderator
Posts: 866
Joined: 15 Jun 2013, 12:14
Detinator Steam: Da
CS Status: Cat de cat activ :D
Detinator server CS: Nu
Reputatie: Fost Moderator ajutator
0.7 / 3
Has thanked: 14 times
Been thanked: 131 times
Contact:

14 Sep 2013, 19:16

pentru ca era admin_parachute 0

ON: asta e testat de mine si merge perfect :)
| Afiseaza codul
/*******************************************************************************

  Parachute

  Version: 1.3
  Author: KRoTaL/JTP10181

  0.1    Release
  0.1.1  Players can't buy a parachute if they already own one
  0.1.2  Release for AMX MOD X
  0.1.3  Minor changes
  0.1.4  Players lose their parachute if they die
  0.1.5  Added amx_parachute cvar
  0.1.6  Changed set_origin to movetype_follow (you won't see your own parachute)
  0.1.7  Added amx_parachute <name> | admins with admin level a get a free parachute
  0.1.8  JTP - Cleaned up code, fixed runtime error
  1.0    JTP - Should be final version, made it work on basically any mod
  1.1    JTP - Added Changes from AMX Version 0.1.8
           Added say give_parachute and parachute_fallspeed cvar
               Plays the release animation when you touch the ground
               Added chat responder for automatic help
  1.2    JTP - Added cvar to disable the detach animation
           Redid animation code to improve organization
           Force "walk" animation on players when falling
           Change users gravity when falling to avoid choppiness
  1.3    JTP - Upgraded to pCVARs

  Commands:

   amx_parachute <nick, #userid or @team>  -  gives a player a free parachute (CStrike ONLY)
   amx_parachute @all  -  gives everyone a free parachute (CStrike ONLY)

   Press +use to slow down your fall.

  Cvars:

   sv_parachute "1"         - 0: disables the plugin - 1: enables the plugin

   parachute_cost "0"      - cost of the parachute (CStrike ONLY)

   parachute_payback "75"      - how many percent of the parachute cost you get when you sell your parachute
                        (ie. (75/100) * 1000 = 750$)

   parachute_fallspeed "100"   - speed of the fall when you use the parachute


  Setup (AMXX 1.x):

   Install the amxx file.
   Enable engine and cstrike (for cs only) in the amxx modules.ini
   Put the parachute.mdl file in the modname/models/ folder

*******************************************************************************/

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>

new bool:has_parachute[33]
new para_ent[33]
new gCStrike = 0
new pDetach, pFallSpeed, pEnabled, pCost, pPayback

#define PARACHUTE_LEVEL ADMIN_LEVEL_A

public plugin_init()
{
   register_plugin("Parachute", "1.3", "KRoT@L/JTP10181")
   pEnabled = register_cvar("sv_parachute", "1" )
   pFallSpeed = register_cvar("parachute_fallspeed", "100")
   pDetach = register_cvar("parachute_detach", "1")

   if (cstrike_running()) gCStrike = true

   if (gCStrike) {

      pCost = register_cvar("parachute_cost", "0")
      pPayback = register_cvar("parachute_payback", "100")

      register_concmd("amx_parachute", "admin_give_parachute", PARACHUTE_LEVEL, "<nick, #userid or @team>" )
   }

   register_clcmd("say", "HandleSay")
   register_clcmd("say_team", "HandleSay")

   register_event("ResetHUD", "newSpawn", "be")
   register_event("DeathMsg", "death_event", "a")

   //Setup jtp10181 CVAR
   new cvarString[256], shortName[16]
   copy(shortName,15,"chute")

   register_cvar("jtp10181","",FCVAR_SERVER|FCVAR_SPONLY)
   get_cvar_string("jtp10181",cvarString,255)

   if (strlen(cvarString) == 0) {
      formatex(cvarString,255,shortName)
      set_cvar_string("jtp10181",cvarString)
   }
   else if (contain(cvarString,shortName) == -1) {
      format(cvarString,255,"%s,%s",cvarString, shortName)
      set_cvar_string("jtp10181",cvarString)
   }
}

public plugin_natives()
{
   set_module_filter("module_filter")
   set_native_filter("native_filter")
}

public module_filter(const module[])
{
   if (!cstrike_running() && equali(module, "cstrike")) {
      return PLUGIN_HANDLED
   }

   return PLUGIN_CONTINUE
}

public native_filter(const name[], index, trap)
{
   if (!trap) return PLUGIN_HANDLED

   return PLUGIN_CONTINUE
}

public plugin_precache()
{
   precache_model("models/parachute.mdl")
}

public client_connect(id)
{
   parachute_reset(id)
}

public client_disconnect(id)
{
   parachute_reset(id)
}

public death_event()
{
   new id = read_data(2)
   parachute_reset(id)
}

parachute_reset(id)
{
   if(para_ent[id] > 0) {
      if (is_valid_ent(para_ent[id])) {
         remove_entity(para_ent[id])
      }
   }

   if (is_user_alive(id)) set_user_gravity(id, 1.0)

   has_parachute[id] = false
   para_ent[id] = 0
}

public newSpawn(id)
{
   if(para_ent[id] > 0) {
      remove_entity(para_ent[id])
      set_user_gravity(id, 1.0)
      para_ent[id] = 0
   }

   if (!gCStrike || access(id,PARACHUTE_LEVEL) || get_pcvar_num(pCost) <= 0) {
      has_parachute[id] = true
      //set_view(id, CAMERA_3RDPERSON)
   }
}

public HandleSay(id)
{
   if(!is_user_connected(id)) return PLUGIN_CONTINUE

   new args[128]
   read_args(args, 127)
   remove_quotes(args)

   if (gCStrike) {
      if (equali(args, "bp")) {
         buy_parachute(id)
         return PLUGIN_HANDLED
      }
      else if (equali(args, "sp")) {
         sell_parachute(id)
         return PLUGIN_HANDLED
      }
      else if (containi(args, "gp") == 0) {
         give_parachute(id,args[15])
         return PLUGIN_HANDLED
      }
   }

   if (containi(args, "parachute") != -1) {
      if (gCStrike) client_print(id, print_chat, "[AMXX] Parachute commands: bp>>>to buy the parachute, sp>>>to leave the parachute and get back your money to 100%, gp>>>give a parachute your friend from your money <gp name>")
      client_print(id, print_chat, "[AMXX] To use your parachute press and hold your +use button while falling")
   }

   return PLUGIN_CONTINUE
}

public buy_parachute(id)
{
   if (!gCStrike) return PLUGIN_CONTINUE
   if (!is_user_connected(id)) return PLUGIN_CONTINUE

   if (!get_pcvar_num(pEnabled)) {
      client_print(id, print_chat, "[AMXX] Parachute plugin is disabled")
      return PLUGIN_HANDLED
   }

   if (has_parachute[id]) {
      client_print(id, print_chat, "[AMXX] You already have a parachute")
      return PLUGIN_HANDLED
   }

   new money = cs_get_user_money(id)
   new cost = get_pcvar_num(pCost)

   if (money < cost) {
      client_print(id, print_chat, "[AMXX] You don't have enough moneyfor a parachute - Costs $%i", cost)
      return PLUGIN_HANDLED
   }

   cs_set_user_money(id, money - cost)
   client_print(id, print_chat, "[AMXX] You have bought a parachute. To use it, press +use while falling.")
   has_parachute[id] = true

   return PLUGIN_HANDLED
}

public sell_parachute(id)
{
   if (!gCStrike) return PLUGIN_CONTINUE
   if (!is_user_connected(id)) return PLUGIN_CONTINUE

   if (!get_pcvar_num(pEnabled)) {
      client_print(id, print_chat, "[AMXX] Parachute plugin is disabled")
      return PLUGIN_HANDLED
   }

   if (!has_parachute[id]) {
      client_print(id, print_chat, "[AMXX] You don't have a parachute to sell")
      return PLUGIN_HANDLED
   }

   if (access(id,PARACHUTE_LEVEL)) {
      client_print(id, print_chat, "[AMXX] You cannot sell your free admin parachute")
      return PLUGIN_HANDLED
   }

   parachute_reset(id)

   new money = cs_get_user_money(id)
   new cost = get_pcvar_num(pCost)

   new sellamt = floatround(cost * (get_pcvar_num(pPayback) / 100.0))
   cs_set_user_money(id, money + sellamt)

   client_print(id, print_chat, "[AMX] You have sold your used parachute for $%d", sellamt)

   return PLUGIN_CONTINUE
}

public give_parachute(id,args[])
{
   if (!gCStrike) return PLUGIN_CONTINUE
   if (!is_user_connected(id)) return PLUGIN_CONTINUE

   if (!get_pcvar_num(pEnabled)) {
      client_print(id, print_chat, "[AMXX] Parachute plugin is disabled")
      return PLUGIN_HANDLED
   }

   if (!has_parachute[id]) {
      client_print(id, print_chat, "[AMXX] You don't have a parachute to give")
      return PLUGIN_HANDLED
   }

   new player = cmd_target(id, args, 4)
   if (!player) return PLUGIN_HANDLED

   new id_name[32], pl_name[32]
   get_user_name(id, id_name, 31)
   get_user_name(player, pl_name, 31)

   if(has_parachute[player]) {
      client_print(id, print_chat, "[AMXX] %s already has a parachute.", pl_name)
      return PLUGIN_HANDLED
   }

   parachute_reset(id)
   has_parachute[player] = true

   client_print(id, print_chat, "[AMXX] You have given your parachute to %s.", pl_name)
   client_print(player, print_chat, "[AMXX] %s has given thier parachute to you.", id_name)

   return PLUGIN_HANDLED
}

public admin_give_parachute(id, level, cid) {

   if (!gCStrike) return PLUGIN_CONTINUE

   if(!cmd_access(id,level,cid,2)) return PLUGIN_HANDLED

   if (!get_pcvar_num(pEnabled)) {
      client_print(id, print_chat, "[AMXX] Parachute plugin is disabled")
      return PLUGIN_HANDLED
   }

   new arg[32], name[32], name2[32], authid[35], authid2[35]
   read_argv(1,arg,31)
   get_user_name(id,name,31)
   get_user_authid(id,authid,34)

   if (arg[0]=='@'){
      new players[32], inum
      if (equali("T",arg[1]))      copy(arg[1],31,"TERRORIST")
      if (equali("ALL",arg[1]))   get_players(players,inum)
      else                  get_players(players,inum,"e",arg[1])

      if (inum == 0) {
         console_print(id,"No clients in such team")
         return PLUGIN_HANDLED
      }

      for(new a = 0; a < inum; a++) {
         has_parachute[players[a]] = true
      }

      switch(get_cvar_num("amx_show_activity"))   {
         case 2:   client_print(0,print_chat,"ADMIN %s: gave a parachute to ^"%s^" players",name,arg[1])
         case 1:   client_print(0,print_chat,"ADMIN: gave a parachute to ^"%s^" players",arg[1])
      }

      console_print(id,"[AMXX] You gave a parachute to ^"%s^" players",arg[1])
      log_amx("^"%s<%d><%s><>^" gave a parachute to ^"%s^"", name,get_user_userid(id),authid,arg[1])
   }
   else {

      new player = cmd_target(id,arg,6)
      if (!player) return PLUGIN_HANDLED

      has_parachute[player] = true

      get_user_name(player,name2,31)
      get_user_authid(player,authid2,34)

      switch(get_cvar_num("amx_show_activity")) {
         case 2:   client_print(0,print_chat,"ADMIN %s: gave a parachute to ^"%s^"",name,name2)
         case 1:   client_print(0,print_chat,"ADMIN: gave a parachute to ^"%s^"",name2)
      }

      console_print(id,"[AMXX] You gave a parachute to ^"%s^"", name2)
      log_amx("^"%s<%d><%s><>^" gave a parachute to ^"%s<%d><%s><>^"", name,get_user_userid(id),authid,name2,get_user_userid(player),authid2)
   }
   return PLUGIN_HANDLED
}

public client_PreThink(id)
{
   //parachute.mdl animation information
   //0 - deploy - 84 frames
   //1 - idle - 39 frames
   //2 - detach - 29 frames

   if (!get_pcvar_num(pEnabled)) return
   if (!is_user_alive(id) || !has_parachute[id]) return

   new Float:fallspeed = get_pcvar_float(pFallSpeed) * -1.0
   new Float:frame

   new button = get_user_button(id)
   new oldbutton = get_user_oldbutton(id)
   new flags = get_entity_flags(id)

   if (para_ent[id] > 0 && (flags & FL_ONGROUND)) {

      if (get_pcvar_num(pDetach)) {

         if (get_user_gravity(id) == 0.1) set_user_gravity(id, 1.0)

         if (entity_get_int(para_ent[id],EV_INT_sequence) != 2) {
            entity_set_int(para_ent[id], EV_INT_sequence, 2)
            entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
            entity_set_float(para_ent[id], EV_FL_frame, 0.0)
            entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
            entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
            entity_set_float(para_ent[id], EV_FL_framerate, 0.0)
            return
         }

         frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 2.0
         entity_set_float(para_ent[id],EV_FL_fuser1,frame)
         entity_set_float(para_ent[id],EV_FL_frame,frame)

         if (frame > 254.0) {
            remove_entity(para_ent[id])
            para_ent[id] = 0
         }
      }
      else {
         remove_entity(para_ent[id])
         set_user_gravity(id, 1.0)
         para_ent[id] = 0
      }

      return
   }

   if (button & IN_USE) {

      new Float:velocity[3]
      entity_get_vector(id, EV_VEC_velocity, velocity)

      if (velocity[2] < 0.0) {

         if(para_ent[id] <= 0) {
            para_ent[id] = create_entity("info_target")
            if(para_ent[id] > 0) {
               entity_set_string(para_ent[id],EV_SZ_classname,"parachute")
               entity_set_edict(para_ent[id], EV_ENT_aiment, id)
               entity_set_edict(para_ent[id], EV_ENT_owner, id)
               entity_set_int(para_ent[id], EV_INT_movetype, MOVETYPE_FOLLOW)
               entity_set_model(para_ent[id], "models/parachute.mdl")
               entity_set_int(para_ent[id], EV_INT_sequence, 0)
               entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
               entity_set_float(para_ent[id], EV_FL_frame, 0.0)
               entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
            }
         }

         if (para_ent[id] > 0) {

            entity_set_int(id, EV_INT_sequence, 3)
            entity_set_int(id, EV_INT_gaitsequence, 1)
            entity_set_float(id, EV_FL_frame, 1.0)
            entity_set_float(id, EV_FL_framerate, 1.0)
            set_user_gravity(id, 0.1)

            velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed
            entity_set_vector(id, EV_VEC_velocity, velocity)

            if (entity_get_int(para_ent[id],EV_INT_sequence) == 0) {

               frame = entity_get_float(para_ent[id],EV_FL_fuser1) + 1.0
               entity_set_float(para_ent[id],EV_FL_fuser1,frame)
               entity_set_float(para_ent[id],EV_FL_frame,frame)

               if (frame > 100.0) {
                  entity_set_float(para_ent[id], EV_FL_animtime, 0.0)
                  entity_set_float(para_ent[id], EV_FL_framerate, 0.4)
                  entity_set_int(para_ent[id], EV_INT_sequence, 1)
                  entity_set_int(para_ent[id], EV_INT_gaitsequence, 1)
                  entity_set_float(para_ent[id], EV_FL_frame, 0.0)
                  entity_set_float(para_ent[id], EV_FL_fuser1, 0.0)
               }
            }
         }
      }
      else if (para_ent[id] > 0) {
         remove_entity(para_ent[id])
         set_user_gravity(id, 1.0)
         para_ent[id] = 0
      }
   }
   else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) {
      remove_entity(para_ent[id])
      set_user_gravity(id, 1.0)
      para_ent[id] = 0
   }
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1031\\ f0\\ fs16 \n\\ par }
*/
User avatar
..::DeeP-SiDe::.. ;D
Membru, skill 0
Membru, skill 0
Posts: 33
Joined: 16 Dec 2011, 17:53
Detinator Steam: Da
SteamID: Da !
Location: Romania.
Has thanked: 6 times
Contact:

14 Sep 2013, 19:57

Merge perfect, mersi.
Image

CONNECT RESPAWN.CSGAMING.RO !
CONNECT RESPAWN.CSGAMING.RO !
CONNECT RESPAWN.CSGAMING.RO !
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 32 guests