Cerere plugin [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
MDFK-
Membru, skill 0
Membru, skill 0
Posts: 4
Joined: 21 Feb 2019, 19:12
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 1 time
Contact:

06 Mar 2019, 15:53

Plugin Cerut: VIP PAINTBALL
Descriere (adica ce face el mai exact): 250 HP si 250 AP
2x Damage
Saritura dubla
Gloante Infinite, fara necesitatea de reincarcare
Speed 100
TAG VIP
Parasuta
/vips (pentru cei online)
si /vip in html cu benefici
si HE / 2 FLASH-uri !
Serverul ruleaza (HLDS/ReHLDS): HLDS
Versiune AMX Mod X: 1.8.1
Modul Serverului: Paintball
Last edited by Radu eXtream on 12 Mar 2019, 11:32, edited 2 times in total.
RoyalServer
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

11 Mar 2019, 15:53

Un jucator are 260 speed.
Ti-am facut niste cvaruri. Vezi tu ce viteza ii dai.
(Viteza trebuie sa fie cu .0 la sfarsit. Gen 400.0 etc..)

Code: Select all

vip_spawn_hp 250 
vip_spawn_ap 250
vip_spawn_speed 300.0
vip_max_jumps 1
Netestat | Afiseaza codul
/* Plugin generated by AMXX-Studio */

#include <  amxmodx  >
#include <  amxmisc  >

#include <  cstrike  >
#include <  hamsandwich  >

#include <  fakemeta_util  >
#include <  engine  >

#define PLUGIN "[VIP] Surf"
#define VERSION "1.1"
#define AUTHOR "Ezeru"

#define VIP_FLAG	ADMIN_LEVEL_H	// Aici modifici tu flagul...


#define IsPlayer(%0)    ( 1 <= %0 <= g_iMaxPlayers ) // e pentru damage, sa nu dea erori in consola
new g_iMaxPlayers;


new bool:g_bInfiniteBullets[ 33 ]
enum
{
CurWeapon_IsActive = 1, // byte
CurWeapon_WeaponID, // byte
CurWeapon_ClipAmmo // byte
}

#define XO_WEAPON      4
#define m_iClip         51
#define m_iClientClip   52

#define m_pActiveItem   373

new const g_iMaxClip[CSW_P90+1] = {
-1,  13, -1, 10,  1,  7,    1, 30, 30,  1,  30, 
20, 25, 30, 35, 25,   12, 20, 10, 30, 100, 
8 , 30, 30, 20,  2,    7, 30, 30, -1,  50
}

new bool:Speed[ 33 ];



enum
{
    SCOREATTRIB_ARG_PLAYERID = 1,
    SCOREATTRIB_ARG_FLAGS
};

enum ( <<= 1 )
{
    SCOREATTRIB_FLAG_NONE = 0,
    SCOREATTRIB_FLAG_DEAD = 1,
    SCOREATTRIB_FLAG_BOMB,
    SCOREATTRIB_FLAG_VIP
};

// -- || Cvar-uri
new cvar_hp, cvar_ap, cvar_speed;

new jumpnum[33] = 0;
new bool:dojump[33] = false;
new cvar_vip_jumps;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	
	register_clcmd("say /vip", "HTML");
	register_clcmd("say_team /vip", "HTML");
	
	register_clcmd("say /vips", "print_adminlist");
	register_clcmd("say_team /vips", "print_adminlist");
	
	// -- || Cvar-uri
	cvar_hp = register_cvar("vip_spawn_hp", "250");
	cvar_ap = register_cvar("vip_spawn_ap", "250");
	cvar_speed = register_cvar("vip_spawn_speed", "300.0");
	cvar_vip_jumps = register_cvar("vip_max_jumps", "1")
	
	// -- || HamSandwich
	RegisterHam( Ham_Spawn, "player", "SpawnCmd", true );
	RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
	
	register_event( "CurWeapon", "CurrWeapon", "be", "1=1" );
	register_message( get_user_msgid( "CurWeapon" ), "event_curweapon" );
	
	g_iMaxPlayers = get_maxplayers ( 	);
	
	register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
	
}

public HTML(id) { show_motd(id, "addons/amxmodx/config/vip.html","VIP"); }

