Furien VIP
Pagina 1 din 1
Furien VIP
Descriere: Am vazut ca multe servere au nevoie de un plugin complex pentru VIP . Astazi am facut acest plugin, si sa il public sa il aveti si voi . :)
Descarcare: [Trebuie sa fiti inscris si conectat pentru a vedea acest link]
Nume: Furien VIP
Versiune: 1.0
Autor: hadesownage
Multumiri: geo_neo9
Instalare:
1. Fisierul furien_vip.sma il puneti in addons/amxmodx/scripting
2. Fisierul furien_vip.amxx il puneti in addons/amxmodx/plugins
4. Fisierul colorchat.inc il puneti in addons/amxmodx/scripting/include
5. Fisierul vip.html il puneti in addons/amxmodx/configs
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):
-
Comenzi publice (se tasteaza in joc prin apasarea tastei Y):
/furienvip - Afiseaza meniul VIP, doar vipii au acces
/vips - Afiseaza VIPII online
/vip - Afiseaza informatii despre vip
Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini):
Avantaje:
Meniul unui VIP contine urmatoarele:
GRAVITATIE
INVIZIBILITATE
M4A1 + DEAGLE
AK47 + DEAGLE
HEGRENADE + FLASHBANG
Alte Detalii:
* Meniul VIP se poate utiliza doar odata pe runda .
* Flagul pentru vip este "R", se poate modifica din sma:
Sursa:
Descarcare: [Trebuie sa fiti inscris si conectat pentru a vedea acest link]
Nume: Furien VIP
Versiune: 1.0
Autor: hadesownage
Multumiri: geo_neo9
Instalare:
1. Fisierul furien_vip.sma il puneti in addons/amxmodx/scripting
2. Fisierul furien_vip.amxx il puneti in addons/amxmodx/plugins
4. Fisierul colorchat.inc il puneti in addons/amxmodx/scripting/include
5. Fisierul vip.html il puneti in addons/amxmodx/configs
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
- Cod:
furien_vip.amxx
Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):
-
Comenzi publice (se tasteaza in joc prin apasarea tastei Y):
/furienvip - Afiseaza meniul VIP, doar vipii au acces
/vips - Afiseaza VIPII online
/vip - Afiseaza informatii despre vip
Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini):
- cstrike
fun
hamsandwich
Avantaje:
Meniul unui VIP contine urmatoarele:
GRAVITATIE
INVIZIBILITATE
M4A1 + DEAGLE
AK47 + DEAGLE
HEGRENADE + FLASHBANG
Alte Detalii:
* Meniul VIP se poate utiliza doar odata pe runda .
* Flagul pentru vip este "R", se poate modifica din sma:
#define ACCES "ADMIN_LEVEL_F"
#define ACCES_LEVEL ADMIN_LEVEL_F
Sursa:
- Cod:
*/
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <fun>
#include <colorchat>
#define PLUGIN "VIP PLUGIN"
#define VERSION "1.0"
#define AUTHOR "hadesownage"
#define ACCES "ADMIN_LEVEL_F"
#define ACCES_LEVEL ADMIN_LEVEL_F
#define MAX_HEALTH 225
#define COLOR "^x04"
#define CONTACT "/vip pentru detalii"
new maxplayers
new gmsgSayText
new g_ScoreAttrib;
new limita[33];
new gHealth_add, gHealth_max
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
gHealth_add = register_cvar("vip_hp_add", "5")
gHealth_max = register_cvar("vip_hp_max", "100")
register_event("DeathMsg", "VIP_KILL", "ae")
register_event("CurWeapon", "CurWeapon", "be", "1=1")
RegisterHam(Ham_Spawn, "player", "SetSomeThing", 1)
register_logevent("round_start", 2, "1=Round_Start")
register_clcmd ("say /vip" , "vipinfo" , -1);
register_clcmd ("say_team /vip" , "vipinfo" , -1);
register_clcmd("say /furienvip", "check_acces");
register_clcmd("say /vips", "print_adminlist");
maxplayers = get_maxplayers()
gmsgSayText = get_user_msgid("SayText")
register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
RegisterHam(Ham_Spawn, "player", "HamPlayerSpawn", 0);
g_ScoreAttrib = get_user_msgid("ScoreAttrib");
register_event("ResetHUD", "resetModel", "b")
return PLUGIN_CONTINUE
}
public round_start()
{
new iPlayers[32]
new iNum
get_players( iPlayers, iNum )
for( new i = 0; i < iNum; i++ )
{
limita[iPlayers[i]] = 0;
}
}
public VIP_KILL() {
new killer = read_data(1)
new victim = read_data(2)
if(!killer || !victim)
return
if(get_user_flags(killer) & ACCES_LEVEL) {
if(killer && is_user_alive(killer)) {
if(cs_get_user_team(victim) == CS_TEAM_T) {
if(get_user_health(killer) < 200 - 10) {
set_user_health(killer, get_user_health(killer) + 10)
}
if(cs_get_user_money(killer) < 16000 - 800) {
cs_set_user_money(killer, cs_get_user_money(killer) + 800)
}
}
if(cs_get_user_team(victim) == CS_TEAM_CT) {
if(cs_get_user_money(killer) < 16000 - 700) {
cs_set_user_money(killer, cs_get_user_money(killer) + 700)
}
}
}
}
}
public SetSomeThing(id) {
if(!(get_user_flags(id) & ACCES_LEVEL))
return
if(get_user_health(id) < 225) {
set_user_health(id, 225)
}
if(get_user_armor(id) < 225) {
set_user_armor(id, 225)
}
set_task(0.5, "ScoreBoard", id + 6910)
}
public ScoreBoard(tID) {
new id = tID - 6910
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
}
public CurWeapon(id) {
if(!(get_user_flags(id) & ACCES_LEVEL))
return
new CW = read_data(2)
if(CW != CSW_KNIFE)
return
else
if(get_user_health(id) < 50)
set_task(5.0, "hp_up",id, _, _, "b")
}
public hp_up(id) {
new addhealth = get_pcvar_num(gHealth_add)
if(!addhealth)
return
new maxhealth = get_pcvar_num(gHealth_max)
if(maxhealth > MAX_HEALTH) {
set_pcvar_num(gHealth_max, MAX_HEALTH)
maxhealth = MAX_HEALTH
}
new health = get_user_health(id)
if(is_user_alive(id) && (health < maxhealth)) {
set_user_health(id, health + addhealth)
new cvar_health[5]
get_pcvar_string(gHealth_max, cvar_health, 4)
set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.1, 4)
show_hudmessage(id, "[VIP-REGENERATION] Viata ta se incarca pana la %s !", cvar_health)
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(0)
write_byte(191)
write_byte(255)
write_byte(75)
message_end()
} else {
if(is_user_alive(id) && (health > maxhealth))
emit_sound(id,CHAN_VOICE, "fvox/medical_repaired.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
remove_task(id)
}
}
public vipinfo(id) show_motd(id,"/addons/amxmodx/configs/vip.html")
public print_adminlist(user)
{
new adminnames[33][32]
new message[256]
new contactinfo[256], contact[112]
new id, count, x, len
for(id = 1 ; id <= maxplayers ; id++)
if(is_user_connected(id))
if( get_user_flags(id) & read_flags(ACCES) )
get_user_name(id, adminnames[count++], 31)
len = format(message, 255, "%s VIPS ONLINE: ",COLOR)
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
if(len > 96 ) {
print_message(user, message)
len = format(message, 255, "%s ",COLOR)
}
}
print_message(user, message)
}
else {
len += format(message[len], 255-len, "Nici un VIP online.")
print_message(user, message)
}
get_cvar_string("amx_contactinfo", contact, 63)
if(contact[0]) {
format(contactinfo, 111, "%s Cumpara VIP -- %s", COLOR, contact)
print_message(user, contactinfo)
}
}
print_message(id, msg[]) {
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
write_byte(id)
write_string(msg)
message_end()
}
public HamPlayerSpawn(id)
{
if( get_user_flags(id) & read_flags(ACCES) )
{
set_user_scoreattrib(id, 4);
}
}
stock set_user_scoreattrib(id,
attrib = 0)
{
message_begin(MSG_BROADCAST, g_ScoreAttrib, _, 0);
write_byte(id);
write_byte(attrib);
message_end( );
}
public plugin_precache() {
precache_model("models/player/vip_ct/vip_ct.mdl")
precache_model("models/player/vip_t/vip_t.mdl")
return PLUGIN_CONTINUE
}
public resetModel(id, level, cid) {
if( get_user_flags(id) & read_flags(ACCES) ) {
new CsTeams:userTeam = cs_get_user_team(id)
if (userTeam == CS_TEAM_T) {
cs_set_user_model(id, "vip_t")
}
else if(userTeam == CS_TEAM_CT) {
set_user_rendering(id,kRenderFxGlowShell,0,176,255,kRenderFxNone,0)
cs_set_user_model(id, "vip_ct")
}
else {
cs_reset_user_model(id)
}
}
return PLUGIN_CONTINUE
}
public check_acces(id){
if(!is_user_alive(id))
return PLUGIN_HANDLED;
if(limita[id] == 1){
ColorChat(id,GREEN,"[Furien VIP]^x01 Ai folosit deja meniul");
return PLUGIN_HANDLED;
}
if( get_user_flags(id) & read_flags(ACCES) )
furien_menu(id)
else
ColorChat(id,GREEN,"[Furien VIP]^x01 Nu ai acces la meniu");
return PLUGIN_CONTINUE
}
public furien_menu(id){
new menu = menu_create( "Furien VIP Menu", "menu_handler" )
menu_additem(menu, "GRAVITATIE", "1", 0)
menu_additem(menu, "INVIZIBILITATE", "2", 0)
menu_additem(menu, "M4A1 + DEAGLE", "3", 0)
menu_additem(menu, "AK47 + DEAGLE", "4", 0)
menu_additem(menu, "HEGRENADE + FLASHBANG", "5", 0)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
public menu_handler ( id, menu, item ) {
if( item == MENU_EXIT )
{
return 1
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key)
{
case 1:{
ColorChat(id,GREEN,"[Furien VIP]^x01 Acum poti sari mai tare");
set_user_gravity(id,0.7)
limita[id] += 1
}
case 2:{
ColorChat(id,GREEN,"[Furien VIP]^x01 Acum esti 100% invizibil");
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0);
limita[id] += 1
}
case 3:{
ColorChat(id,GREEN,"[Furien VIP]^x01 Ai primit M4A1 + DEAGLE");
give_item(id, "weapon_m4a1");
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_M4A1, 90);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
limita[id] += 1
}
case 4:{
ColorChat(id,GREEN,"[Furien VIP]^x01 Ai primit AK47 + DEAGLE");
give_item(id, "weapon_ak47");
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_AK47, 90);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
limita[id] += 1
}
case 5:{
ColorChat(id,GREEN,"[Furien VIP]^x01 Ai primit 2 Flashuri + 1 HE");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_hegrenade");
limita[id] += 1
}
}
menu_destroy(menu);
return 1
}[/sursa]
[b]Includeul folosit:[/b]
[sursa=colorchat.inc]/* Fun functions
*
* by Numb
*
* This file is provided as is (no warranties).
*/
enum Color
{
NORMAL = 1, // clients scr_concolor cvar color
GREEN, // Green Color
TEAM_COLOR, // Red, grey, blue
GREY, // grey
RED, // Red
BLUE, // Blue
}
new TeamName[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
static 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);
// Make sure message is not longer than 192 character. Will crash the server.
message[192] = '^0';
static 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, TeamName[team]);
}
}
ShowColorMessage(id, type, message[])
{
message_begin(type, get_user_msgid("SayText"), _, id);
write_byte(id)
write_string(message);
message_end();
}
Team_Info(id, type, team[])
{
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, TeamName[1]);
}
case BLUE:
{
return Team_Info(index, type, TeamName[2]);
}
case GREY:
{
return Team_Info(index, type, TeamName[0]);
}
}
return 0;
}
FindPlayer()
{
static i;
i = -1;
while(i <= get_maxplayers())
{
if(is_user_connected(++i))
{
return i;
}
}
return -1;
}
woken- FONDATOR
- Data de inscriere : 01/06/2012
Mesaje : 637
Varsta : 25
Pagina 1 din 1
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum
|
|