Problema plugin [Rezolvat]

Discutii legate de instalarea, configurarea si modificarea unui server de Counter-Strike.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
Challenger.
Fost moderator
Fost moderator
Posts: 2530
Joined: 07 Dec 2014, 14:32
Detinator Steam: Da
Reputatie: Fost Super Moderator
Nume anterior: whisTle
Puncte: 1.7 / 3
Fond eXtream: 0
Contact:

02 May 2015, 17:15

Salut,am si eu o problema cu pluginul de mai jos.
Cand intru pe server imi da sa imi aleg echipa.
Si normal nu ar trebui..
Cum sa fac sa ma bage direct in echipa ?
| Afiseaza codul
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <fun>
#include "furien.inc"

#define m_rgpPlayerItems_wpnbx_Slot5	39
#define IsPlayer(%1)	( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )
#define IsWeaponBoxC4(%1)	( get_pdata_cbase(%1, m_rgpPlayerItems_wpnbx_Slot5, XO_WEAPONBOX) > 0 )
#define PLUGIN "Furien Mod"
#define VERSION "1.1"
#define AUTHOR "DaNNe."

#define XO_WEAPONBOX				4

#define FURIEN_GRAVITY		0.4
#define FURIEN_SPEED		700.0

#define TEAM_FURIEN 1
#define TEAM_ANTIFURIEN 2

new g_iPickUp = 2
new g_iMaxPlayers

#define		SWITCH_TASK		112233
#define FIRST_PLAYER_ID	1
new bool:MakeVisible[33], Float:Wallorigin[33][3];

// ----- | Parachute | ------ //
#define PARACHUTE_CLASS		"Parachute"
new ParaENT[33];
new CsTeams:g_iFuriensTeam = CS_TEAM_T

new cvar_gamedescription, furienspawnhp, antifurienspawnhp

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	cvar_gamedescription = register_cvar("furien_gamename", "Furien CSO Mod")
	antifurienspawnhp = register_cvar("antifurien_spawnhp", "135")
	furienspawnhp = register_cvar("furien_spawnhp", "100")
	
	register_forward(FM_PlayerPreThink, "Player_PreThink");
	register_forward(FM_AddToFullPack, "FWD_AddToFullPack", 1);	
	register_forward(FM_PlayerPreThink, "FWD_ParachutePreThink");
	register_forward(FM_GetGameDescription, "FWD_GameDescription")	
	
	RegisterHam(Ham_Touch, "weaponbox", "CWeaponBox_Touch")
	RegisterHam(Ham_Touch, "armoury_entity", "GroundWeapon_Touch")
	RegisterHam(Ham_Touch, "weapon_shield", "GroundWeapon_Touch")
	RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1);
	
	register_event("SendAudio", "EVENT_TeamSwap", "a", "1=0", "2=%!MRAD_ctwin");
	//Register_BlockBuy()
	g_iMaxPlayers = get_maxplayers()
}
public plugin_natives()
{
	register_library("furien")
	register_native("furien_get_user_team", "fr_get_user_team")
}
public fr_get_user_team(/*iPlugin, iParams*/)
{
	return __get_user_team( get_param(1) )
}
__get_user_team(id)
{
	new CsTeams:iTeam = cs_get_user_team(id)
	if( CS_TEAM_T <= iTeam <= CS_TEAM_CT )
	{
		if( iTeam == g_iFuriensTeam )
		{
			return Furien
		}
		return AntiFurien
	}
	return -1
}

/*public plugin_precache() {
	remove_entity_name("info_map_parameters");
	remove_entity_name("func_buyzone");
	new Entity = create_entity("info_map_parameters");
		
	DispatchKeyValue(Entity, "buying", "3");
	DispatchSpawn(Entity);
}*/

public HAM_Spawn_Post(id) {
	if(is_user_alive(id) && !is_user_bot(id)) {
		strip_user_weapons(id)
		fm_give_item(id, "weapon_knife")
		switch(get_user_team(id)) {
			case TEAM_FURIEN: {
				fm_give_item(id, "weapon_hegrenade")
				fm_give_item(id, "weapon_flashbang")
				set_user_footsteps(id, 0)
				//fm_give_item(id, "weapon_knife")
				fm_set_user_health(id, get_pcvar_num(furienspawnhp))
			}
			case TEAM_ANTIFURIEN: {
				fm_give_item(id, "weapon_hegrenade")
				fm_give_item(id, "weapon_flashbang")
				set_user_footsteps(id, 0)
				fm_give_item(id,"weapon_usp")
				cs_set_user_bpammo(id,CSW_USP,250)
				//fm_give_item(id, "weapon_knife")
				fm_set_user_health(id, get_pcvar_num(antifurienspawnhp))
			}
		}
	}
}

public Player_PreThink(id) {
	if(is_user_connected(id)) {
		if(get_user_team(id) == TEAM_FURIEN) {
			if(pev(id, pev_gravity) > FURIEN_GRAVITY && pev(id, pev_gravity) > 0.1)
				set_pev(id, pev_gravity, FURIEN_GRAVITY)
		
			if(pev(id, pev_maxspeed) < FURIEN_SPEED && pev(id, pev_maxspeed) > 1.0) {
				set_pev(id, pev_maxspeed, FURIEN_SPEED)
				set_user_footsteps(id, 1)
			}
		}
	}
}