public MessageScoreAttrib( iMsgID, iDest, iReceiver )
{
    new iPlayer = get_msg_arg_int( 1 );
    if( is_user_connected( iPlayer ) 
    && ( get_user_flags( iPlayer ) & VIP_FLAG ) )
    set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_FLAG_VIP : SCOREATTRIB_FLAG_DEAD );
}  


public SpawnCmd ( id ) {
	if(is_user_connected(id)) {
		if(get_user_flags(id) & VIP_FLAG) {
			fm_set_user_health(id, get_pcvar_num( cvar_hp ) );
			fm_set_user_armor(id, get_pcvar_num( cvar_ap ) );
			fm_give_item(id, "weapon_hegrenade");
			fm_give_item(id, "weapon_flashbang");
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
			g_bInfiniteBullets[id] = true;
			Speed[ id ] = true;
			CurrWeapon(id);
		}
		Speed[ id ] = false;
		g_bInfiniteBullets[id] = false;
	}
	return 0;
}


public CurrWeapon ( id ) {
	
	if( Speed[ id ] ) {
		
		fm_set_user_maxspeed( id, float(get_pcvar_num( cvar_speed )) );
	}
	
	else {
		
		fm_set_user_maxspeed( id, 260.0 );
	}
}

public event_curweapon( iMsgId, iMsgDest, id )
{
	if ( get_msg_arg_int( CurWeapon_IsActive ) && g_bInfiniteBullets[ id ] )
	{
		new iMaxClip = g_iMaxClip[ get_msg_arg_int( CurWeapon_WeaponID ) ];
		if( get_msg_arg_int(CurWeapon_ClipAmmo) < iMaxClip )
		{
			new iWeapon = get_pdata_cbase( id, m_pActiveItem );
			if ( iWeapon > 0 )
			{
				set_pdata_int( iWeapon, m_iClip, iMaxClip, XO_WEAPON );
				set_pdata_int( iWeapon, m_iClientClip, iMaxClip, XO_WEAPON );
				
				set_msg_arg_int( CurWeapon_ClipAmmo, ARG_BYTE, iMaxClip );
			}
		}
	}
}
public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits ) 
	{
	if ( IsPlayer ( iAttacker ) ) { 
		if( get_user_flags(iAttacker) & VIP_FLAG )  {
			SetHamParamFloat( 4, fDamage * 2 )
			return HAM_HANDLED;
		}
	}
	
	return HAM_IGNORED;
}

public client_PreThink(id)
{
	if(!is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new nbut = get_user_button(id)
	new obut = get_user_oldbutton(id)
	
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(get_user_flags(id) & VIP_FLAG)
		{
			if(jumpnum[id] < get_pcvar_num(cvar_vip_jumps))
			{
				dojump[id] = true
				jumpnum[id]++
				return PLUGIN_CONTINUE;
			}
		}
	}
	
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		jumpnum[id] = 0
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	if(!is_user_alive(id) || !(get_user_flags(id) & VIP_FLAG))
		return PLUGIN_HANDLED;
		
		
	if(dojump[id] == true)
	{
		new Float:velocity[3]
		entity_get_vector(id,EV_VEC_velocity, velocity)
		velocity[2] = random_float(265.0,285.0)
		entity_set_vector(id,EV_VEC_velocity, velocity)
		dojump[id] = false
		return PLUGIN_CONTINUE;
	}
	
	new Float:fallspeed = 100.0 * -1.0

	new button = get_user_button(id)
	if(button & IN_USE) 
	{
		new Float:velocity[3]
		entity_get_vector(id, EV_VEC_velocity, velocity)
		if (velocity[2] < 0.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)
		}
	}
	
	return PLUGIN_CONTINUE;
}

/////////////////\\\\\\\\\\\\\\\///////// --- || Vips Online || --- //////////////////////////////
public print_adminlist(user) {
	new adminnames[33][32];
	new message[256];
	new id, count, x, len;
	
	for(id = 1 ; id <= get_maxplayers() ; id++)
		if(is_user_connected(id))
		if(get_user_flags(id) & VIP_FLAG)
		get_user_name(id, adminnames[count++], 31);
	
	len = format(message, 255, "^x04 VIP ONLINE: ");
	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, "^x04 ");
			}
		}
		print_message(user, message);
	}
	else {
		len += format(message[len], 255-len, "No VIP online.");
		print_message(user, message);
	}
}
stock print_message(id, msg[]) {
	message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
	write_byte(id);
	write_string(msg);
	message_end();
}
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

