Page 1 of 1

Cerere plugin mapnames

Posted: 07 Jan 2019, 17:48
by StayAlive
Plugin Cerut: amx_mapnames.sma
Descriere (adica ce face el mai exact): salut doresc un plugin amx_mapnames.sma unde sa fie un fisier ini exemplu mapnames.ini in configs
si in mapnames.ini sa fie urmatoarele harti 35hp_2 cs_deagle5 he_glass ca sa fie meniu dezactivat vip_guns_menu 0, vip_items_round "" ,mp_freezetime 0
pentru ca nu tot timpu este fondatori on ca sa le dezactiveze aceste meniuri
Serverul ruleaza (HLDS/ReHLDS): este server linux hostat de la tni
Versiune AMX Mod X: 1.8.3
Modul Serverului: clasic

Re: Cerere plugin mapnames

Posted: 07 Jan 2019, 18:22
by levin
pentru dezactivarea vip-ului pe anumite mape,trebuie editat el

Re: Cerere plugin mapnames

Posted: 07 Jan 2019, 18:48
by StayAlive
meniu se dezactiveaza doar pe mape awp
dar eu doresc ca sa fie un fisier ini ex mapnames.ini ca si nu compilez tot timpu daca aduag o harta nou si sa fie ce am scris la cerinte setrile respetive
se poate face cu server_cmd dar am nevoie de ajutor ca sa faca setarile serveru autoat la mapele respective

Re: Cerere plugin mapnames

Posted: 07 Jan 2019, 18:54
by LondoN eXtream
| Afiseaza codul
#include < amxmodx >

new g_MapNames [ ] [ ] =
{
	"35hp_2",
	"cs_deagle5",
	"he_glass"
};

public plugin_init ( )
{
	register_plugin ( "STOP", "1.0", "LondoN eXtream" );

	new Map [ 32 ];
	get_mapname ( Map, charsmax ( Map ) );

	for ( new i = 0; i < sizeof g_MapNames; i++ )
	{
		if ( equal ( Map, g_MapNames [ i ] ) )
		{
			set_cvar_string ( "vip_guns_menu", "0" );
			set_cvar_string ( "vip_items_round", "" );
			set_cvar_string ( "mp_freezetime", "0" );
		}
	}
}

Re: Cerere plugin mapnames

Posted: 07 Jan 2019, 19:15
by StayAlive
pot face o modificare te rog sa fie mapnames.ini in addons/amxmodx/configs/mapnames.ini
sa citeasca hartile de acolo ca sa nu mai compilez de exemplu pe viitor cand adaug o harta noua

Re: Cerere plugin mapnames

Posted: 07 Jan 2019, 19:54
by levin
| Afiseaza codul
#include <amxmodx>
	#include <amxmisc>

	#pragma tabsize 0

	public plugin_cfg()
	{
		new filename[256],mapname[85]
		get_configsdir(filename,255)
		format(filename,255,"%s/mapnames.ini",filename)
		if(!file_exists(filename))	write_file(filename,"")
		get_mapname(mapname,84)
		new filepointer = fopen(filename,"rt")

		if(filepointer)
		{
			new readdata[128],parsedmaps[85]
			while(fgets(filepointer,readdata,127))
			{
				if(!readdata[0]||readdata[0]==';')	continue

				trim(readdata)
				parse(readdata,parsedmaps,84)

				if(equali(mapname,parsedmaps))
				{
					set_cvar_string ( "vip_guns_menu", "0" );
					set_cvar_string ( "vip_items_round", "" );
					set_cvar_string ( "mp_freezetime", "0" );

					break
				}
			}
			fclose(filepointer)
		}
	}

Re: Cerere plugin mapnames

Posted: 07 Jan 2019, 20:10
by StayAlive
pluginu este bun dar acum da arma direct fara sa mai apara meniul din runda 2
stai ca plun sursa eventual trebuie factu in sursa de la vip un cvar ca si la vip_guns_menu 0
sursă | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta_util>
#include <hamsandwich>
#include <engine>

#define Keysrod (1<<0)|(1<<1)|(1<<9)
#define ITEM_HE (1<<0) // "a" 
#define ITEM_FS (1<<1) // "b" 
#define ITEM_SG (1<<2) // "c" 
#define ITEM_DG (1<<3) // "d" 
#define ITEM_VH (1<<4) // "e"
#define ITEM_DF (1<<5) // "f"
#define ITEM_NV (1<<6) // "g"

#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD ( 1 << 0 )
#define SCOREATTRIB_BOMB ( 1 << 1 )
#define SCOREATTRIB_VIP ( 1 << 2 )


new jumpnum[33] = 0
new bool:dojump[33] = false
new hk_File4[ 128 ];
new hk_VipsList[ 128 ][ 32 ], hk_TotalLines;
new hk_IsUserVip[ 33 ];
new hk_viplist[ ] = "vips_list.ini";
new hk_Folder[ ] = "Vip";
new hk_cfg[ ] = "vip-config";
new hk_File[ 128 ];
new hk_File1[ 128 ];
new g_type, g_hudmsg
new vip_hud
new maxplayers
new mpd, mkb, mhb
new health_add
new health_hs_add
new health_max
new hk_Killer
new hk_KillerHp
new hk_HpAdd
new hk_HpMax
new jumps, items
new hk_iRoundCount
new bool:hk_IsRestarting
new gun_menu