public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set) {
	if(is_user_connected(ent) && is_user_connected(host) && is_user_alive(ent)) {
		if(is_user_alive(host) && get_user_team(ent) == 1 && get_user_team(host) == 1 
		|| !is_user_alive(host) && get_user_team(ent) == 1 && pev(host, pev_iuser2) == ent
		|| get_user_team(ent) == 1 && pev(ent, pev_maxspeed) <= 1.0) {
			set_es(es, ES_RenderFx, kRenderFxNone);
			set_es(es, ES_RenderMode, kRenderTransTexture);
			set_es(es, ES_RenderAmt, 255);
		}
		else if(get_user_team(ent) == 1) {
			set_es(es, ES_RenderFx, kRenderFxNone);
			set_es(es, ES_RenderMode, kRenderTransTexture);
			static Float:Origin[3]
			pev(ent, pev_origin, Origin)
			
			if(get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && fm_get_speed(ent) <= 5 || get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && Origin[0] == Wallorigin[ent][0] && Origin[1] == Wallorigin[ent][1] && Origin[2] == Wallorigin[ent][2])
				set_es(es, ES_RenderAmt, 0);
			else
				set_es(es, ES_RenderAmt, 255);
		}
	}
}

public GroundWeapon_Touch(iWeapon, id)
{
	if( IsPlayer(id) )
	{
		if( !g_iPickUp )
		{
			remove_entity(iWeapon)
			return HAM_SUPERCEDE
		}

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

		new iTeam = __get_user_team(id)
		if(	( iTeam == -1 )
		||	(iTeam == Furien && g_iPickUp != 1)
		||	(iTeam == AntiFurien && g_iPickUp != 2)	)
		{
			return HAM_SUPERCEDE
		}
	}
	return HAM_IGNORED
}

public CWeaponBox_Touch(iWeaponBox, id)
{
	if( IsPlayer(id) )
	{
		if( !is_user_alive(id) )
		{
			return HAM_SUPERCEDE
		}

		if( IsWeaponBoxC4(iWeaponBox) )
		{
			return HAM_IGNORED
		}

		if( !g_iPickUp )
		{
			remove_entity(iWeaponBox)
			return HAM_SUPERCEDE
		}

		new iTeam = __get_user_team(id)
		if(	( iTeam == -1 )
		||	(iTeam == Furien && g_iPickUp != 1)
		||	(iTeam == AntiFurien && g_iPickUp != 2)	)
		{
			return HAM_SUPERCEDE
		}
	}
	return HAM_IGNORED
}

public FWD_GameDescription() { 
	static GameName[32]
	get_pcvar_string(cvar_gamedescription, GameName, 31)
	
	forward_return(FMV_STRING, GameName)
	
	return FMRES_SUPERCEDE
}