11 Mar 2019, 18:31

Truth* wrote:
11 Mar 2019, 15:53
Un jucator are 260 speed.
Ti-am facut niste cvaruri. Vezi tu ce viteza ii dai.
(Viteza trebuie sa fie cu .0 la sfarsit. Gen 400.0 etc..)

Code: Select all

vip_spawn_hp 250 
vip_spawn_ap 250
vip_spawn_speed 300.0
vip_max_jumps 1
Netestat | Afiseaza codul
/* Plugin generated by AMXX-Studio */

#include <  amxmodx  >
#include <  amxmisc  >

#include <  cstrike  >
#include <  hamsandwich  >

#include <  fakemeta_util  >
#include <  engine  >

#define PLUGIN "[VIP] Surf"
#define VERSION "1.1"
#define AUTHOR "Ezeru"

#define VIP_FLAG	ADMIN_LEVEL_H	// Aici modifici tu flagul...


#define IsPlayer(%0)    ( 1 <= %0 <= g_iMaxPlayers ) // e pentru damage, sa nu dea erori in consola
new g_iMaxPlayers;


new bool:g_bInfiniteBullets[ 33 ]
enum
{
CurWeapon_IsActive = 1, // byte
CurWeapon_WeaponID, // byte
CurWeapon_ClipAmmo // byte
}

#define XO_WEAPON      4
#define m_iClip         51
#define m_iClientClip   52

#define m_pActiveItem   373

new const g_iMaxClip[CSW_P90+1] = {
-1,  13, -1, 10,  1,  7,    1, 30, 30,  1,  30, 
20, 25, 30, 35, 25,   12, 20, 10, 30, 100, 
8 , 30, 30, 20,  2,    7, 30, 30, -1,  50
}

new bool:Speed[ 33 ];



enum
{
    SCOREATTRIB_ARG_PLAYERID = 1,
    SCOREATTRIB_ARG_FLAGS
};

enum ( <<= 1 )
{
    SCOREATTRIB_FLAG_NONE = 0,
    SCOREATTRIB_FLAG_DEAD = 1,
    SCOREATTRIB_FLAG_BOMB,
    SCOREATTRIB_FLAG_VIP
};

// -- || Cvar-uri
new cvar_hp, cvar_ap, cvar_speed;

new jumpnum[33] = 0;
new bool:dojump[33] = false;
new cvar_vip_jumps;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	
	register_clcmd("say /vip", "HTML");
	register_clcmd("say_team /vip", "HTML");
	
	register_clcmd("say /vips", "print_adminlist");
	register_clcmd("say_team /vips", "print_adminlist");
	
	// -- || Cvar-uri
	cvar_hp = register_cvar("vip_spawn_hp", "250");
	cvar_ap = register_cvar("vip_spawn_ap", "250");
	cvar_speed = register_cvar("vip_spawn_speed", "300.0");
	cvar_vip_jumps = register_cvar("vip_max_jumps", "1")
	
	// -- || HamSandwich
	RegisterHam( Ham_Spawn, "player", "SpawnCmd", true );
	RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
	
	register_event( "CurWeapon", "CurrWeapon", "be", "1=1" );
	register_message( get_user_msgid( "CurWeapon" ), "event_curweapon" );
	
	g_iMaxPlayers = get_maxplayers ( 	);
	
	register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
	
}

public HTML(id) { show_motd(id, "addons/amxmodx/config/vip.html","VIP"); }

public MessageScoreAttrib( iMsgID, iDest, iReceiver )
{
    new iPlayer = get_msg_arg_int( 1 );
    if( is_user_connected( iPlayer ) 
    && ( get_user_flags( iPlayer ) & VIP_FLAG ) )
    set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_FLAG_VIP : SCOREATTRIB_FLAG_DEAD );
}  


public SpawnCmd ( id ) {
	if(is_user_connected(id)) {
		if(get_user_flags(id) & VIP_FLAG) {
			fm_set_user_health(id, get_pcvar_num( cvar_hp ) );
			fm_set_user_armor(id, get_pcvar_num( cvar_ap ) );
			fm_give_item(id, "weapon_hegrenade");
			fm_give_item(id, "weapon_flashbang");
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
			g_bInfiniteBullets[id] = true;
			Speed[ id ] = true;
			CurrWeapon(id);
		}
		Speed[ id ] = false;
		g_bInfiniteBullets[id] = false;
	}
	return 0;
}