enum
{
Primary = 1
, Secondary
, Knife
, Grenades
, C4
};

public plugin_init() 
{
register_plugin("Vip", "2.0", "Hasky")

register_concmd("say /vips", "showAdmin", ADMIN_ALL, "")
register_concmd("amx_addvips", "addvips", ADMIN_RCON, "<Nume sau SteamID>")
register_concmd("amx_vips", "vips", ADMIN_RCON, "Lista Vip-urilor")

RegisterHam ( Ham_Spawn, "player", "Hook_PlayerSpawn", 1 )
register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("DeathMsg", "hook_death", "a", "1>0")
register_event("Damage","Damage","b")
register_event("DeathMsg","death_msg","a")
register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")
register_event("TextMsg", "Event_TextMsg_Restart", "a", "2&#Game_C", "2&#Game_w")
register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" )

register_cvar("vip_maxjumps","1")
jumps = register_cvar("vip_jumps","1")
vip_hud = register_cvar("vip_hud","1")
g_type = register_cvar("vip_bulletdamage","1")
health_add = register_cvar("vip_hp_kill", "10")
health_hs_add = register_cvar("vip_hp_hs", "25")
health_max = register_cvar("vip_hp_max", "100")
mpd = register_cvar("vip_money_damage","3")
mkb = register_cvar("vip_money_kill","500")
mhb = register_cvar("vip_money_hs","1000")
items = register_cvar("vip_items_round", "abcdefg")
gun_menu = register_cvar("vip_gun_menu","1")
g_hudmsg = CreateHudSyncObj()
maxplayers = get_maxplayers()


}