public FWD_ParachutePreThink(id) {
	if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
		new Float:FallSpeed = -50.0;
		new Float:Frame;
		
		new Button = pev(id, pev_button);
		new OldButton = pev(id, pev_oldbuttons);
		new Flags = pev(id, pev_flags);
		
		if(ParaENT[id] > 0 &&(Flags & FL_ONGROUND)) {
			
			if(pev(ParaENT[id],pev_sequence) != 2) {
				set_pev(ParaENT[id], pev_sequence, 2);
				set_pev(ParaENT[id], pev_gaitsequence, 1);
				set_pev(ParaENT[id], pev_frame, 0.0);
				set_pev(ParaENT[id], pev_fuser1, 0.0);
				set_pev(ParaENT[id], pev_animtime, 0.0);
				return;
			}
			
			pev(ParaENT[id],pev_fuser1, Frame);
			Frame += 2.0;
			set_pev(ParaENT[id],pev_fuser1,Frame);
			set_pev(ParaENT[id],pev_frame,Frame);
			
			if(Frame > 254.0) {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
			else {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
			return;
		}
		
		if(Button & IN_USE) {
			new Float:Velocity[3];
			pev(id, pev_velocity, Velocity);
			
			if(Velocity[2] < 0.0) {
				if(ParaENT[id] <= 0) {
					ParaENT[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
					
					if(ParaENT[id] > 0) {
						set_pev(ParaENT[id],pev_classname, PARACHUTE_CLASS);
						set_pev(ParaENT[id], pev_aiment, id);
						set_pev(ParaENT[id], pev_owner, id);
						set_pev(ParaENT[id], pev_movetype, MOVETYPE_FLY);
						set_pev(ParaENT[id], pev_sequence, 0);
						set_pev(ParaENT[id], pev_gaitsequence, 1);
						set_pev(ParaENT[id], pev_frame, 0.0);
						set_pev(ParaENT[id], pev_fuser1, 0.0);
					}
				}
				if(ParaENT[id] > 0) {
					set_pev(id, pev_sequence, 3);
					set_pev(id, pev_gaitsequence, 1);
					set_pev(id, pev_frame, 1.0);
					set_pev(id, pev_framerate, 1.0);
					
					Velocity[2] = (Velocity[2] + 40.0 < FallSpeed) ? Velocity[2] + 40.0 : FallSpeed;
					set_pev(id, pev_velocity, Velocity);
					
					if(pev(ParaENT[id],pev_sequence) == 0) {
						pev(ParaENT[id],pev_fuser1, Frame);
						Frame += 1.0;
						set_pev(ParaENT[id],pev_fuser1,Frame);
						set_pev(ParaENT[id],pev_frame,Frame);
						
						if(Frame > 100.0) {
							set_pev(ParaENT[id], pev_animtime, 0.0);
							set_pev(ParaENT[id], pev_framerate, 0.4);
							set_pev(ParaENT[id], pev_sequence, 1);
							set_pev(ParaENT[id], pev_gaitsequence, 1);
							set_pev(ParaENT[id], pev_frame, 0.0);
							set_pev(ParaENT[id], pev_fuser1, 0.0);
						}
					}
				}
			}
			
			else if(ParaENT[id] > 0) {
				engfunc(EngFunc_RemoveEntity, ParaENT[id]);
				ParaENT[id] = 0;
			}
		}
		
		else if((OldButton & IN_USE) && ParaENT[id] > 0) {
			engfunc(EngFunc_RemoveEntity, ParaENT[id]);
			ParaENT[id] = 0;
		}
	}
}

public EVENT_TeamSwap() {
	new iPlayers[32],  iNum;
	get_players(iPlayers, iNum, "ch");
	
	if(iNum) {
		new  id;
		for(--iNum; iNum >= 0; iNum--) {
			id  =  iPlayers[iNum];
			BeginDelayedTeamChange(id);
		}
	}
}

public BeginDelayedTeamChange(id) {
	switch(id) { 
		case  1..6:  set_task(0.1, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
		case  7..13:  set_task(0.2, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
		case  14..20:  set_task(0.3, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
		case  21..26:  set_task(0.4, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
		case  27..32:  set_task(0.5, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
	} 
}

public ChangeUserTeamWithDelay(id) {
	id  -=  SWITCH_TASK;
	if(!is_user_connected(id))  return 1;
	
	switch(cs_get_user_team(id)) {
		case  CS_TEAM_T:cs_set_user_team(id, CS_TEAM_CT);
		case  CS_TEAM_CT:cs_set_user_team(id, CS_TEAM_T);	
	}
	return 0;
}

/*public Register_BlockBuy() {
	register_clcmd("buy", "CMDCheckAndBlockBuy")
	register_clcmd("Buy", "CMDCheckAndBlockBuy")
	register_clcmd("BUY", "CMDCheckAndBlockBuy")
	register_clcmd("bUy", "CMDCheckAndBlockBuy")
	register_clcmd("buY", "CMDCheckAndBlockBuy")
	register_clcmd("jointeam", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 1", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 2", "CMD_BlockJoinTeam")
	register_clcmd("jointeam 3", "CMD_BlockJoinTeam")
	register_clcmd("chooseteam", "CMD_BlockChooseTeam")
}

public CMDCheckAndBlockBuy(id) {
	console_print(id, "*** Nu ai voie sa foloseti BUY ! ***")
	return PLUGIN_HANDLED_MAIN
}

public CMD_BlockJoinTeam(id) {
	console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
	return 1;
}

public CMD_BlockChooseTeam(id) {
	console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
	return 1;
}*/
Last edited by Jorj on 04 May 2015, 21:24, edited 1 time in total.
Reason: rezolvat // cu placere :)
NU sunt intermediar.

Dacă ai nevoie de ajutor pe forum dă-mi un PM şi rezolvăm.

REGULAMENT FORUM

RECLAMAȚII MODERATORI

RECLAMAȚII PM
Activitate scăzută
RoyalServer 2
User avatar
iNdio
Membru, skill +4
Membru, skill +4
Posts: 1512
Joined: 28 Jan 2015, 17:42
Detinator Steam: Da
SteamID: iNdioPGL
Reputatie: Fost Membru Club eXtreamCS (6 luni)
Castigator Membru Club eXtream @ Ganduri de sub dus (25 OCT - 25 FEB)
Fond eXtream: 0
Been thanked: 3 times

02 May 2015, 18:27

furien | Afiseaza codul
[code=php]
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <fun>
#include "furien.inc"

#define m_rgpPlayerItems_wpnbx_Slot5    39
#define IsPlayer(%1)    ( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )
#define IsWeaponBoxC4(%1)    ( get_pdata_cbase(%1, m_rgpPlayerItems_wpnbx_Slot5, XO_WEAPONBOX) > 0 )
#define PLUGIN "Furien Mod"
#define VERSION "1.1"
#define AUTHOR "DaNNe."

#define XO_WEAPONBOX                4

#define FURIEN_GRAVITY        0.4
#define FURIEN_SPEED        700.0

#define TEAM_FURIEN 1
#define TEAM_ANTIFURIEN 2

new g_iPickUp = 2
new g_iMaxPlayers

#define        SWITCH_TASK        112233
#define FIRST_PLAYER_ID    1
new bool:MakeVisible[33], Float:Wallorigin[33][3];

// ----- | Parachute | ------ //
#define PARACHUTE_CLASS        "Parachute"
new ParaENT[33];
new CsTeams:g_iFuriensTeam = CS_TEAM_T

new cvar_gamedescription, furienspawnhp, antifurienspawnhp

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    cvar_gamedescription = register_cvar("furien_gamename", "Furien CSO Mod")
    antifurienspawnhp = register_cvar("antifurien_spawnhp", "135")
    furienspawnhp = register_cvar("furien_spawnhp", "100")
    
    register_forward(FM_PlayerPreThink, "Player_PreThink");
    register_forward(FM_AddToFullPack, "FWD_AddToFullPack", 1);    
    register_forward(FM_PlayerPreThink, "FWD_ParachutePreThink");
    register_forward(FM_GetGameDescription, "FWD_GameDescription")    
    
    RegisterHam(Ham_Touch, "weaponbox", "CWeaponBox_Touch")
    RegisterHam(Ham_Touch, "armoury_entity", "GroundWeapon_Touch")
    RegisterHam(Ham_Touch, "weapon_shield", "GroundWeapon_Touch")
    RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1);
    
    register_event("SendAudio", "EVENT_TeamSwap", "a", "1=0", "2=%!MRAD_ctwin");
    //Register_BlockBuy()
    g_iMaxPlayers = get_maxplayers()
}
public plugin_natives()
{
    register_library("furien")
    register_native("furien_get_user_team", "fr_get_user_team")
}
public fr_get_user_team(/*iPlugin, iParams*/)
{
    return __get_user_team( get_param(1) )
}
__get_user_team(id)
{
    new CsTeams:iTeam = cs_get_user_team(id)
    if( CS_TEAM_T <= iTeam <= CS_TEAM_CT )
    {
        if( iTeam == g_iFuriensTeam )
        {
            return Furien
        }
        return AntiFurien
    }
    return -1
}

public plugin_precache() {
    remove_entity_name("info_map_parameters");
    remove_entity_name("func_buyzone");
    new Entity = create_entity("info_map_parameters");
        
    DispatchKeyValue(Entity, "buying", "3");
    DispatchSpawn(Entity);
}

public HAM_Spawn_Post(id) {
    if(is_user_alive(id) && !is_user_bot(id)) {
        strip_user_weapons(id)
        fm_give_item(id, "weapon_knife")
        switch(get_user_team(id)) {
            case TEAM_FURIEN: {
                fm_give_item(id, "weapon_hegrenade")
                fm_give_item(id, "weapon_flashbang")
                set_user_footsteps(id, 0)
                //fm_give_item(id, "weapon_knife")
                fm_set_user_health(id, get_pcvar_num(furienspawnhp))
            }
            case TEAM_ANTIFURIEN: {
                fm_give_item(id, "weapon_hegrenade")
                fm_give_item(id, "weapon_flashbang")
                set_user_footsteps(id, 0)
                fm_give_item(id,"weapon_usp")
                cs_set_user_bpammo(id,CSW_USP,250)
                //fm_give_item(id, "weapon_knife")
                fm_set_user_health(id, get_pcvar_num(antifurienspawnhp))
            }
        }
    }
}

public Player_PreThink(id) {
    if(is_user_connected(id)) {
        if(get_user_team(id) == TEAM_FURIEN) {
            if(pev(id, pev_gravity) > FURIEN_GRAVITY && pev(id, pev_gravity) > 0.1)
                set_pev(id, pev_gravity, FURIEN_GRAVITY)
        
            if(pev(id, pev_maxspeed) < FURIEN_SPEED && pev(id, pev_maxspeed) > 1.0) {
                set_pev(id, pev_maxspeed, FURIEN_SPEED)
                set_user_footsteps(id, 1)
            }
        }
    }
}

public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set) {
    if(is_user_connected(ent) && is_user_connected(host) && is_user_alive(ent)) {
        if(is_user_alive(host) && get_user_team(ent) == 1 && get_user_team(host) == 1 
        || !is_user_alive(host) && get_user_team(ent) == 1 && pev(host, pev_iuser2) == ent
        || get_user_team(ent) == 1 && pev(ent, pev_maxspeed) <= 1.0) {
            set_es(es, ES_RenderFx, kRenderFxNone);
            set_es(es, ES_RenderMode, kRenderTransTexture);
            set_es(es, ES_RenderAmt, 255);
        }
        else if(get_user_team(ent) == 1) {
            set_es(es, ES_RenderFx, kRenderFxNone);
            set_es(es, ES_RenderMode, kRenderTransTexture);
            static Float:Origin[3]
            pev(ent, pev_origin, Origin)
            
            if(get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && fm_get_speed(ent) <= 5 || get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && Origin[0] == Wallorigin[ent][0] && Origin[1] == Wallorigin[ent][1] && Origin[2] == Wallorigin[ent][2])
                set_es(es, ES_RenderAmt, 0);
            else
                set_es(es, ES_RenderAmt, 255);
        }
    }
}

public GroundWeapon_Touch(iWeapon, id)
{
    if( IsPlayer(id) )
    {
        if( !g_iPickUp )
        {
            remove_entity(iWeapon)
            return HAM_SUPERCEDE
        }

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

        new iTeam = __get_user_team(id)
        if(    ( iTeam == -1 )
        ||    (iTeam == Furien && g_iPickUp != 1)
        ||    (iTeam == AntiFurien && g_iPickUp != 2)    )
        {
            return HAM_SUPERCEDE
        }
    }
    return HAM_IGNORED
}

public CWeaponBox_Touch(iWeaponBox, id)
{
    if( IsPlayer(id) )
    {
        if( !is_user_alive(id) )
        {
            return HAM_SUPERCEDE
        }

        if( IsWeaponBoxC4(iWeaponBox) )
        {
            return HAM_IGNORED
        }

        if( !g_iPickUp )
        {
            remove_entity(iWeaponBox)
            return HAM_SUPERCEDE
        }

        new iTeam = __get_user_team(id)
        if(    ( iTeam == -1 )
        ||    (iTeam == Furien && g_iPickUp != 1)
        ||    (iTeam == AntiFurien && g_iPickUp != 2)    )
        {
            return HAM_SUPERCEDE
        }
    }
    return HAM_IGNORED
}

public FWD_GameDescription() { 
    static GameName[32]
    get_pcvar_string(cvar_gamedescription, GameName, 31)
    
    forward_return(FMV_STRING, GameName)
    
    return FMRES_SUPERCEDE
}

public FWD_ParachutePreThink(id) {
    if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
        new Float:FallSpeed = -50.0;
        new Float:Frame;
        
        new Button = pev(id, pev_button);
        new OldButton = pev(id, pev_oldbuttons);
        new Flags = pev(id, pev_flags);
        
        if(ParaENT[id] > 0 &&(Flags & FL_ONGROUND)) {
            
            if(pev(ParaENT[id],pev_sequence) != 2) {
                set_pev(ParaENT[id], pev_sequence, 2);
                set_pev(ParaENT[id], pev_gaitsequence, 1);
                set_pev(ParaENT[id], pev_frame, 0.0);
                set_pev(ParaENT[id], pev_fuser1, 0.0);
                set_pev(ParaENT[id], pev_animtime, 0.0);
                return;
            }
            
            pev(ParaENT[id],pev_fuser1, Frame);
            Frame += 2.0;
            set_pev(ParaENT[id],pev_fuser1,Frame);
            set_pev(ParaENT[id],pev_frame,Frame);
            
            if(Frame > 254.0) {
                engfunc(EngFunc_RemoveEntity, ParaENT[id]);
                ParaENT[id] = 0;
            }
            else {
                engfunc(EngFunc_RemoveEntity, ParaENT[id]);
                ParaENT[id] = 0;
            }
            return;
        }
        
        if(Button & IN_USE) {
            new Float:Velocity[3];
            pev(id, pev_velocity, Velocity);
            
            if(Velocity[2] < 0.0) {
                if(ParaENT[id] <= 0) {
                    ParaENT[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
                    
                    if(ParaENT[id] > 0) {
                        set_pev(ParaENT[id],pev_classname, PARACHUTE_CLASS);
                        set_pev(ParaENT[id], pev_aiment, id);
                        set_pev(ParaENT[id], pev_owner, id);
                        set_pev(ParaENT[id], pev_movetype, MOVETYPE_FLY);
                        set_pev(ParaENT[id], pev_sequence, 0);
                        set_pev(ParaENT[id], pev_gaitsequence, 1);
                        set_pev(ParaENT[id], pev_frame, 0.0);
                        set_pev(ParaENT[id], pev_fuser1, 0.0);
                    }
                }
                if(ParaENT[id] > 0) {
                    set_pev(id, pev_sequence, 3);
                    set_pev(id, pev_gaitsequence, 1);
                    set_pev(id, pev_frame, 1.0);
                    set_pev(id, pev_framerate, 1.0);
                    
                    Velocity[2] = (Velocity[2] + 40.0 < FallSpeed) ? Velocity[2] + 40.0 : FallSpeed;
                    set_pev(id, pev_velocity, Velocity);
                    
                    if(pev(ParaENT[id],pev_sequence) == 0) {
                        pev(ParaENT[id],pev_fuser1, Frame);
                        Frame += 1.0;
                        set_pev(ParaENT[id],pev_fuser1,Frame);
                        set_pev(ParaENT[id],pev_frame,Frame);
                        
                        if(Frame > 100.0) {
                            set_pev(ParaENT[id], pev_animtime, 0.0);
                            set_pev(ParaENT[id], pev_framerate, 0.4);
                            set_pev(ParaENT[id], pev_sequence, 1);
                            set_pev(ParaENT[id], pev_gaitsequence, 1);
                            set_pev(ParaENT[id], pev_frame, 0.0);
                            set_pev(ParaENT[id], pev_fuser1, 0.0);
                        }
                    }
                }
            }
            
            else if(ParaENT[id] > 0) {
                engfunc(EngFunc_RemoveEntity, ParaENT[id]);
                ParaENT[id] = 0;
            }
        }
        
        else if((OldButton & IN_USE) && ParaENT[id] > 0) {
            engfunc(EngFunc_RemoveEntity, ParaENT[id]);
            ParaENT[id] = 0;
        }
    }
}

public EVENT_TeamSwap() {
    new iPlayers[32],  iNum;
    get_players(iPlayers, iNum, "ch");
    
    if(iNum) {
        new  id;
        for(--iNum; iNum >= 0; iNum--) {
            id  =  iPlayers[iNum];
            BeginDelayedTeamChange(id);
        }
    }
}

public BeginDelayedTeamChange(id) {
    switch(id) { 
        case  1..6:  set_task(0.1, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
        case  7..13:  set_task(0.2, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
        case  14..20:  set_task(0.3, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
        case  21..26:  set_task(0.4, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
        case  27..32:  set_task(0.5, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
    } 
}

public ChangeUserTeamWithDelay(id) {
    id  -=  SWITCH_TASK;
    if(!is_user_connected(id))  return 1;
    
    switch(cs_get_user_team(id)) {
        case  CS_TEAM_T:cs_set_user_team(id, CS_TEAM_CT);
        case  CS_TEAM_CT:cs_set_user_team(id, CS_TEAM_T);    
    }
    return 0;
}

public Register_BlockBuy() {
    register_clcmd("buy", "CMDCheckAndBlockBuy")
    register_clcmd("Buy", "CMDCheckAndBlockBuy")
    register_clcmd("BUY", "CMDCheckAndBlockBuy")
    register_clcmd("bUy", "CMDCheckAndBlockBuy")
    register_clcmd("buY", "CMDCheckAndBlockBuy")
    register_clcmd("jointeam", "CMD_BlockJoinTeam")
    register_clcmd("jointeam 1", "CMD_BlockJoinTeam")
    register_clcmd("jointeam 2", "CMD_BlockJoinTeam")
    register_clcmd("jointeam 3", "CMD_BlockJoinTeam")
    register_clcmd("chooseteam", "CMD_BlockChooseTeam")
}

public CMDCheckAndBlockBuy(id) {
    console_print(id, "*** Nu ai voie sa foloseti BUY ! ***")
    return PLUGIN_HANDLED_MAIN
}

public CMD_BlockJoinTeam(id) {
    console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
    return 1;
}

public CMD_BlockChooseTeam(id) {
    console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
    return 1;
} [/code]
Where Cs had no value, amxx, sometimes, had its price...
steam | Afiseaza codul
Image
Image
User avatar
Challenger.
Fost moderator
Fost moderator
Posts: 2530
Joined: 07 Dec 2014, 14:32
Detinator Steam: Da
Reputatie: Fost Super Moderator
Nume anterior: whisTle
Puncte: 1.7 / 3
Fond eXtream: 0
Contact:

02 May 2015, 19:43

iNdio wrote:
furien | Afiseaza codul
[code=php]
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <fun>
#include "furien.inc"

#define m_rgpPlayerItems_wpnbx_Slot5    39
#define IsPlayer(%1)    ( FIRST_PLAYER_ID <= %1 <= g_iMaxPlayers )
#define IsWeaponBoxC4(%1)    ( get_pdata_cbase(%1, m_rgpPlayerItems_wpnbx_Slot5, XO_WEAPONBOX) > 0 )
#define PLUGIN "Furien Mod"
#define VERSION "1.1"
#define AUTHOR "DaNNe."

#define XO_WEAPONBOX                4

#define FURIEN_GRAVITY        0.4
#define FURIEN_SPEED        700.0

#define TEAM_FURIEN 1
#define TEAM_ANTIFURIEN 2

new g_iPickUp = 2
new g_iMaxPlayers

#define        SWITCH_TASK        112233
#define FIRST_PLAYER_ID    1
new bool:MakeVisible[33], Float:Wallorigin[33][3];

// ----- | Parachute | ------ //
#define PARACHUTE_CLASS        "Parachute"
new ParaENT[33];
new CsTeams:g_iFuriensTeam = CS_TEAM_T

new cvar_gamedescription, furienspawnhp, antifurienspawnhp

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    cvar_gamedescription = register_cvar("furien_gamename", "Furien CSO Mod")
    antifurienspawnhp = register_cvar("antifurien_spawnhp", "135")
    furienspawnhp = register_cvar("furien_spawnhp", "100")
    
    register_forward(FM_PlayerPreThink, "Player_PreThink");
    register_forward(FM_AddToFullPack, "FWD_AddToFullPack", 1);    
    register_forward(FM_PlayerPreThink, "FWD_ParachutePreThink");
    register_forward(FM_GetGameDescription, "FWD_GameDescription")    
    
    RegisterHam(Ham_Touch, "weaponbox", "CWeaponBox_Touch")
    RegisterHam(Ham_Touch, "armoury_entity", "GroundWeapon_Touch")
    RegisterHam(Ham_Touch, "weapon_shield", "GroundWeapon_Touch")
    RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1);
    
    register_event("SendAudio", "EVENT_TeamSwap", "a", "1=0", "2=%!MRAD_ctwin");
    //Register_BlockBuy()
    g_iMaxPlayers = get_maxplayers()
}
public plugin_natives()
{
    register_library("furien")
    register_native("furien_get_user_team", "fr_get_user_team")
}
public fr_get_user_team(/*iPlugin, iParams*/)
{
    return __get_user_team( get_param(1) )
}
__get_user_team(id)
{
    new CsTeams:iTeam = cs_get_user_team(id)
    if( CS_TEAM_T <= iTeam <= CS_TEAM_CT )
    {
        if( iTeam == g_iFuriensTeam )
        {
            return Furien
        }
        return AntiFurien
    }
    return -1
}

public plugin_precache() {
    remove_entity_name("info_map_parameters");
    remove_entity_name("func_buyzone");
    new Entity = create_entity("info_map_parameters");
        
    DispatchKeyValue(Entity, "buying", "3");
    DispatchSpawn(Entity);
}

public HAM_Spawn_Post(id) {
    if(is_user_alive(id) && !is_user_bot(id)) {
        strip_user_weapons(id)
        fm_give_item(id, "weapon_knife")
        switch(get_user_team(id)) {
            case TEAM_FURIEN: {
                fm_give_item(id, "weapon_hegrenade")
                fm_give_item(id, "weapon_flashbang")
                set_user_footsteps(id, 0)
                //fm_give_item(id, "weapon_knife")
                fm_set_user_health(id, get_pcvar_num(furienspawnhp))
            }
            case TEAM_ANTIFURIEN: {
                fm_give_item(id, "weapon_hegrenade")
                fm_give_item(id, "weapon_flashbang")
                set_user_footsteps(id, 0)
                fm_give_item(id,"weapon_usp")
                cs_set_user_bpammo(id,CSW_USP,250)
                //fm_give_item(id, "weapon_knife")
                fm_set_user_health(id, get_pcvar_num(antifurienspawnhp))
            }
        }
    }
}

public Player_PreThink(id) {
    if(is_user_connected(id)) {
        if(get_user_team(id) == TEAM_FURIEN) {
            if(pev(id, pev_gravity) > FURIEN_GRAVITY && pev(id, pev_gravity) > 0.1)
                set_pev(id, pev_gravity, FURIEN_GRAVITY)
        
            if(pev(id, pev_maxspeed) < FURIEN_SPEED && pev(id, pev_maxspeed) > 1.0) {
                set_pev(id, pev_maxspeed, FURIEN_SPEED)
                set_user_footsteps(id, 1)
            }
        }
    }
}

public FWD_AddToFullPack(es, e, ent, host, host_flags, player, p_set) {
    if(is_user_connected(ent) && is_user_connected(host) && is_user_alive(ent)) {
        if(is_user_alive(host) && get_user_team(ent) == 1 && get_user_team(host) == 1 
        || !is_user_alive(host) && get_user_team(ent) == 1 && pev(host, pev_iuser2) == ent
        || get_user_team(ent) == 1 && pev(ent, pev_maxspeed) <= 1.0) {
            set_es(es, ES_RenderFx, kRenderFxNone);
            set_es(es, ES_RenderMode, kRenderTransTexture);
            set_es(es, ES_RenderAmt, 255);
        }
        else if(get_user_team(ent) == 1) {
            set_es(es, ES_RenderFx, kRenderFxNone);
            set_es(es, ES_RenderMode, kRenderTransTexture);
            static Float:Origin[3]
            pev(ent, pev_origin, Origin)
            
            if(get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && fm_get_speed(ent) <= 5 || get_user_weapon(ent) == CSW_KNIFE && !MakeVisible[ent] && Origin[0] == Wallorigin[ent][0] && Origin[1] == Wallorigin[ent][1] && Origin[2] == Wallorigin[ent][2])
                set_es(es, ES_RenderAmt, 0);
            else
                set_es(es, ES_RenderAmt, 255);
        }
    }
}

public GroundWeapon_Touch(iWeapon, id)
{
    if( IsPlayer(id) )
    {
        if( !g_iPickUp )
        {
            remove_entity(iWeapon)
            return HAM_SUPERCEDE
        }

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

        new iTeam = __get_user_team(id)
        if(    ( iTeam == -1 )
        ||    (iTeam == Furien && g_iPickUp != 1)
        ||    (iTeam == AntiFurien && g_iPickUp != 2)    )
        {
            return HAM_SUPERCEDE
        }
    }
    return HAM_IGNORED
}

public CWeaponBox_Touch(iWeaponBox, id)
{
    if( IsPlayer(id) )
    {
        if( !is_user_alive(id) )
        {
            return HAM_SUPERCEDE
        }

        if( IsWeaponBoxC4(iWeaponBox) )
        {
            return HAM_IGNORED
        }

        if( !g_iPickUp )
        {
            remove_entity(iWeaponBox)
            return HAM_SUPERCEDE
        }

        new iTeam = __get_user_team(id)
        if(    ( iTeam == -1 )
        ||    (iTeam == Furien && g_iPickUp != 1)
        ||    (iTeam == AntiFurien && g_iPickUp != 2)    )
        {
            return HAM_SUPERCEDE
        }
    }
    return HAM_IGNORED
}

public FWD_GameDescription() { 
    static GameName[32]
    get_pcvar_string(cvar_gamedescription, GameName, 31)
    
    forward_return(FMV_STRING, GameName)
    
    return FMRES_SUPERCEDE
}

public FWD_ParachutePreThink(id) {
    if(is_user_alive(id) && get_user_team(id) == TEAM_ANTIFURIEN) {
        new Float:FallSpeed = -50.0;
        new Float:Frame;
        
        new Button = pev(id, pev_button);
        new OldButton = pev(id, pev_oldbuttons);
        new Flags = pev(id, pev_flags);
        
        if(ParaENT[id] > 0 &&(Flags & FL_ONGROUND)) {
            
            if(pev(ParaENT[id],pev_sequence) != 2) {
                set_pev(ParaENT[id], pev_sequence, 2);
                set_pev(ParaENT[id], pev_gaitsequence, 1);
                set_pev(ParaENT[id], pev_frame, 0.0);
                set_pev(ParaENT[id], pev_fuser1, 0.0);
                set_pev(ParaENT[id], pev_animtime, 0.0);
                return;
            }
            
            pev(ParaENT[id],pev_fuser1, Frame);
            Frame += 2.0;
            set_pev(ParaENT[id],pev_fuser1,Frame);
            set_pev(ParaENT[id],pev_frame,Frame);
            
            if(Frame > 254.0) {
                engfunc(EngFunc_RemoveEntity, ParaENT[id]);
                ParaENT[id] = 0;
            }
            else {
                engfunc(EngFunc_RemoveEntity, ParaENT[id]);
                ParaENT[id] = 0;
            }
            return;
        }
        
        if(Button & IN_USE) {
            new Float:Velocity[3];
            pev(id, pev_velocity, Velocity);
            
            if(Velocity[2] < 0.0) {
                if(ParaENT[id] <= 0) {
                    ParaENT[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
                    
                    if(ParaENT[id] > 0) {
                        set_pev(ParaENT[id],pev_classname, PARACHUTE_CLASS);
                        set_pev(ParaENT[id], pev_aiment, id);
                        set_pev(ParaENT[id], pev_owner, id);
                        set_pev(ParaENT[id], pev_movetype, MOVETYPE_FLY);
                        set_pev(ParaENT[id], pev_sequence, 0);
                        set_pev(ParaENT[id], pev_gaitsequence, 1);
                        set_pev(ParaENT[id], pev_frame, 0.0);
                        set_pev(ParaENT[id], pev_fuser1, 0.0);
                    }
                }
                if(ParaENT[id] > 0) {
                    set_pev(id, pev_sequence, 3);
                    set_pev(id, pev_gaitsequence, 1);
                    set_pev(id, pev_frame, 1.0);
                    set_pev(id, pev_framerate, 1.0);
                    
                    Velocity[2] = (Velocity[2] + 40.0 < FallSpeed) ? Velocity[2] + 40.0 : FallSpeed;
                    set_pev(id, pev_velocity, Velocity);
                    
                    if(pev(ParaENT[id],pev_sequence) == 0) {
                        pev(ParaENT[id],pev_fuser1, Frame);
                        Frame += 1.0;
                        set_pev(ParaENT[id],pev_fuser1,Frame);
                        set_pev(ParaENT[id],pev_frame,Frame);
                        
                        if(Frame > 100.0) {
                            set_pev(ParaENT[id], pev_animtime, 0.0);
                            set_pev(ParaENT[id], pev_framerate, 0.4);
                            set_pev(ParaENT[id], pev_sequence, 1);
                            set_pev(ParaENT[id], pev_gaitsequence, 1);
                            set_pev(ParaENT[id], pev_frame, 0.0);
                            set_pev(ParaENT[id], pev_fuser1, 0.0);
                        }
                    }
                }
            }
            
            else if(ParaENT[id] > 0) {
                engfunc(EngFunc_RemoveEntity, ParaENT[id]);
                ParaENT[id] = 0;
            }
        }
        
        else if((OldButton & IN_USE) && ParaENT[id] > 0) {
            engfunc(EngFunc_RemoveEntity, ParaENT[id]);
            ParaENT[id] = 0;
        }
    }
}

public EVENT_TeamSwap() {
    new iPlayers[32],  iNum;
    get_players(iPlayers, iNum, "ch");
    
    if(iNum) {
        new  id;
        for(--iNum; iNum >= 0; iNum--) {
            id  =  iPlayers[iNum];
            BeginDelayedTeamChange(id);
        }
    }
}

public BeginDelayedTeamChange(id) {
    switch(id) { 
        case  1..6:  set_task(0.1, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
        case  7..13:  set_task(0.2, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
        case  14..20:  set_task(0.3, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
        case  21..26:  set_task(0.4, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
        case  27..32:  set_task(0.5, "ChangeUserTeamWithDelay", id + SWITCH_TASK); 
    } 
}

public ChangeUserTeamWithDelay(id) {
    id  -=  SWITCH_TASK;
    if(!is_user_connected(id))  return 1;
    
    switch(cs_get_user_team(id)) {
        case  CS_TEAM_T:cs_set_user_team(id, CS_TEAM_CT);
        case  CS_TEAM_CT:cs_set_user_team(id, CS_TEAM_T);    
    }
    return 0;
}

public Register_BlockBuy() {
    register_clcmd("buy", "CMDCheckAndBlockBuy")
    register_clcmd("Buy", "CMDCheckAndBlockBuy")
    register_clcmd("BUY", "CMDCheckAndBlockBuy")
    register_clcmd("bUy", "CMDCheckAndBlockBuy")
    register_clcmd("buY", "CMDCheckAndBlockBuy")
    register_clcmd("jointeam", "CMD_BlockJoinTeam")
    register_clcmd("jointeam 1", "CMD_BlockJoinTeam")
    register_clcmd("jointeam 2", "CMD_BlockJoinTeam")
    register_clcmd("jointeam 3", "CMD_BlockJoinTeam")
    register_clcmd("chooseteam", "CMD_BlockChooseTeam")
}

public CMDCheckAndBlockBuy(id) {
    console_print(id, "*** Nu ai voie sa foloseti BUY ! ***")
    return PLUGIN_HANDLED_MAIN
}

public CMD_BlockJoinTeam(id) {
    console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
    return 1;
}

public CMD_BlockChooseTeam(id) {
    console_print(id, "*** Nu ai voie sa foloseti JoinTeam ! ***")
    return 1;
}[/code]
Tot asa face :(
NU sunt intermediar.

Dacă ai nevoie de ajutor pe forum dă-mi un PM şi rezolvăm.

REGULAMENT FORUM

RECLAMAȚII MODERATORI

RECLAMAȚII PM
Activitate scăzută
User avatar
Jorj
Fost moderator
Fost moderator
Posts: 3494
Joined: 13 Aug 2013, 18:10
Detinator Steam: Da
Detinator server CS: Furien.LsZ.Ro
SteamID: clic_lsz
Reputatie: Fost eXtream Mod
Fost Membru Club eXtreamCS (patru luni)
Nume anterior: Clic
Location: Piatra Neamt
Has thanked: 1 time
Been thanked: 20 times
Contact:

04 May 2015, 07:11

Pune pluginul autojoin team.
Intermediez tranzactii cand am chef si timp ! :)

Image
User avatar
Challenger.
Fost moderator
Fost moderator
Posts: 2530
Joined: 07 Dec 2014, 14:32
Detinator Steam: Da
Reputatie: Fost Super Moderator
Nume anterior: whisTle
Puncte: 1.7 / 3
Fond eXtream: 0
Contact:

04 May 2015, 19:46

Clic wrote:Pune pluginul autojoin team.
Rezolvat.
T/C !
Mersi !
NU sunt intermediar.

Dacă ai nevoie de ajutor pe forum dă-mi un PM şi rezolvăm.

REGULAMENT FORUM

RECLAMAȚII MODERATORI

RECLAMAȚII PM
Activitate scăzută
Post Reply

Return to “Probleme la servere dedicate de Counter-Strike”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 123 guests