public CurrWeapon ( id ) {
	
	if( Speed[ id ] ) {
		
		fm_set_user_maxspeed( id, float(get_pcvar_num( cvar_speed )) );
	}
	
	else {
		
		fm_set_user_maxspeed( id, 260.0 );
	}
}

public event_curweapon( iMsgId, iMsgDest, id )
{
	if ( get_msg_arg_int( CurWeapon_IsActive ) && g_bInfiniteBullets[ id ] )
	{
		new iMaxClip = g_iMaxClip[ get_msg_arg_int( CurWeapon_WeaponID ) ];
		if( get_msg_arg_int(CurWeapon_ClipAmmo) < iMaxClip )
		{
			new iWeapon = get_pdata_cbase( id, m_pActiveItem );
			if ( iWeapon > 0 )
			{
				set_pdata_int( iWeapon, m_iClip, iMaxClip, XO_WEAPON );
				set_pdata_int( iWeapon, m_iClientClip, iMaxClip, XO_WEAPON );
				
				set_msg_arg_int( CurWeapon_ClipAmmo, ARG_BYTE, iMaxClip );
			}
		}
	}
}
public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits ) 
	{
	if ( IsPlayer ( iAttacker ) ) { 
		if( get_user_flags(iAttacker) & VIP_FLAG )  {
			SetHamParamFloat( 4, fDamage * 2 )
			return HAM_HANDLED;
		}
	}
	
	return HAM_IGNORED;
}

public client_PreThink(id)
{
	if(!is_user_alive(id))
	{
		return PLUGIN_HANDLED;
	}
	
	new nbut = get_user_button(id)
	new obut = get_user_oldbutton(id)
	
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(get_user_flags(id) & VIP_FLAG)
		{
			if(jumpnum[id] < get_pcvar_num(cvar_vip_jumps))
			{
				dojump[id] = true
				jumpnum[id]++
				return PLUGIN_CONTINUE;
			}
		}
	}
	
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		jumpnum[id] = 0
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	if(!is_user_alive(id) || !(get_user_flags(id) & VIP_FLAG))
		return PLUGIN_HANDLED;
		
		
	if(dojump[id] == true)
	{
		new Float:velocity[3]
		entity_get_vector(id,EV_VEC_velocity, velocity)
		velocity[2] = random_float(265.0,285.0)
		entity_set_vector(id,EV_VEC_velocity, velocity)
		dojump[id] = false
		return PLUGIN_CONTINUE;
	}
	
	new Float:fallspeed = 100.0 * -1.0

	new button = get_user_button(id)
	if(button & IN_USE) 
	{
		new Float:velocity[3]
		entity_get_vector(id, EV_VEC_velocity, velocity)
		if (velocity[2] < 0.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)
		}
	}
	
	return PLUGIN_CONTINUE;
}

/////////////////\\\\\\\\\\\\\\\///////// --- || Vips Online || --- //////////////////////////////
public print_adminlist(user) {
	new adminnames[33][32];
	new message[256];
	new id, count, x, len;
	
	for(id = 1 ; id <= get_maxplayers() ; id++)
		if(is_user_connected(id))
		if(get_user_flags(id) & VIP_FLAG)
		get_user_name(id, adminnames[count++], 31);
	
	len = format(message, 255, "^x04 VIP ONLINE: ");
	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, "^x04 ");
			}
		}
		print_message(user, message);
	}
	else {
		len += format(message[len], 255-len, "No VIP online.");
		print_message(user, message);
	}
}
stock print_message(id, msg[]) {
	message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
	write_byte(id);
	write_string(msg);
	message_end();
}
250 e viteza default
#define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers ) - #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
spawn - e mai logic să verifici dacă e în viața, nu conectat(nu e nimic wow, da mna), la fel și în curweapon(oricum normal ele sunt apelate atunci când jucătorul e viu
în pore&post think, nu știu cât de ok e să pui un handled
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

12 Mar 2019, 09:45

Pluginul e facut la cerere nu pentru a fi postat. I-am dat ceva ce merge(sper :)) )
#define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers ) - #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
%0 sau %1 sunt paramentri.
Daca aveai mai multi parametri cum ar fi o suma puteai sa pui sum (%0,%1) (%0+%1)
De ce spui ca e mai bine cu %1 ? Arata mai bine sau ?
Nici eu nu sunt sigur. Nu am mai lucrat de mult. :))
Apreciez comentariul.
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
MDFK-
Membru, skill 0
Membru, skill 0
Posts: 4
Joined: 21 Feb 2019, 19:12
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Has thanked: 1 time
Contact:

12 Mar 2019, 11:25

Am rezolvat . Va multumesc mult pentru ajutor ! Puteti da T/C
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

12 Mar 2019, 17:57

Truth* wrote:
12 Mar 2019, 09:45
Pluginul e facut la cerere nu pentru a fi postat. I-am dat ceva ce merge(sper :)) )
#define IsPlayer(%0) ( 1 <= %0 <= g_iMaxPlayers ) - #define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
%0 sau %1 sunt paramentri.
Daca aveai mai multi parametri cum ar fi o suma puteai sa pui sum (%0,%1) (%0+%1)
De ce spui ca e mai bine cu %1 ? Arata mai bine sau ?
Nici eu nu sunt sigur. Nu am mai lucrat de mult. :))
Apreciez comentariul.
mi-a dat mie pm cum că nu-i merg anumite chestii, și faza cu bullet(gloanțe infinite), i-am „reparat” eu plg

Code: Select all

/* Plugin generated by AMXX-Studio */

#include <  amxmodx  >
#include <  cstrike  >
#include <  hamsandwich  >
#include <  fakemeta_util  >
#include <  engine  >


#define PLUGIN "[VIP] Surf"
#define VERSION "1.1"
#define AUTHOR "Ezeru"


#define VIP_FLAG "ab"	// Aici modifici tu flagul...
#define e_vip(%0)	(get_user_flags(%0)&read_flags(VIP_FLAG))


#define IsPlayer(%1)    ( 1 <= %1 <= g_iMaxPlayers ) // e pentru damage, sa nu dea erori in consola
new g_iMaxPlayers;


// weapons offsets
#define OFFSET_CLIPAMMO        51
#define OFFSET_LINUX_WEAPONS    4
#define fm_cs_set_weapon_ammo(%1,%2)    set_pdata_int(%1, OFFSET_CLIPAMMO, %2, OFFSET_LINUX_WEAPONS)

// players offsets
#define m_pActiveItem 373

const NOCLIP_WPN_BS    = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4))

new const g_MaxClipAmmo[] = 
{
    0,
    13, //CSW_P228
    0,
    10, //CSW_SCOUT
    0,  //CSW_HEGRENADE
    7,  //CSW_XM1014
    0,  //CSW_C4
    30,//CSW_MAC10
    30, //CSW_AUG
    0,  //CSW_SMOKEGRENADE
    15,//CSW_ELITE
    20,//CSW_FIVESEVEN
    25,//CSW_UMP45
    30, //CSW_SG550
    35, //CSW_GALIL
    25, //CSW_FAMAS
    12,//CSW_USP
    20,//CSW_GLOCK18
    10, //CSW_AWP
    30,//CSW_MP5NAVY
    100,//CSW_M249
    8,  //CSW_M3
    30, //CSW_M4A1
    30,//CSW_TMP
    20, //CSW_G3SG1
    0,  //CSW_FLASHBANG
    7,  //CSW_DEAGLE
    30, //CSW_SG552
    30, //CSW_AK47
    0,  //CSW_KNIFE
    50//CSW_P90
}

new bool:Speed[ 33 ];

enum
{
    SCOREATTRIB_ARG_PLAYERID = 1,
    SCOREATTRIB_ARG_FLAGS
};
enum ( <<= 1 )
{
    SCOREATTRIB_FLAG_NONE = 0,
    SCOREATTRIB_FLAG_DEAD = 1,
    SCOREATTRIB_FLAG_BOMB,
    SCOREATTRIB_FLAG_VIP
};

// -- || Cvar-uri
new cvar_hp, cvar_ap, cvar_speed;

