OciXCrom's Custom VIP Extras
Модератори: Extreme, Extreme, Extreme, Extreme, Extreme, Extreme, Extreme
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: OciXCrom's Custom VIP Extras
Явно библиотеката за премахване оръжия не работи на ReHLDS. Опитай по този начин (ползвал съм функциите на rehlds):
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <reapi>
#define PLUGIN_NAME "VIP Extras"
#define PLUGIN_VERSION "2.2b"
#define PLUGIN_AUTHOR "OciXCrom"
#define MODELS_PATH "models/player"
#define SOUND_MENU "items/gunpickup2.wav"
new flag_vip, flag_skin, wait, maxhealth, maxmoney, menu_enabled, menu_maxuses, menu_spawn
new get_health, get_armor, health_amount, armor_amount, get_deagle, he_amount, flash_amount, smoke_amount, get_transparency, transparency_amount
new get_m4a1, get_ak47, get_awp, get_g3sg1, get_sg550, menu_m4a1, menu_ak47, menu_awp, menu_g3sg1, menu_sg550
new menu_health, menu_armor, menu_deagle, menu_transparency, menu_speed, menu_gravity, menu_moredamage
new get_skin_t, get_skin_ct, skin_name_t, skin_name_ct, get_speed, speed_amount, get_gravity, gravity_amount, get_moredamage, moredamage_multiplier
new killbonus_health_normal, killbonus_health_headshot, killbonus_money_normal, killbonus_money_headshot
new skin_t[32], skin_ct[32], menu_uses[33]
new bool:user_moredamage[33]
new bool:skin_t_active
new bool:skin_ct_active
new const szPrefix[] = "^4[^3VIP Extras^4]"
enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}
new TeamNames[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar("CustomVIPExtras", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "player_damage")
register_event("DeathMsg", "player_killed", "a")
register_event("CurWeapon", "change_weapon", "be", "1=1")
register_clcmd("say /vm", "vip_menu")
register_clcmd("say_team /vm", "vip_menu")
register_clcmd("say /vipmenu", "vip_menu")
register_clcmd("say_team /vipmenu", "vip_menu")
wait = register_cvar("ve_wait", "0.5")
flag_vip = register_cvar("ve_vipflag", "o")
flag_skin = register_cvar("ve_skinflag", "b")
menu_enabled = register_cvar("ve_menu_enabled", "0")
menu_maxuses = register_cvar("ve_menu_maxuses", "1")
menu_spawn = register_cvar("ve_menu_spawn", "1")
get_health = register_cvar("ve_get_health", "1")
get_armor = register_cvar("ve_get_armor", "1")
get_deagle = register_cvar("ve_get_deagle", "1")
get_transparency = register_cvar("ve_get_transparency", "0")
get_speed = register_cvar("ve_get_speed", "0")
get_gravity = register_cvar("ve_get_gravity", "0")
get_m4a1 = register_cvar("ve_get_m4a1", "0")
get_ak47 = register_cvar("ve_get_ak47", "0")
get_awp = register_cvar("ve_get_awp", "0")
get_g3sg1 = register_cvar("ve_get_g3sg1", "0")
get_sg550 = register_cvar("ve_get_sg550", "0")
get_moredamage = register_cvar("ve_get_moredamage", "0")
menu_health = register_cvar("ve_menu_health", "1")
menu_armor = register_cvar("ve_menu_armor", "1")
menu_deagle = register_cvar("ve_menu_deagle", "1")
menu_transparency = register_cvar("ve_menu_transparency", "1")
menu_speed = register_cvar("ve_menu_speed", "1")
menu_gravity = register_cvar("ve_menu_gravity", "1")
menu_m4a1 = register_cvar("ve_menu_m4a1", "1")
menu_ak47 = register_cvar("ve_menu_ak47", "1")
menu_awp = register_cvar("ve_menu_awp", "1")
menu_g3sg1 = register_cvar("ve_menu_g3sg1", "1")
menu_sg550 = register_cvar("ve_menu_sg550", "1")
menu_moredamage = register_cvar("ve_menu_moredamage", "1")
health_amount = register_cvar("ve_health_amount", "150")
armor_amount = register_cvar("ve_armor_amount", "100")
he_amount = register_cvar("ve_he_amount", "1")
flash_amount = register_cvar("ve_flash_amount", "2")
smoke_amount = register_cvar("ve_smoke_amount", "1")
transparency_amount = register_cvar("ve_transparency_amount", "75")
speed_amount = register_cvar("ve_speed_amount", "300.0")
gravity_amount = register_cvar("ve_gravity_amount", "0.5")
moredamage_multiplier = register_cvar("ve_moredamage_multiplier", "2")
killbonus_health_normal = register_cvar("ve_killbonus_health_normal", "5")
killbonus_health_headshot = register_cvar("ve_killbonus_health_headshot", "10")
killbonus_money_normal = register_cvar("ve_killbonus_money_normal", "300")
killbonus_money_headshot = register_cvar("ve_killbonus_money_headshot", "500")
maxhealth = register_cvar("ve_max_health", "200")
maxmoney = register_cvar("ve_max_money", "16000")
}
public change_weapon(id)
if(user_has_flag(id, flag_vip) && get_pcvar_num(get_speed) == 1) set_user_maxspeed(id, get_pcvar_float(speed_amount))
public player_spawn(id)
{
if(is_user_alive(id))
{
menu_uses[id] = 0
user_moredamage[id] = false
cs_reset_user_model(id)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
if(get_pcvar_num(menu_enabled) > 0 && get_pcvar_num(menu_spawn) == 1)
vip_menu(id)
}
set_task(get_pcvar_float(wait), "vip_set", id)
}
public vip_set(id)
{
if(!is_user_alive(id))
return
if(user_has_flag(id, flag_skin))
{
switch(get_user_team(id))
{
case 1: if(skin_t_active) cs_set_user_model(id, skin_t)
case 2: if(skin_ct_active) cs_set_user_model(id, skin_ct)
}
}
if(get_pcvar_num(menu_enabled) == 1)
return
if(user_has_flag(id, flag_vip))
{
if(get_pcvar_num(get_health) == 1)
vip_equip(id, 0)
if(get_pcvar_num(get_armor) == 1)
vip_equip(id, 1)
if(get_pcvar_num(get_deagle) == 1)
vip_equip(id, 2)
new he = get_pcvar_num(he_amount)
new flash = get_pcvar_num(flash_amount)
new smoke = get_pcvar_num(smoke_amount)
if(he > 0)
vip_equip(id, 3)
if(flash > 0)
vip_equip(id, 4)
if(smoke > 0)
vip_equip(id, 5)
if(get_pcvar_num(get_transparency) == 1)
vip_equip(id, 6)
if(get_pcvar_num(get_speed) == 1)
vip_equip(id, 7)
if(get_pcvar_num(get_gravity) == 1)
vip_equip(id, 8)
if(get_pcvar_num(get_m4a1) == 1)
vip_equip(id, 9)
if(get_pcvar_num(get_ak47) == 1)
vip_equip(id, 10)
if(get_pcvar_num(get_awp) == 1)
vip_equip(id, 11)
if(get_pcvar_num(get_g3sg1) == 1)
vip_equip(id, 12)
if(get_pcvar_num(get_sg550) == 1)
vip_equip(id, 13)
if(get_pcvar_num(get_moredamage) == 1)
vip_equip(id, 14)
}
}
public vip_equip(id, item)
{
switch(item)
{
case 0: set_user_health(id, get_pcvar_num(health_amount))
case 1: set_user_armor(id, get_pcvar_num(armor_amount))
case 2:
{
rg_remove_items_by_slot(id, PISTOL_SLOT)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}
case 3:
{
give_item(id, "weapon_hegrenade")
cs_set_user_bpammo(id, CSW_HEGRENADE, get_pcvar_num(he_amount))
}
case 4:
{
give_item(id, "weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(flash_amount))
}
case 5:
{
give_item(id, "weapon_smokegrenade")
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, get_pcvar_num(smoke_amount))
}
case 6: set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(transparency_amount))
case 7: set_user_maxspeed(id, get_pcvar_float(speed_amount))
case 8: set_user_gravity(id, get_pcvar_float(gravity_amount))
case 9:
{
rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90)
}
case 10:
{
rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90)
}
case 11:
{
rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
give_item(id, "weapon_awp")
cs_set_user_bpammo(id, CSW_AWP, 30)
}
case 12:
{
rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
give_item(id, "weapon_g3sg1")
cs_set_user_bpammo(id, CSW_G3SG1, 90)
}
case 13:
{
rg_remove_items_by_slot(id, PRIMARY_WEAPON_SLOT)
give_item(id, "weapon_sg550")
cs_set_user_bpammo(id, CSW_SG550, 90)
}
case 14:
user_moredamage[id] = true
}
}
public vip_menu(id)
{
if(get_pcvar_num(menu_enabled) == 0)
{
ColorChat(id, TEAM_COLOR, "%s ^1The ^4VIP Menu ^1is currently ^3disabled^1.", szPrefix)
return PLUGIN_HANDLED
}
if(!user_has_flag(id, flag_vip))
{
ColorChat(id, TEAM_COLOR, "%s ^1You have ^3no access ^1to this command.", szPrefix)
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
ColorChat(id, TEAM_COLOR, "%s ^1You need to be ^3alive^1!", szPrefix)
return PLUGIN_HANDLED
}
if(menu_uses[id] == get_pcvar_num(menu_maxuses))
{
ColorChat(id, TEAM_COLOR, "%s ^1You can use the menu only ^4%i ^1time(s).", szPrefix, get_pcvar_num(menu_maxuses))
return PLUGIN_HANDLED
}
new title[100], item[50]
formatex(title, charsmax(title), "\yOciXCrom's \rCustom VIP Extras\d")
new vipmenu = menu_create(title, "vipmenu_handler")
if(get_pcvar_num(menu_health) == 1)
{
formatex(item, charsmax(item), "Health Points \y(+%i)", get_pcvar_num(health_amount))
menu_additem(vipmenu, item, "0", 0)
}
if(get_pcvar_num(menu_armor) == 1)
{
formatex(item, charsmax(item), "Armor Points \y(+%i)", get_pcvar_num(armor_amount))
menu_additem(vipmenu, item, "1", 0)
}
if(get_pcvar_num(menu_deagle) == 1)
{
formatex(item, charsmax(item), "Deagle \y(Full Ammo)")
menu_additem(vipmenu, item, "2", 0)
}
if(get_pcvar_num(he_amount) > 0)
{
formatex(item, charsmax(item), "He Grenade \y(%ix)", get_pcvar_num(he_amount))
menu_additem(vipmenu, item, "3", 0)
}
if(get_pcvar_num(flash_amount) > 0)
{
formatex(item, charsmax(item), "Flash Grenade \y(%ix)", get_pcvar_num(flash_amount))
menu_additem(vipmenu, item, "4", 0)
}
if(get_pcvar_num(smoke_amount) > 0)
{
formatex(item, charsmax(item), "Smoke Grenade \y(%ix)", get_pcvar_num(smoke_amount))
menu_additem(vipmenu, item, "5", 0)
}
if(get_pcvar_num(menu_transparency) == 1)
{
formatex(item, charsmax(item), "Transparency \y(%i%)", get_pcvar_num(transparency_amount))
menu_additem(vipmenu, item, "6", 0)
}
if(get_pcvar_num(menu_speed) == 1)
{
formatex(item, charsmax(item), "Faster Speed \y(%i)", get_pcvar_num(speed_amount))
menu_additem(vipmenu, item, "7", 0)
}
if(get_pcvar_num(menu_gravity) == 1)
{
formatex(item, charsmax(item), "Low Gravity \y(%f)", get_pcvar_float(gravity_amount))
menu_additem(vipmenu, item, "8", 0)
}
if(get_pcvar_num(menu_m4a1) == 1)
{
formatex(item, charsmax(item), "M4A1 \y(Full Ammo)")
menu_additem(vipmenu, item, "9", 0)
}
if(get_pcvar_num(menu_ak47) == 1)
{
formatex(item, charsmax(item), "AK47 \y(Full Ammo)")
menu_additem(vipmenu, item, "10", 0)
}
if(get_pcvar_num(menu_awp) == 1)
{
formatex(item, charsmax(item), "AWP \y(Sniper)")
menu_additem(vipmenu, item, "11", 0)
}
if(get_pcvar_num(menu_g3sg1) == 1)
{
formatex(item, charsmax(item), "G3SG1 \y(Automatic Sniper)")
menu_additem(vipmenu, item, "12", 0)
}
if(get_pcvar_num(menu_sg550) == 1)
{
formatex(item, charsmax(item), "SG550 \y(Automatic Sniper)")
menu_additem(vipmenu, item, "13", 0)
}
if(get_pcvar_num(menu_moredamage) == 1)
{
formatex(item, charsmax(item), "More Damage \y(%ix)", get_pcvar_num(moredamage_multiplier))
menu_additem(vipmenu, item, "14", 0)
}
menu_setprop(vipmenu, MPROP_EXITNAME, "\rClose the Menu")
menu_setprop(vipmenu, MPROP_BACKNAME, "\rGo to the \yPrevious \rPage")
menu_setprop(vipmenu, MPROP_NEXTNAME, "\rGo to the \yNext \rPage")
menu_setprop(vipmenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, vipmenu, 0)
return PLUGIN_HANDLED
}
public vipmenu_handler(id, vipmenu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(vipmenu)
return PLUGIN_HANDLED
}
new data[6], iName[64], access, callback
menu_item_getinfo(vipmenu, item, access, data, charsmax(data), iName, charsmax(iName), callback)
new key = str_to_num(data)
vip_equip(id, key)
menu_uses[id]++
ColorChat(id, TEAM_COLOR, "%s ^1You have successfully used the ^3VIP Menu^1 (^4%i^1/^4%i^1)", szPrefix, menu_uses[id], get_pcvar_num(menu_maxuses))
emit_sound(id, CHAN_ITEM, SOUND_MENU, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
menu_destroy(vipmenu)
return PLUGIN_HANDLED
}
public player_killed()
{
new attacker = read_data(1)
new victim = read_data(2)
if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !user_has_flag(attacker, flag_vip))
return
new headshot = read_data(3)
new health = get_user_health(attacker)
new money = cs_get_user_money(attacker)
new reward_health = headshot ? get_pcvar_num(killbonus_health_headshot) : get_pcvar_num(killbonus_health_normal)
new reward_money = headshot ? get_pcvar_num(killbonus_money_headshot) : get_pcvar_num(killbonus_money_normal)
new health_max = get_pcvar_num(maxhealth)
new money_max = get_pcvar_num(maxmoney)
set_user_health(attacker, health + reward_health)
cs_set_user_money(attacker, money + reward_money)
if(get_user_health(attacker) > health_max) set_user_health(attacker, health_max)
if(cs_get_user_money(attacker) > money_max) cs_set_user_money(attacker, money_max)
}
public player_damage(victim, inflictor, attacker, Float:damage, damage_bits)
{
if(is_user_connected(attacker))
if(user_moredamage[attacker] && attacker != victim)
SetHamParamFloat(4, damage * get_pcvar_float(moredamage_multiplier))
}
public plugin_precache()
{
get_skin_t = register_cvar("ve_get_skin_t", "0")
get_skin_ct = register_cvar("ve_get_skin_ct", "0")
skin_name_t = register_cvar("ve_skin_name_t", "vip")
skin_name_ct = register_cvar("ve_skin_name_ct", "smith")
skin_t_active = (get_pcvar_num(get_skin_t) == 1) ? true : false
skin_ct_active = (get_pcvar_num(get_skin_ct) == 1) ? true : false
if(skin_t_active)
{
new skin1[50]
get_pcvar_string(skin_name_t, skin_t, charsmax(skin_t))
formatex(skin1, charsmax(skin1), "%s/%s/%s.mdl", MODELS_PATH, skin_t, skin_t)
precache_model(skin1)
}
if(skin_ct_active)
{
new skin2[50]
get_pcvar_string(skin_name_ct, skin_ct, charsmax(skin_ct))
formatex(skin2, charsmax(skin2), "%s/%s/%s.mdl", MODELS_PATH, skin_ct, skin_ct)
precache_model(skin2)
}
precache_sound(SOUND_MENU)
}
stock user_has_flag(id, cvar)
{
new flags[32]
get_flags(get_user_flags(id), flags, charsmax(flags))
new vip_flag[2]
get_pcvar_string(cvar, vip_flag, charsmax(vip_flag))
return (contain(flags, vip_flag) != -1) ? true : false
}
/* ======================================================================================================= */
/* ColorChat */
/* ======================================================================================================= */
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
if( !get_playersnum() ) return;
new message[256];
switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}
vformat(message[1], 251, msg, 4);
replace_all(message, 191, "!n", "^x01")
replace_all(message, 191, "!t", "^x03")
replace_all(message, 191, "!g", "^x04")
// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';
new team, ColorChange, index, MSG_Type;
if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}
team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);
ShowColorMessage(index, MSG_Type, message);
if(ColorChange)
{
Team_Info(index, MSG_Type, TeamNames[team]);
}
}
ShowColorMessage(id, type, message[])
{
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}
Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();
return 1;
}
ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamNames[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamNames[2]);
}
case GREY:
{
return Team_Info(index, type, TeamNames[0]);
}
}
return 0;
}
FindPlayer()
{
new i = -1;
while(i <= get_maxplayers())
{
if(is_user_connected(++i))
return i;
}
return -1;
}
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: OciXCrom's Custom VIP Extras
Има ли някакви грешки в конзолата на сървъра? Не мога да тествам, тъй като нямам изтеглено сървър с rehlds.
Re: OciXCrom's Custom VIP Extras
(native "rg_remove_items_by_slot") - debug not enabled!
дори и при пуснат debug е същото
дори и при пуснат debug е същото
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: OciXCrom's Custom VIP Extras
При пуснат debug трябва да покаже какъв е проблемът. Сега видях обаче, че е имало функция, която автоматично замества оръжието в слота, тъй че опитай пак:
Ако не стане, покажи цялата грешка с активиран debug.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <reapi>
#define PLUGIN_NAME "VIP Extras"
#define PLUGIN_VERSION "2.2b"
#define PLUGIN_AUTHOR "OciXCrom"
#define MODELS_PATH "models/player"
#define SOUND_MENU "items/gunpickup2.wav"
new flag_vip, flag_skin, wait, maxhealth, maxmoney, menu_enabled, menu_maxuses, menu_spawn
new get_health, get_armor, health_amount, armor_amount, get_deagle, he_amount, flash_amount, smoke_amount, get_transparency, transparency_amount
new get_m4a1, get_ak47, get_awp, get_g3sg1, get_sg550, menu_m4a1, menu_ak47, menu_awp, menu_g3sg1, menu_sg550
new menu_health, menu_armor, menu_deagle, menu_transparency, menu_speed, menu_gravity, menu_moredamage
new get_skin_t, get_skin_ct, skin_name_t, skin_name_ct, get_speed, speed_amount, get_gravity, gravity_amount, get_moredamage, moredamage_multiplier
new killbonus_health_normal, killbonus_health_headshot, killbonus_money_normal, killbonus_money_headshot
new skin_t[32], skin_ct[32], menu_uses[33]
new bool:user_moredamage[33]
new bool:skin_t_active
new bool:skin_ct_active
new const szPrefix[] = "^4[^3VIP Extras^4]"
enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}
new TeamNames[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar("CustomVIPExtras", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
RegisterHam(Ham_TakeDamage, "player", "player_damage")
register_event("DeathMsg", "player_killed", "a")
register_event("CurWeapon", "change_weapon", "be", "1=1")
register_clcmd("say /vm", "vip_menu")
register_clcmd("say_team /vm", "vip_menu")
register_clcmd("say /vipmenu", "vip_menu")
register_clcmd("say_team /vipmenu", "vip_menu")
wait = register_cvar("ve_wait", "0.5")
flag_vip = register_cvar("ve_vipflag", "o")
flag_skin = register_cvar("ve_skinflag", "b")
menu_enabled = register_cvar("ve_menu_enabled", "0")
menu_maxuses = register_cvar("ve_menu_maxuses", "1")
menu_spawn = register_cvar("ve_menu_spawn", "1")
get_health = register_cvar("ve_get_health", "1")
get_armor = register_cvar("ve_get_armor", "1")
get_deagle = register_cvar("ve_get_deagle", "1")
get_transparency = register_cvar("ve_get_transparency", "0")
get_speed = register_cvar("ve_get_speed", "0")
get_gravity = register_cvar("ve_get_gravity", "0")
get_m4a1 = register_cvar("ve_get_m4a1", "0")
get_ak47 = register_cvar("ve_get_ak47", "0")
get_awp = register_cvar("ve_get_awp", "0")
get_g3sg1 = register_cvar("ve_get_g3sg1", "0")
get_sg550 = register_cvar("ve_get_sg550", "0")
get_moredamage = register_cvar("ve_get_moredamage", "0")
menu_health = register_cvar("ve_menu_health", "1")
menu_armor = register_cvar("ve_menu_armor", "1")
menu_deagle = register_cvar("ve_menu_deagle", "1")
menu_transparency = register_cvar("ve_menu_transparency", "1")
menu_speed = register_cvar("ve_menu_speed", "1")
menu_gravity = register_cvar("ve_menu_gravity", "1")
menu_m4a1 = register_cvar("ve_menu_m4a1", "1")
menu_ak47 = register_cvar("ve_menu_ak47", "1")
menu_awp = register_cvar("ve_menu_awp", "1")
menu_g3sg1 = register_cvar("ve_menu_g3sg1", "1")
menu_sg550 = register_cvar("ve_menu_sg550", "1")
menu_moredamage = register_cvar("ve_menu_moredamage", "1")
health_amount = register_cvar("ve_health_amount", "150")
armor_amount = register_cvar("ve_armor_amount", "100")
he_amount = register_cvar("ve_he_amount", "1")
flash_amount = register_cvar("ve_flash_amount", "2")
smoke_amount = register_cvar("ve_smoke_amount", "1")
transparency_amount = register_cvar("ve_transparency_amount", "75")
speed_amount = register_cvar("ve_speed_amount", "300.0")
gravity_amount = register_cvar("ve_gravity_amount", "0.5")
moredamage_multiplier = register_cvar("ve_moredamage_multiplier", "2")
killbonus_health_normal = register_cvar("ve_killbonus_health_normal", "5")
killbonus_health_headshot = register_cvar("ve_killbonus_health_headshot", "10")
killbonus_money_normal = register_cvar("ve_killbonus_money_normal", "300")
killbonus_money_headshot = register_cvar("ve_killbonus_money_headshot", "500")
maxhealth = register_cvar("ve_max_health", "200")
maxmoney = register_cvar("ve_max_money", "16000")
}
public change_weapon(id)
if(user_has_flag(id, flag_vip) && get_pcvar_num(get_speed) == 1) set_user_maxspeed(id, get_pcvar_float(speed_amount))
public player_spawn(id)
{
if(is_user_alive(id))
{
menu_uses[id] = 0
user_moredamage[id] = false
cs_reset_user_model(id)
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
if(get_pcvar_num(menu_enabled) > 0 && get_pcvar_num(menu_spawn) == 1)
vip_menu(id)
}
set_task(get_pcvar_float(wait), "vip_set", id)
}
public vip_set(id)
{
if(!is_user_alive(id))
return
if(user_has_flag(id, flag_skin))
{
switch(get_user_team(id))
{
case 1: if(skin_t_active) cs_set_user_model(id, skin_t)
case 2: if(skin_ct_active) cs_set_user_model(id, skin_ct)
}
}
if(get_pcvar_num(menu_enabled) == 1)
return
if(user_has_flag(id, flag_vip))
{
if(get_pcvar_num(get_health) == 1)
vip_equip(id, 0)
if(get_pcvar_num(get_armor) == 1)
vip_equip(id, 1)
if(get_pcvar_num(get_deagle) == 1)
vip_equip(id, 2)
new he = get_pcvar_num(he_amount)
new flash = get_pcvar_num(flash_amount)
new smoke = get_pcvar_num(smoke_amount)
if(he > 0)
vip_equip(id, 3)
if(flash > 0)
vip_equip(id, 4)
if(smoke > 0)
vip_equip(id, 5)
if(get_pcvar_num(get_transparency) == 1)
vip_equip(id, 6)
if(get_pcvar_num(get_speed) == 1)
vip_equip(id, 7)
if(get_pcvar_num(get_gravity) == 1)
vip_equip(id, 8)
if(get_pcvar_num(get_m4a1) == 1)
vip_equip(id, 9)
if(get_pcvar_num(get_ak47) == 1)
vip_equip(id, 10)
if(get_pcvar_num(get_awp) == 1)
vip_equip(id, 11)
if(get_pcvar_num(get_g3sg1) == 1)
vip_equip(id, 12)
if(get_pcvar_num(get_sg550) == 1)
vip_equip(id, 13)
if(get_pcvar_num(get_moredamage) == 1)
vip_equip(id, 14)
}
}
public vip_equip(id, item)
{
switch(item)
{
case 0: set_user_health(id, get_pcvar_num(health_amount))
case 1: set_user_armor(id, get_pcvar_num(armor_amount))
case 2:
{
rg_give_item(id, "weapon_deagle", GT_REPLACE)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
}
case 3:
{
rg_give_item(id, "weapon_hegrenade")
cs_set_user_bpammo(id, CSW_HEGRENADE, get_pcvar_num(he_amount))
}
case 4:
{
rg_give_item(id, "weapon_flashbang")
cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(flash_amount))
}
case 5:
{
rg_give_item(id, "weapon_smokegrenade")
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, get_pcvar_num(smoke_amount))
}
case 6: set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(transparency_amount))
case 7: set_user_maxspeed(id, get_pcvar_float(speed_amount))
case 8: set_user_gravity(id, get_pcvar_float(gravity_amount))
case 9:
{
rg_give_item(id, "weapon_m4a1", GT_REPLACE)
cs_set_user_bpammo(id, CSW_M4A1, 90)
}
case 10:
{
rg_give_item(id, "weapon_ak47", GT_REPLACE)
cs_set_user_bpammo(id, CSW_AK47, 90)
}
case 11:
{
rg_give_item(id, "weapon_awp", GT_REPLACE)
cs_set_user_bpammo(id, CSW_AWP, 30)
}
case 12:
{
rg_give_item(id, "weapon_g3sg1", GT_REPLACE)
cs_set_user_bpammo(id, CSW_G3SG1, 90)
}
case 13:
{
rg_give_item(id, "weapon_sg550", GT_REPLACE)
cs_set_user_bpammo(id, CSW_SG550, 90)
}
case 14:
user_moredamage[id] = true
}
}
public vip_menu(id)
{
if(get_pcvar_num(menu_enabled) == 0)
{
ColorChat(id, TEAM_COLOR, "%s ^1The ^4VIP Menu ^1is currently ^3disabled^1.", szPrefix)
return PLUGIN_HANDLED
}
if(!user_has_flag(id, flag_vip))
{
ColorChat(id, TEAM_COLOR, "%s ^1You have ^3no access ^1to this command.", szPrefix)
return PLUGIN_HANDLED
}
if(!is_user_alive(id))
{
ColorChat(id, TEAM_COLOR, "%s ^1You need to be ^3alive^1!", szPrefix)
return PLUGIN_HANDLED
}
if(menu_uses[id] == get_pcvar_num(menu_maxuses))
{
ColorChat(id, TEAM_COLOR, "%s ^1You can use the menu only ^4%i ^1time(s).", szPrefix, get_pcvar_num(menu_maxuses))
return PLUGIN_HANDLED
}
new title[100], item[50]
formatex(title, charsmax(title), "\yOciXCrom's \rCustom VIP Extras\d")
new vipmenu = menu_create(title, "vipmenu_handler")
if(get_pcvar_num(menu_health) == 1)
{
formatex(item, charsmax(item), "Health Points \y(+%i)", get_pcvar_num(health_amount))
menu_additem(vipmenu, item, "0", 0)
}
if(get_pcvar_num(menu_armor) == 1)
{
formatex(item, charsmax(item), "Armor Points \y(+%i)", get_pcvar_num(armor_amount))
menu_additem(vipmenu, item, "1", 0)
}
if(get_pcvar_num(menu_deagle) == 1)
{
formatex(item, charsmax(item), "Deagle \y(Full Ammo)")
menu_additem(vipmenu, item, "2", 0)
}
if(get_pcvar_num(he_amount) > 0)
{
formatex(item, charsmax(item), "He Grenade \y(%ix)", get_pcvar_num(he_amount))
menu_additem(vipmenu, item, "3", 0)
}
if(get_pcvar_num(flash_amount) > 0)
{
formatex(item, charsmax(item), "Flash Grenade \y(%ix)", get_pcvar_num(flash_amount))
menu_additem(vipmenu, item, "4", 0)
}
if(get_pcvar_num(smoke_amount) > 0)
{
formatex(item, charsmax(item), "Smoke Grenade \y(%ix)", get_pcvar_num(smoke_amount))
menu_additem(vipmenu, item, "5", 0)
}
if(get_pcvar_num(menu_transparency) == 1)
{
formatex(item, charsmax(item), "Transparency \y(%i%)", get_pcvar_num(transparency_amount))
menu_additem(vipmenu, item, "6", 0)
}
if(get_pcvar_num(menu_speed) == 1)
{
formatex(item, charsmax(item), "Faster Speed \y(%i)", get_pcvar_num(speed_amount))
menu_additem(vipmenu, item, "7", 0)
}
if(get_pcvar_num(menu_gravity) == 1)
{
formatex(item, charsmax(item), "Low Gravity \y(%f)", get_pcvar_float(gravity_amount))
menu_additem(vipmenu, item, "8", 0)
}
if(get_pcvar_num(menu_m4a1) == 1)
{
formatex(item, charsmax(item), "M4A1 \y(Full Ammo)")
menu_additem(vipmenu, item, "9", 0)
}
if(get_pcvar_num(menu_ak47) == 1)
{
formatex(item, charsmax(item), "AK47 \y(Full Ammo)")
menu_additem(vipmenu, item, "10", 0)
}
if(get_pcvar_num(menu_awp) == 1)
{
formatex(item, charsmax(item), "AWP \y(Sniper)")
menu_additem(vipmenu, item, "11", 0)
}
if(get_pcvar_num(menu_g3sg1) == 1)
{
formatex(item, charsmax(item), "G3SG1 \y(Automatic Sniper)")
menu_additem(vipmenu, item, "12", 0)
}
if(get_pcvar_num(menu_sg550) == 1)
{
formatex(item, charsmax(item), "SG550 \y(Automatic Sniper)")
menu_additem(vipmenu, item, "13", 0)
}
if(get_pcvar_num(menu_moredamage) == 1)
{
formatex(item, charsmax(item), "More Damage \y(%ix)", get_pcvar_num(moredamage_multiplier))
menu_additem(vipmenu, item, "14", 0)
}
menu_setprop(vipmenu, MPROP_EXITNAME, "\rClose the Menu")
menu_setprop(vipmenu, MPROP_BACKNAME, "\rGo to the \yPrevious \rPage")
menu_setprop(vipmenu, MPROP_NEXTNAME, "\rGo to the \yNext \rPage")
menu_setprop(vipmenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, vipmenu, 0)
return PLUGIN_HANDLED
}
public vipmenu_handler(id, vipmenu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(vipmenu)
return PLUGIN_HANDLED
}
new data[6], iName[64], access, callback
menu_item_getinfo(vipmenu, item, access, data, charsmax(data), iName, charsmax(iName), callback)
new key = str_to_num(data)
vip_equip(id, key)
menu_uses[id]++
ColorChat(id, TEAM_COLOR, "%s ^1You have successfully used the ^3VIP Menu^1 (^4%i^1/^4%i^1)", szPrefix, menu_uses[id], get_pcvar_num(menu_maxuses))
emit_sound(id, CHAN_ITEM, SOUND_MENU, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
menu_destroy(vipmenu)
return PLUGIN_HANDLED
}
public player_killed()
{
new attacker = read_data(1)
new victim = read_data(2)
if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !user_has_flag(attacker, flag_vip))
return
new headshot = read_data(3)
new health = get_user_health(attacker)
new money = cs_get_user_money(attacker)
new reward_health = headshot ? get_pcvar_num(killbonus_health_headshot) : get_pcvar_num(killbonus_health_normal)
new reward_money = headshot ? get_pcvar_num(killbonus_money_headshot) : get_pcvar_num(killbonus_money_normal)
new health_max = get_pcvar_num(maxhealth)
new money_max = get_pcvar_num(maxmoney)
set_user_health(attacker, health + reward_health)
cs_set_user_money(attacker, money + reward_money)
if(get_user_health(attacker) > health_max) set_user_health(attacker, health_max)
if(cs_get_user_money(attacker) > money_max) cs_set_user_money(attacker, money_max)
}
public player_damage(victim, inflictor, attacker, Float:damage, damage_bits)
{
if(is_user_connected(attacker))
if(user_moredamage[attacker] && attacker != victim)
SetHamParamFloat(4, damage * get_pcvar_float(moredamage_multiplier))
}
public plugin_precache()
{
get_skin_t = register_cvar("ve_get_skin_t", "0")
get_skin_ct = register_cvar("ve_get_skin_ct", "0")
skin_name_t = register_cvar("ve_skin_name_t", "vip")
skin_name_ct = register_cvar("ve_skin_name_ct", "smith")
skin_t_active = (get_pcvar_num(get_skin_t) == 1) ? true : false
skin_ct_active = (get_pcvar_num(get_skin_ct) == 1) ? true : false
if(skin_t_active)
{
new skin1[50]
get_pcvar_string(skin_name_t, skin_t, charsmax(skin_t))
formatex(skin1, charsmax(skin1), "%s/%s/%s.mdl", MODELS_PATH, skin_t, skin_t)
precache_model(skin1)
}
if(skin_ct_active)
{
new skin2[50]
get_pcvar_string(skin_name_ct, skin_ct, charsmax(skin_ct))
formatex(skin2, charsmax(skin2), "%s/%s/%s.mdl", MODELS_PATH, skin_ct, skin_ct)
precache_model(skin2)
}
precache_sound(SOUND_MENU)
}
stock user_has_flag(id, cvar)
{
new flags[32]
get_flags(get_user_flags(id), flags, charsmax(flags))
new vip_flag[2]
get_pcvar_string(cvar, vip_flag, charsmax(vip_flag))
return (contain(flags, vip_flag) != -1) ? true : false
}
/* ======================================================================================================= */
/* ColorChat */
/* ======================================================================================================= */
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
if( !get_playersnum() ) return;
new message[256];
switch(type)
{
case NORMAL: // clients scr_concolor cvar color
{
message[0] = 0x01;
}
case GREEN: // Green
{
message[0] = 0x04;
}
default: // White, Red, Blue
{
message[0] = 0x03;
}
}
vformat(message[1], 251, msg, 4);
replace_all(message, 191, "!n", "^x01")
replace_all(message, 191, "!t", "^x03")
replace_all(message, 191, "!g", "^x04")
// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';
new team, ColorChange, index, MSG_Type;
if(id)
{
MSG_Type = MSG_ONE;
index = id;
} else {
index = FindPlayer();
MSG_Type = MSG_ALL;
}
team = get_user_team(index);
ColorChange = ColorSelection(index, MSG_Type, type);
ShowColorMessage(index, MSG_Type, message);
if(ColorChange)
{
Team_Info(index, MSG_Type, TeamNames[team]);
}
}
ShowColorMessage(id, type, message[])
{
static bool:saytext_used;
static get_user_msgid_saytext;
if(!saytext_used)
{
get_user_msgid_saytext = get_user_msgid("SayText");
saytext_used = true;
}
message_begin(type, get_user_msgid_saytext, _, id);
write_byte(id)
write_string(message);
message_end();
}
Team_Info(id, type, team[])
{
static bool:teaminfo_used;
static get_user_msgid_teaminfo;
if(!teaminfo_used)
{
get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
teaminfo_used = true;
}
message_begin(type, get_user_msgid_teaminfo, _, id);
write_byte(id);
write_string(team);
message_end();
return 1;
}
ColorSelection(index, type, Color:Type)
{
switch(Type)
{
case RED:
{
return Team_Info(index, type, TeamNames[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamNames[2]);
}
case GREY:
{
return Team_Info(index, type, TeamNames[0]);
}
}
return 0;
}
FindPlayer()
{
new i = -1;
while(i <= get_maxplayers())
{
if(is_user_connected(++i))
return i;
}
return -1;
}
-
camarossblack
Извън линия - Потребител
- Мнения: 6
- Регистриран на: 13 Юли 2017, 22:30
Re: OciXCrom's Custom VIP Extras
Здравейте,
Имам въпрос относно този плъгин. Някой пробвал ли го е. Има ли въпросния проблем, както при мен. Плъгина си работи идеално, но когато тръгна да сменям моделите на ВИП играчите (слагам нови скинове), както трябва и сменя мапа и сървъра крашва ? Постоянно преглеждам да не допускам аз грешки, но няма. Пробвал съм с доста скинове и с нито един не стана, всеки път крашва.
Имам въпрос относно този плъгин. Някой пробвал ли го е. Има ли въпросния проблем, както при мен. Плъгина си работи идеално, но когато тръгна да сменям моделите на ВИП играчите (слагам нови скинове), както трябва и сменя мапа и сървъра крашва ? Постоянно преглеждам да не допускам аз грешки, но няма. Пробвал съм с доста скинове и с нито един не стана, всеки път крашва.
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 0 Отговори
- 1111 Преглеждания
-
Последно мнение от WWUghRght
-
- 1 Отговори
- 136 Преглеждания
-
Последно мнение от Hurricane
-
- 0 Отговори
- 953 Преглеждания
-
Последно мнение от RedFoxxx
-
- 1 Отговори
- 1784 Преглеждания
-
Последно мнение от mi0
-
- 9 Отговори
- 719 Преглеждания
-
Последно мнение от HeatoN
-
- 1 Отговори
- 1528 Преглеждания
-
Последно мнение от iv69
-
- 4 Отговори
- 1844 Преглеждания
-
Последно мнение от OciXCrom
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 18 госта