public plugin_cfg()
{	


new Dir[ 64 ];
get_configsdir(Dir,charsmax(Dir));
formatex ( hk_File, charsmax ( hk_File ), "%s/%s", Dir, hk_Folder );
formatex ( hk_File1, charsmax ( hk_File1 ), "%s/%s.cfg", hk_File, hk_cfg );
if(!dir_exists(hk_File))
mkdir(hk_File);

formatex ( hk_File4, charsmax ( hk_File4 ), "%s/%s", hk_File, hk_viplist );

if (!file_exists(hk_File4))
write_file(hk_File4,"; -->VIP List<--");

new hk_Buffer[ 192 ], hk_Line, hk_Len;
while ( ( hk_Line = read_file ( hk_File4, hk_Line, hk_Buffer, charsmax ( hk_Buffer ), hk_Len ) ) )
{
if ( ! strlen ( hk_Buffer ) || hk_Buffer[ 0 ] == ';' || ( hk_Buffer[ 0 ] == '/' && hk_Buffer[ 1 ] == '/' ) )
continue;

copy ( hk_VipsList[ hk_TotalLines++ ], 32, hk_Buffer );

}	

if(!file_exists(hk_File1))
{
write_file(hk_File1,"// Vip Configuration File")
write_file(hk_File1,"")
write_file(hk_File1,"")
write_file(hk_File1,"// BulletDamage - afiseaza dmg-ul facut unui jucator")
write_file(hk_File1,"// 1 - Activat 0 - Dezactivat")
write_file(hk_File1,"vip_bulletdamage ^"1^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Vips Online")
write_file(hk_File1,"// Arata Vip-urile online in HUD prin scrierea in chat a comenzii /vips")
write_file(hk_File1,"// 1 - Activat 0 - Dezactivat")
write_file(hk_File1,"vip_hud ^"1^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Hp primit pe un kill ")
write_file(hk_File1,"vip_hp_kill ^"10^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Hp primit pe un hs")
write_file(hk_File1,"vip_hp_hs ^"25^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Valoarea maxima a hp-ului pe care o poate avea Vip-ul")
write_file(hk_File1,"vip_hp_max ^"100^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Banii primiti pe un damage")
write_file(hk_File1,"vip_money_damage ^"3^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Banii primiti pe un kill")
write_file(hk_File1,"vip_money_kill ^"500^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Banii primiti pe un hs")
write_file(hk_File1,"vip_money_hs ^"1000^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Guns Menu - afiseaza meniul cu arme")
write_file(hk_File1,"// Pe hartile de tip AWP, acest meniu va fi automat dezactivat")
write_file(hk_File1,"// 1 - Activat 0 - Dezactivat")
write_file(hk_File1,"vip_gun_menu ^"1^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Items per round - primiti diverse obiecte la inceputul fiecarei runde")
write_file(hk_File1,"// a - He Grenade")
write_file(hk_File1,"// b - Flashbang (x2)")
write_file(hk_File1,"// c - Smoke Grenade ")
write_file(hk_File1,"// d - Deagle")
write_file(hk_File1,"// e - Vest + Helm")
write_file(hk_File1,"// f - Defuse Kit (Doar CT)")
write_file(hk_File1,"// g - NightVision")
write_file(hk_File1,"vip_items_round ^"abcdefg^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Jumps - Salturi")
write_file(hk_File1,"// 1 - Activat 0 - Dezactivat")
write_file(hk_File1,"vip_jumps ^"1^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Cate sarituri in plus poate sa faca deodata")
write_file(hk_File1,"vip_maxjumps ^"1^"")
write_file(hk_File1,"")

}

server_cmd("exec %s",hk_File1)
}

public client_putinserver(id)
{

hk_IsUserVip[ id ] = 0;
jumpnum[id] = 0
dojump[id] = false
}

public client_disconnect(id)
{

hk_IsUserVip[ id ] = 0;
jumpnum[id] = 0
dojump[id] = false
}
public addvips(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

new arg[32]	

read_argv(1, arg, 31)

new szLog[256];
formatex(szLog,255,"%s",arg);
write_file(hk_File4,szLog,-1);
console_print(id, "[CS16] Vip-ul a fost adaugat in lista")

return PLUGIN_HANDLED

}
public vips(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

new s_Name[ 32 ], s_AuthID[ 32 ];
get_user_name ( id, s_Name, 31 );
get_user_authid ( id, s_AuthID, 31 );

console_print(id, "===========================")
for ( new i; i < hk_TotalLines; i++ )
{
if ( strcmp ( s_Name, hk_VipsList[ i ] ) || strcmp ( s_AuthID, hk_VipsList[ i ] ) )
console_print(id, " - %s", hk_VipsList[ i ])	


}
console_print(id, "===========================")
return PLUGIN_HANDLED
}


public Event_TextMsg_Restart()
{
hk_IsRestarting = true
}

public Event_HLTV_New_Round()
{
if( hk_IsRestarting )
{
hk_IsRestarting = false
hk_iRoundCount = 0
}
}

public Hook_PlayerSpawn ( const id )
{
if ( ! is_user_alive ( id ) )
return HAM_IGNORED;
if ( ! is_user_vip ( id ) )
{
hk_IsUserVip[ id ] = 0;
return HAM_IGNORED;
}

hk_IsUserVip[ id ] = 1;
hk_iRoundCount++
new map[32];
get_mapname(map,31);

if(equali(map, "awp_", 3))
return HAM_IGNORED;

if (get_pcvar_num(gun_menu) == 1)
if(hk_iRoundCount>=3)
Showrod(id);

set_task(0.3, "giveitems", id)
return HAM_IGNORED;
}

public on_damage(id)
{
if(get_pcvar_num(g_type))
{
static attacker; attacker = get_user_attacker(id)
static damage; damage = read_data(2)	

if ( is_user_vip ( attacker ) )
{
hk_IsUserVip[ id ] = 1;

if(is_user_connected(attacker))
{
if(fm_is_ent_visible(attacker,id))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_hudmsg, "%i^n", damage)	
}


}
}else hk_IsUserVip[ id ] = 0;
}
}

public Damage(id)
{
new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)

if ( is_user_vip ( id ) )
{
hk_IsUserVip[ id ] = 1;
new money = read_data(2) * get_pcvar_num(mpd)
if(hitpoint==1) money += get_pcvar_num(mhb)
cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
}else hk_IsUserVip[ id ] = 0;
}

public death_msg()
{
if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) 
cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
}

public hook_death()
{
hk_Killer = read_data(1)

if ( (read_data(3) == 1) && (read_data(5) == 0) )
{
hk_HpAdd = get_pcvar_num (health_hs_add)
}
else
hk_HpAdd = get_pcvar_num (health_add)

hk_HpMax = get_pcvar_num (health_max)


if ( ! is_user_vip ( hk_Killer ) )
{
hk_IsUserVip[ hk_Killer ] = 0;
return;
}
hk_IsUserVip[ hk_Killer ] = 1;

hk_KillerHp = get_user_health(hk_Killer)
hk_KillerHp += hk_HpAdd

if (hk_KillerHp > hk_HpMax) hk_KillerHp = hk_HpMax
set_user_health(hk_Killer, hk_KillerHp)

set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(hk_Killer, "Healed +%d hp", hk_HpAdd)

}

public showAdmin(id)
{
if(get_pcvar_num(vip_hud) == 1)
{


new num, iLen, admin
static pl[32], name[32], szBuff[2048]

get_players(pl, num, "c")

for(new i = 0; i < num; i++)
{
if ( is_user_vip ( pl ) )
{
hk_IsUserVip[ pl ] = 1;
get_user_name(pl, name, 31)
iLen += format(szBuff[iLen], 2048 - iLen, "%d. %s^n", admin + 1, name)
admin++
}

}


set_hudmessage(0, 255, 0, 0.02, 0.2, 0, 6.0, 7.0 )
show_hudmessage(id, " %s online:^n%s", admin > 1 ? "Vips" : "Vips", szBuff)

arrayset(szBuff, 0, 2048)
}
return PLUGIN_HANDLED
}

public client_PreThink(id)
{
if(!is_user_alive(id)) return PLUGIN_CONTINUE
if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE

if ( ! is_user_vip ( id ) )
{
hk_IsUserVip[ id ] = 0;
return PLUGIN_CONTINUE
}


hk_IsUserVip[ id ] = 1;
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_cvar_num("vip_maxjumps"))
{
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)) return PLUGIN_CONTINUE
if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE

if ( ! is_user_vip ( id ) )
{
hk_IsUserVip[ id ] = 0;
return PLUGIN_CONTINUE
}


hk_IsUserVip[ id ] = 1;
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
}

return PLUGIN_CONTINUE
}

public Showrod(id) 
{
show_menu(id, Keysrod, "*Guns Menu^n\w1. *M4a1^n\w2. *AK47^n0. Exit^n", -1, "rod")
}

public Pressedrod(id, key) 
{

switch (key) {
case 0: { 
StripWeapons(id, Primary)
give_item(id,"weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90 );
}

case 1: { 
StripWeapons(id, Primary)
give_item(id,"weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90);
}


case 9: { 
}
}
return PLUGIN_CONTINUE
}

public get_item_flags() 
{ 
new sFlags[24] 
get_pcvar_string(items,sFlags,23) 
return read_flags(sFlags) 
} 

public giveitems(id)
{
new iFlags = get_item_flags() 
new CsTeams:userTeam = cs_get_user_team(id)

if (iFlags&ITEM_HE)
fm_give_item(id,"weapon_hegrenade") 


if(iFlags&ITEM_FS)
{
fm_give_item(id,"weapon_flashbang") 
fm_give_item(id,"weapon_flashbang") 
}

if(iFlags&ITEM_SG)
fm_give_item(id,"weapon_smokegrenade") 


if(iFlags&ITEM_DG)
{
StripWeapons(id, Secondary);
fm_give_item(id,"weapon_deagle") 
cs_set_user_bpammo(id, CSW_DEAGLE, 35 );
}

if(iFlags&ITEM_VH)
fm_give_item(id,"item_assaultsuit")

if(userTeam == CS_TEAM_CT && iFlags&ITEM_DF)
fm_give_item(id,"item_thighpack")

if(iFlags&ITEM_NV)
cs_set_user_nvg(id, 1)


}

stock is_user_vip ( id )
{
new s_Name[ 32 ], s_AuthID[ 32 ];
get_user_name ( id, s_Name, 31 );
get_user_authid ( id, s_AuthID, 31 );

for ( new i; i < hk_TotalLines; i++ )
{
if ( ! strcmp ( s_Name, hk_VipsList[ i ] ) )
return 1;
if ( ! strcmp ( s_AuthID, hk_VipsList[ i ] ) )
return 1;
}

return 0;

}

stock StripWeapons(id, Type, bool: bSwitchIfActive = true)
{
new iReturn;

if(is_user_alive(id))
{
new iEntity, iWeapon;
while((iWeapon = GetWeaponFromSlot(id, Type, iEntity)) > 0)
iReturn = ham_strip_user_weapon(id, iWeapon, Type, bSwitchIfActive);
}

return iReturn;
}

stock GetWeaponFromSlot( id , iSlot , &iEntity )
{
if ( !( 1 <= iSlot <= 5 ) )
return 0;

iEntity = 0;
const m_rgpPlayerItems_Slot0 = 367;
const m_iId = 43;
const XO_WEAPONS = 4;
const XO_PLAYER = 5;

iEntity = get_pdata_cbase( id , m_rgpPlayerItems_Slot0 + iSlot , XO_PLAYER );

return ( iEntity > 0 ) ? get_pdata_int( iEntity , m_iId , XO_WEAPONS ) : 0;
} 

stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
new iWeapon
if( !iSlot )
{
static const iWeaponsSlots[] = {
-1,
2, //CSW_P228
-1,
1, //CSW_SCOUT
4, //CSW_HEGRENADE
1, //CSW_XM1014
5, //CSW_C4
1, //CSW_MAC10
1, //CSW_AUG
4, //CSW_SMOKEGRENADE
2, //CSW_ELITE
2, //CSW_FIVESEVEN
1, //CSW_UMP45
1, //CSW_SG550
1, //CSW_GALIL
1, //CSW_FAMAS
2, //CSW_USP
2, //CSW_GLOCK18
1, //CSW_AWP
1, //CSW_MP5NAVY
1, //CSW_M249
1, //CSW_M3
1, //CSW_M4A1
1, //CSW_TMP
1, //CSW_G3SG1
4, //CSW_FLASHBANG
2, //CSW_DEAGLE
1, //CSW_SG552
1, //CSW_AK47
3, //CSW_KNIFE
1 //CSW_P90
}
iSlot = iWeaponsSlots[iCswId]
}

const XTRA_OFS_PLAYER = 5
const m_rgpPlayerItems_Slot0 = 367

iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER)

const XTRA_OFS_WEAPON = 4
const m_pNext = 42
const m_iId = 43

while( iWeapon > 0 )
{
if( get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId )
{
break
}
iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON)
}

if( iWeapon > 0 )
{
const m_pActiveItem = 373
if( bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon )
{
ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon)
}

if( ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon) )
{
user_has_weapon(id, iCswId, 0)
ExecuteHamB(Ham_Item_Kill, iWeapon)
return 1
}
}

return 0
} 
public MessageScoreAttrib(iMsgID, iDest, iReceiver) 
{
new iPlayer = get_msg_arg_int(1);
if ( ! is_user_vip ( iPlayer ) )
{
hk_IsUserVip[ iPlayer ] = 1;
return PLUGIN_CONTINUE
}


hk_IsUserVip[ iPlayer ] = 0;

CS_TEAM_T:
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
CS_TEAM_CT:
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
return PLUGIN_CONTINUE
}

Re: Cerere plugin mapnames

Posted: 07 Jan 2019, 20:18
by levin
îți setezi valorile default în amxx.cfg

Re: Cerere plugin mapnames

Posted: 07 Jan 2019, 23:48
by YONTU
LondoN eXtream wrote:
| Afiseaza codul
#include < amxmodx >

new g_MapNames [ ] [ ] =
{
	"35hp_2",
	"cs_deagle5",
	"he_glass"
};

public plugin_init ( )
{
	register_plugin ( "STOP", "1.0", "LondoN eXtream" );

	new Map [ 32 ];
	get_mapname ( Map, charsmax ( Map ) );

	for ( new i = 0; i < sizeof g_MapNames; i++ )
	{
		if ( equal ( Map, g_MapNames [ i ] ) )
		{
			set_cvar_string ( "vip_guns_menu", "0" );
			set_cvar_string ( "vip_items_round", "" );
			set_cvar_string ( "mp_freezetime", "0" );
		}
	}
}
Am o intrebare, dc adaugi acele spatii redundante?

Re: Cerere plugin mapnames

Posted: 08 Jan 2019, 11:58
by StayAlive
pluginurile sunt bune dar nu stiu ceva tot nu e in regula ca meniu nu ami apare dar armele le da din spawn
fara sa mai alegi din meniu si freezetime e ok se scoate automat
amx.cfg am pus valorile default

Re: Cerere plugin mapnames

Posted: 08 Jan 2019, 23:20
by aEEk.#
daca dadeai un search ai fi gasit in cod asta:

Code: Select all

if(equali(map, "awp_", 3))
return HAM_IGNORED;
incearca sursa asta:
| Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta_util>
#include <hamsandwich>
#include <engine>

#define Keysrod (1<<0)|(1<<1)|(1<<9)
#define ITEM_HE (1<<0) // "a" 
#define ITEM_FS (1<<1) // "b" 
#define ITEM_SG (1<<2) // "c" 
#define ITEM_DG (1<<3) // "d" 
#define ITEM_VH (1<<4) // "e"
#define ITEM_DF (1<<5) // "f"
#define ITEM_NV (1<<6) // "g"

#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD ( 1 << 0 )
#define SCOREATTRIB_BOMB ( 1 << 1 )
#define SCOREATTRIB_VIP ( 1 << 2 )

new Array:g_Restricted = Invalid_Array;
new bool:g_RestrictedMap=false;

new jumpnum[33] = 0
new bool:dojump[33] = false
new hk_File4[ 128 ];
new hk_VipsList[ 128 ][ 32 ], hk_TotalLines;
new hk_IsUserVip[ 33 ];
new hk_viplist[ ] = "vips_list.ini";
new hk_Folder[ ] = "Vip";
new hk_cfg[ ] = "vip-config";
new hk_File[ 128 ];
new hk_File1[ 128 ];
new g_type, g_hudmsg
new vip_hud
new maxplayers
new mpd, mkb, mhb
new health_add
new health_hs_add
new health_max
new hk_Killer
new hk_KillerHp
new hk_HpAdd
new hk_HpMax
new jumps, items
new hk_iRoundCount
new bool:hk_IsRestarting
new gun_menu

enum
{
Primary = 1
, Secondary
, Knife
, Grenades
, C4
};

public plugin_init() 
{
    register_plugin("Vip", "2.0", "Hasky")

    register_concmd("say /vips", "showAdmin", ADMIN_ALL, "")
    register_concmd("amx_addvips", "addvips", ADMIN_RCON, "<Nume sau SteamID>")
    register_concmd("amx_vips", "vips", ADMIN_RCON, "Lista Vip-urilor")

    RegisterHam ( Ham_Spawn, "player", "Hook_PlayerSpawn", 1 )
    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
    register_event("DeathMsg", "hook_death", "a", "1>0")
    register_event("Damage","Damage","b")
    register_event("DeathMsg","death_msg","a")
    register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")
    register_event("TextMsg", "Event_TextMsg_Restart", "a", "2&#Game_C", "2&#Game_w")
    register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
    register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" )

    register_cvar("vip_maxjumps","1")
    jumps = register_cvar("vip_jumps","1")
    vip_hud = register_cvar("vip_hud","1")
    g_type = register_cvar("vip_bulletdamage","1")
    health_add = register_cvar("vip_hp_kill", "10")
    health_hs_add = register_cvar("vip_hp_hs", "25")
    health_max = register_cvar("vip_hp_max", "100")
    mpd = register_cvar("vip_money_damage","3")
    mkb = register_cvar("vip_money_kill","500")
    mhb = register_cvar("vip_money_hs","1000")
    items = register_cvar("vip_items_round", "abcdefg")
    gun_menu = register_cvar("vip_gun_menu","1")
    g_hudmsg = CreateHudSyncObj()
    maxplayers = get_maxplayers()

static File1, Location[256], ConfigurationFile1sDirectory[128], Line1[64];

    get_localinfo("amxx_configsdir", ConfigurationFile1sDirectory, charsmax(ConfigurationFile1sDirectory));

    formatex(Location, charsmax(Location), "%s/restrict_maps.ini", ConfigurationFile1sDirectory);

	if (!file_exists(Location))
	{
		File1 = fopen(Location, "w+");		
		switch (File1)
		{
			case 0:
			{				
			}			
			default:
			{
				fclose(File1);
			}
		}
	}
	
	File1 = fopen(Location, "r");

	if (!File1)
	{
		log_amx("[VIP] Unable to open ^"%s/restrict_maps^".", ConfigurationFile1sDirectory);
		return;
	}
	
	g_Restricted = ArrayCreate(64);
	
	if (g_Restricted == Invalid_Array)
	{
		set_fail_state("[VIP] Plugin failed to load. (Restricting Maps Possible Bug)");
		return;
	}

    Action_CheckMapName()
}

public Action_CheckMapName()
{
	static Iterator, Thing[32];
	new map_name[32];

	get_mapname(map_name, charsmax(map_name));    

	for(Iterator = 0; Iterator < ArraySize(g_Restricted); Iterator++)
	{
		ArrayGetString(g_Restricted, Iterator, Thing, charsmax(Thing));
		
		if (containi(map_name, Thing) != -1)
		{
			g_RestrictedMap = true;			
		}
	}
}

public plugin_cfg()
{	
new Dir[ 64 ];
get_configsdir(Dir,charsmax(Dir));
formatex ( hk_File, charsmax ( hk_File ), "%s/%s", Dir, hk_Folder );
formatex ( hk_File1, charsmax ( hk_File1 ), "%s/%s.cfg", hk_File, hk_cfg );
if(!dir_exists(hk_File))
mkdir(hk_File);

formatex ( hk_File4, charsmax ( hk_File4 ), "%s/%s", hk_File, hk_viplist );

if (!file_exists(hk_File4))
write_file(hk_File4,"; -->VIP List<--");

new hk_Buffer[ 192 ], hk_Line, hk_Len;
while ( ( hk_Line = read_file ( hk_File4, hk_Line, hk_Buffer, charsmax ( hk_Buffer ), hk_Len ) ) )
{
if ( ! strlen ( hk_Buffer ) || hk_Buffer[ 0 ] == ';' || ( hk_Buffer[ 0 ] == '/' && hk_Buffer[ 1 ] == '/' ) )
continue;

copy ( hk_VipsList[ hk_TotalLines++ ], 32, hk_Buffer );

}	

if(!file_exists(hk_File1))
{
write_file(hk_File1,"// Vip Configuration File")
write_file(hk_File1,"")
write_file(hk_File1,"")
write_file(hk_File1,"// BulletDamage - afiseaza dmg-ul facut unui jucator")
write_file(hk_File1,"// 1 - Activat 0 - Dezactivat")
write_file(hk_File1,"vip_bulletdamage ^"1^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Vips Online")
write_file(hk_File1,"// Arata Vip-urile online in HUD prin scrierea in chat a comenzii /vips")
write_file(hk_File1,"// 1 - Activat 0 - Dezactivat")
write_file(hk_File1,"vip_hud ^"1^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Hp primit pe un kill ")
write_file(hk_File1,"vip_hp_kill ^"10^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Hp primit pe un hs")
write_file(hk_File1,"vip_hp_hs ^"25^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Valoarea maxima a hp-ului pe care o poate avea Vip-ul")
write_file(hk_File1,"vip_hp_max ^"100^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Banii primiti pe un damage")
write_file(hk_File1,"vip_money_damage ^"3^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Banii primiti pe un kill")
write_file(hk_File1,"vip_money_kill ^"500^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Banii primiti pe un hs")
write_file(hk_File1,"vip_money_hs ^"1000^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Guns Menu - afiseaza meniul cu arme")
write_file(hk_File1,"// Pe hartile de tip AWP, acest meniu va fi automat dezactivat")
write_file(hk_File1,"// 1 - Activat 0 - Dezactivat")
write_file(hk_File1,"vip_gun_menu ^"1^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Items per round - primiti diverse obiecte la inceputul fiecarei runde")
write_file(hk_File1,"// a - He Grenade")
write_file(hk_File1,"// b - Flashbang (x2)")
write_file(hk_File1,"// c - Smoke Grenade ")
write_file(hk_File1,"// d - Deagle")
write_file(hk_File1,"// e - Vest + Helm")
write_file(hk_File1,"// f - Defuse Kit (Doar CT)")
write_file(hk_File1,"// g - NightVision")
write_file(hk_File1,"vip_items_round ^"abcdefg^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Jumps - Salturi")
write_file(hk_File1,"// 1 - Activat 0 - Dezactivat")
write_file(hk_File1,"vip_jumps ^"1^"")
write_file(hk_File1,"")
write_file(hk_File1,"// Cate sarituri in plus poate sa faca deodata")
write_file(hk_File1,"vip_maxjumps ^"1^"")
write_file(hk_File1,"")

}

server_cmd("exec %s",hk_File1)
}

public client_putinserver(id)
{

    hk_IsUserVip[ id ] = 0;
    jumpnum[id] = 0
    dojump[id] = false
    }

    public client_disconnect(id)
    {

    hk_IsUserVip[ id ] = 0;
    jumpnum[id] = 0
    dojump[id] = false
}
public addvips(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

new arg[32]	

read_argv(1, arg, 31)

new szLog[256];
formatex(szLog,255,"%s",arg);
write_file(hk_File4,szLog,-1);
console_print(id, "[CS16] Vip-ul a fost adaugat in lista")

return PLUGIN_HANDLED

}
public vips(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

new s_Name[ 32 ], s_AuthID[ 32 ];
get_user_name ( id, s_Name, 31 );
get_user_authid ( id, s_AuthID, 31 );

console_print(id, "===========================")
for ( new i; i < hk_TotalLines; i++ )
{
if ( strcmp ( s_Name, hk_VipsList[ i ] ) || strcmp ( s_AuthID, hk_VipsList[ i ] ) )
console_print(id, " - %s", hk_VipsList[ i ])	


}
console_print(id, "===========================")
return PLUGIN_HANDLED
}


public Event_TextMsg_Restart()
{
hk_IsRestarting = true
}

public Event_HLTV_New_Round()
{
if( hk_IsRestarting )
{
hk_IsRestarting = false
hk_iRoundCount = 0
}
}

public Hook_PlayerSpawn ( const id )
{
    if ( ! is_user_alive ( id ) )
        return HAM_IGNORED;

    if ( ! is_user_vip ( id ) )
    {
        hk_IsUserVip[ id ] = 0;
        return HAM_IGNORED;
    }

    hk_IsUserVip[ id ] = 1;
    hk_iRoundCount++

     if(g_RestrictedMap)
        return HAM_IGNORED;

    if (get_pcvar_num(gun_menu) == 1)
    if(hk_iRoundCount>=3)
    Showrod(id);

    set_task(0.3, "giveitems", id)
    return HAM_IGNORED;
}

public on_damage(id)
{
if(get_pcvar_num(g_type))
{
static attacker; attacker = get_user_attacker(id)
static damage; damage = read_data(2)	

if ( is_user_vip ( attacker ) )
{
hk_IsUserVip[ id ] = 1;

if(is_user_connected(attacker))
{
if(fm_is_ent_visible(attacker,id))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_hudmsg, "%i^n", damage)	
}


}
}else hk_IsUserVip[ id ] = 0;
}
}

public Damage(id)
{
new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)

if ( is_user_vip ( id ) )
{
hk_IsUserVip[ id ] = 1;
new money = read_data(2) * get_pcvar_num(mpd)
if(hitpoint==1) money += get_pcvar_num(mhb)
cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
}else hk_IsUserVip[ id ] = 0;
}

public death_msg()
{
if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) 
cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
}

public hook_death()
{
hk_Killer = read_data(1)

if ( (read_data(3) == 1) && (read_data(5) == 0) )
{
hk_HpAdd = get_pcvar_num (health_hs_add)
}
else
hk_HpAdd = get_pcvar_num (health_add)

hk_HpMax = get_pcvar_num (health_max)


if ( ! is_user_vip ( hk_Killer ) )
{
hk_IsUserVip[ hk_Killer ] = 0;
return;
}
hk_IsUserVip[ hk_Killer ] = 1;

hk_KillerHp = get_user_health(hk_Killer)
hk_KillerHp += hk_HpAdd

if (hk_KillerHp > hk_HpMax) hk_KillerHp = hk_HpMax
set_user_health(hk_Killer, hk_KillerHp)

set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(hk_Killer, "Healed +%d hp", hk_HpAdd)

}

public showAdmin(id)
{
if(get_pcvar_num(vip_hud) == 1)
{


new num, iLen, admin
static pl[32], name[32], szBuff[2048]

get_players(pl, num, "c")

for(new i = 0; i < num; i++)
{
if ( is_user_vip ( pl ) )
{
hk_IsUserVip[ pl ] = 1;
get_user_name(pl, name, 31)
iLen += format(szBuff[iLen], 2048 - iLen, "%d. %s^n", admin + 1, name)
admin++
}

}


set_hudmessage(0, 255, 0, 0.02, 0.2, 0, 6.0, 7.0 )
show_hudmessage(id, " %s online:^n%s", admin > 1 ? "Vips" : "Vips", szBuff)

arrayset(szBuff, 0, 2048)
}
return PLUGIN_HANDLED
}

public client_PreThink(id)
{
if(!is_user_alive(id)) return PLUGIN_CONTINUE
if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE

if ( ! is_user_vip ( id ) )
{
hk_IsUserVip[ id ] = 0;
return PLUGIN_CONTINUE
}


hk_IsUserVip[ id ] = 1;
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_cvar_num("vip_maxjumps"))
{
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)) return PLUGIN_CONTINUE
if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE

if ( ! is_user_vip ( id ) )
{
hk_IsUserVip[ id ] = 0;
return PLUGIN_CONTINUE
}


hk_IsUserVip[ id ] = 1;
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
}

return PLUGIN_CONTINUE
}

public Showrod(id) 
{
show_menu(id, Keysrod, "*Guns Menu^n\w1. *M4a1^n\w2. *AK47^n0. Exit^n", -1, "rod")
}

public Pressedrod(id, key) 
{

switch (key) {
case 0: { 
StripWeapons(id, Primary)
give_item(id,"weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90 );
}

case 1: { 
StripWeapons(id, Primary)
give_item(id,"weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90);
}


case 9: { 
}
}
return PLUGIN_CONTINUE
}

public get_item_flags() 
{ 
new sFlags[24] 
get_pcvar_string(items,sFlags,23) 
return read_flags(sFlags) 
} 

public giveitems(id)
{
new iFlags = get_item_flags() 
new CsTeams:userTeam = cs_get_user_team(id)

if (iFlags&ITEM_HE)
fm_give_item(id,"weapon_hegrenade") 


if(iFlags&ITEM_FS)
{
fm_give_item(id,"weapon_flashbang") 
fm_give_item(id,"weapon_flashbang") 
}

if(iFlags&ITEM_SG)
fm_give_item(id,"weapon_smokegrenade") 


if(iFlags&ITEM_DG)
{
StripWeapons(id, Secondary);
fm_give_item(id,"weapon_deagle") 
cs_set_user_bpammo(id, CSW_DEAGLE, 35 );
}

if(iFlags&ITEM_VH)
fm_give_item(id,"item_assaultsuit")

if(userTeam == CS_TEAM_CT && iFlags&ITEM_DF)
fm_give_item(id,"item_thighpack")

if(iFlags&ITEM_NV)
cs_set_user_nvg(id, 1)


}

stock is_user_vip ( id )
{
new s_Name[ 32 ], s_AuthID[ 32 ];
get_user_name ( id, s_Name, 31 );
get_user_authid ( id, s_AuthID, 31 );

for ( new i; i < hk_TotalLines; i++ )
{
if ( ! strcmp ( s_Name, hk_VipsList[ i ] ) )
return 1;
if ( ! strcmp ( s_AuthID, hk_VipsList[ i ] ) )
return 1;
}

return 0;

}

stock StripWeapons(id, Type, bool: bSwitchIfActive = true)
{
new iReturn;

if(is_user_alive(id))
{
new iEntity, iWeapon;
while((iWeapon = GetWeaponFromSlot(id, Type, iEntity)) > 0)
iReturn = ham_strip_user_weapon(id, iWeapon, Type, bSwitchIfActive);
}

return iReturn;
}

stock GetWeaponFromSlot( id , iSlot , &iEntity )
{
if ( !( 1 <= iSlot <= 5 ) )
return 0;

iEntity = 0;
const m_rgpPlayerItems_Slot0 = 367;
const m_iId = 43;
const XO_WEAPONS = 4;
const XO_PLAYER = 5;

iEntity = get_pdata_cbase( id , m_rgpPlayerItems_Slot0 + iSlot , XO_PLAYER );

return ( iEntity > 0 ) ? get_pdata_int( iEntity , m_iId , XO_WEAPONS ) : 0;
} 

stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
new iWeapon
if( !iSlot )
{
static const iWeaponsSlots[] = {
-1,
2, //CSW_P228
-1,
1, //CSW_SCOUT
4, //CSW_HEGRENADE
1, //CSW_XM1014
5, //CSW_C4
1, //CSW_MAC10
1, //CSW_AUG
4, //CSW_SMOKEGRENADE
2, //CSW_ELITE
2, //CSW_FIVESEVEN
1, //CSW_UMP45
1, //CSW_SG550
1, //CSW_GALIL
1, //CSW_FAMAS
2, //CSW_USP
2, //CSW_GLOCK18
1, //CSW_AWP
1, //CSW_MP5NAVY
1, //CSW_M249
1, //CSW_M3
1, //CSW_M4A1
1, //CSW_TMP
1, //CSW_G3SG1
4, //CSW_FLASHBANG
2, //CSW_DEAGLE
1, //CSW_SG552
1, //CSW_AK47
3, //CSW_KNIFE
1 //CSW_P90
}
iSlot = iWeaponsSlots[iCswId]
}

const XTRA_OFS_PLAYER = 5
const m_rgpPlayerItems_Slot0 = 367

iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER)

const XTRA_OFS_WEAPON = 4
const m_pNext = 42
const m_iId = 43

while( iWeapon > 0 )
{
if( get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId )
{
break
}
iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON)
}

if( iWeapon > 0 )
{
const m_pActiveItem = 373
if( bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon )
{
ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon)
}

if( ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon) )
{
user_has_weapon(id, iCswId, 0)
ExecuteHamB(Ham_Item_Kill, iWeapon)
return 1
}
}

return 0
} 
public MessageScoreAttrib(iMsgID, iDest, iReceiver) 
{
new iPlayer = get_msg_arg_int(1);
if ( ! is_user_vip ( iPlayer ) )
{
hk_IsUserVip[ iPlayer ] = 1;
return PLUGIN_CONTINUE
}


hk_IsUserVip[ iPlayer ] = 0;

CS_TEAM_T:
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
CS_TEAM_CT:
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
return PLUGIN_CONTINUE
}


iar fisierul unde adaugi hartile trebuie sa se afle in amxmodx/configs cu numele restrict_maps.ini

Re: Cerere plugin mapnames

Posted: 09 Jan 2019, 00:42
by LondoN eXtream
YONTU wrote:
LondoN eXtream wrote:
| Afiseaza codul
#include < amxmodx >

new g_MapNames [ ] [ ] =
{
	"35hp_2",
	"cs_deagle5",
	"he_glass"
};

public plugin_init ( )
{
	register_plugin ( "STOP", "1.0", "LondoN eXtream" );

	new Map [ 32 ];
	get_mapname ( Map, charsmax ( Map ) );

	for ( new i = 0; i < sizeof g_MapNames; i++ )
	{
		if ( equal ( Map, g_MapNames [ i ] ) )
		{
			set_cvar_string ( "vip_guns_menu", "0" );
			set_cvar_string ( "vip_items_round", "" );
			set_cvar_string ( "mp_freezetime", "0" );
		}
	}
}
Am o intrebare, dc adaugi acele spatii redundante?
Asa m-am obisnuit.