new jumpnum[33] = 0;
new bool:dojump[33] = false;
new cvar_vip_jumps;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say /vip", "HTML");
	register_clcmd("say_team /vip", "HTML");
	
	register_clcmd("say /vips", "print_adminlist");
	register_clcmd("say_team /vips", "print_adminlist");
	
	// -- || Cvar-uri
	cvar_hp = register_cvar("vip_spawn_hp", "250");
	cvar_ap = register_cvar("vip_spawn_ap", "250");
	cvar_speed = register_cvar("vip_spawn_speed", "300.0");
	cvar_vip_jumps = register_cvar("vip_max_jumps", "1")
	
	// -- || HamSandwich
	RegisterHam( Ham_Spawn, "player", "SpawnCmd", true );
	RegisterHam ( Ham_TakeDamage, "player", "Player_TakeDamage" );
	
	g_iMaxPlayers = get_maxplayers ( );
	
	register_event( "CurWeapon", "CurrWeapon", "be", "1=1" );
	
	register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
}

public HTML(id) { show_motd(id, "addons/amxmodx/config/vip.html","VIP"); }

public MessageScoreAttrib( iMsgID, iDest, iReceiver )
{
    new iPlayer = get_msg_arg_int( 1 );
    if( is_user_connected( iPlayer ) 
    && e_vip(iPlayer) )
    set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_FLAG_VIP : SCOREATTRIB_FLAG_DEAD );
}  

public SpawnCmd ( id ) {
	if(is_user_alive(id)) {
		if(e_vip(id)) {
			fm_set_user_health(id, get_pcvar_num( cvar_hp ) );
			fm_set_user_armor(id, get_pcvar_num( cvar_ap ) );
			fm_give_item(id, "weapon_hegrenade");
			fm_give_item(id, "weapon_flashbang");
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
			Speed[ id ] = true;
			CurrWeapon(id);
		}
		Speed[ id ] = false;
	}
	return 0;
}

public Player_TakeDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits ) 
{
	if ( IsPlayer ( iAttacker )&&e_vip(iAttacker) ) { 
		SetHamParamFloat( 4, fDamage * 2 )
		return HAM_HANDLED;
	}
	return HAM_IGNORED;
}

public CurrWeapon ( id ) {
	if(is_user_alive(id)&&e_vip(id))
	{
	new iWeapon = read_data(2)
	if( Speed[ id ] ) {
		fm_set_user_maxspeed( id, get_pcvar_float( cvar_speed ) );
	}
	else {
		fm_set_user_maxspeed( id, 260.0 );
	}
	
	if( !( NOCLIP_WPN_BS & (1<<iWeapon) ) )
	{
		fm_cs_set_weapon_ammo( get_pdata_cbase(id, m_pActiveItem) , g_MaxClipAmmo[ iWeapon ] )
	}
	}
}


public client_PreThink(id)
{
	if(!is_user_alive(id)||!e_vip(id))	return PLUGIN_CONTINUE;
	
	new nbut = get_user_button(id)
	new obut = get_user_oldbutton(id)
	
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(jumpnum[id] < get_pcvar_num(cvar_vip_jumps))
		{
			dojump[id] = true
			jumpnum[id]++
			return PLUGIN_CONTINUE;
		}
	}
	
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		jumpnum[id] = 0
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	if(!is_user_alive(id) || !e_vip(id))
		return PLUGIN_CONTINUE;
	
	if(dojump[id] == true)
	{
		new Float:velocity[3]
		entity_get_vector(id,EV_VEC_velocity, velocity)
		velocity[2] = random_float(265.0,285.0)
		entity_set_vector(id,EV_VEC_velocity, velocity)
		dojump[id] = false
		return PLUGIN_CONTINUE;
	}
	
	new Float:fallspeed = 100.0 * -1.0

	new button = get_user_button(id)
	if(button & IN_USE) 
	{
		new Float:velocity[3]
		entity_get_vector(id, EV_VEC_velocity, velocity)
		if (velocity[2] < 0.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)
		}
	}
	
	return PLUGIN_CONTINUE;
}

/////////////////\\\\\\\\\\\\\\\///////// --- || Vips Online || --- //////////////////////////////
public print_adminlist(user) {
	new adminnames[33][32],message[256],id, count, x, len;
	
	for(id = 1 ; id <= get_maxplayers() ; id++)	if(is_user_connected(id)&&e_vip(id))	get_user_name(id, adminnames[count++], 31);
	
	len = format(message, 255, "^x04 VIP ONLINE: ");
	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, "^x04 ");
			}
		}
		print_message(user, message);
	}
	else {
		len += format(message[len], 255-len, "No VIP online.");
		print_message(user, message);
	}
}
stock print_message(id, msg[]) {
	message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
	write_byte(id);
	write_string(msg);
	message_end();
}
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: Yandex [Bot] and 35 guests