Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Плагин Vip. флаги.

Статус пользователя CTpeJIok^^
сообщение 18.4.2011, 22:54
Сообщение #1
Стаж: 15 лет

Сообщений: 35
Благодарностей: 1
Полезность: 22

Подскажите кто нибудь где тут нужно прописать флаги кому дать vip а кому нет. ADMIN_LEVEL_ вот это кажется нужно чтобы кому нибудь дать Vip


*.sma
Код
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <xs>
#include <engine>

#define FLAG ADMIN_IMMUNITY

new const VIP[] = "DeathRunVip"
new const VIP_MODEL[] = "models/player/DeathRunVip/DeathRunVip.mdl"

new const MENU_POPUP[] = "misc/DeathRunVip/vip_menu_popup.wav"
new const MENU_OK[] = "misc/DeathRunVip/vip_menu_ok.wav"
new const VIP_CONNECT[] = "misc/DeathRunVip/vip_connect.wav"

#define TASKID_SHOWHUD 2931
#define TASKID_MODEL 3810

new player_model[33][32]
new Float: g_counter
new bool: g_model[33]
new g_hudsync
new cvar_gravity
new cvar_speed
new SayTxT

new gCylinderSprite;

public plugin_precache()
{
precache_model(VIP_MODEL)
precache_sound(VIP_CONNECT)

precache_sound(MENU_POPUP)
precache_sound(MENU_OK)

gCylinderSprite = precache_model( "sprites/shockwave.spr" );
}

public plugin_init()
{
register_plugin("Deathrun V.I.P", "1.0", "DoviuX")

cvar_gravity = register_cvar("dr_vip_gravity", "500")
cvar_speed = register_cvar("dr_vip_speed", "500")

RegisterHam(Ham_Spawn, "player", "bacon_spawn", 1)
register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")

g_hudsync = CreateHudSyncObj()
SayTxT = get_user_msgid("SayText");
}

public client_connect(client)
{
if(get_user_flags(client) & FLAG)
{
client_cmd(client, "spk %s", VIP_CONNECT)

new name[32];
get_user_name(client, name, 31);
set_hudmessage( 0, 255, 0, -1.0, 0.29, 0, 6.0, 12.0 );
show_hudmessage( 0, "Vip %s присоединился к серверу!.", name);
}
}

public bacon_spawn(id)
{
if (!is_user_alive(id))
return

static CsTeams: team; team = cs_get_user_team(id)

if (team == CS_TEAM_T && (get_user_flags(id) & FLAG))
{
set_task(2.0, "T_menu", id)

new iOrigin[ 3 ];
get_user_origin( id, iOrigin );

Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );
Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );
Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );

copy(player_model[id], 31, VIP)

new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);

if(!equal(currentmodel, player_model[id]))
{
Task_Model(id + TASKID_MODEL)
g_counter += 0.1;
}

if(!task_exists(TASKID_SHOWHUD + id))
set_task(0.2, "Task_ShowHUD", TASKID_SHOWHUD + id)

set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25)
}
else if (team == CS_TEAM_CT && (get_user_flags(id) & FLAG))
{
set_task(2.0, "CT_menu", id)

new iOrigin[ 3 ];
get_user_origin( id, iOrigin );

Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );
Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );
Create_BeamCylinder( iOrigin, 120, gCylinderSprite, 0, 0, 6, 16, 0, random( 0 ), random( 255 ), random( 0 ), 255, 0 );

copy(player_model[id], 31, VIP)

strip_user_weapons(id)
give_item(id, "weapon_knife")

new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);

if(!equal(currentmodel, player_model[id]))
{
Task_Model(id + TASKID_MODEL)
g_counter += 0.1;
}

if(!task_exists(TASKID_SHOWHUD + id))
set_task(0.2, "Task_ShowHUD", TASKID_SHOWHUD + id)

set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25)
}
}

public T_menu(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

client_cmd(id, "spk %s", MENU_POPUP)

new gmenu = menu_create("\y~::*V.I.P Меню*::~" , "Vip_Handler");
menu_additem(gmenu ,"\r255 \wЗдоровье", "1" , 0);
menu_additem(gmenu ,"\r255 \wБроня", "2" , 0);
menu_additem(gmenu ,"\wГравитация", "3" , 0);
menu_additem(gmenu ,"\wСкорость", "4" , 0);
menu_additem(gmenu ,"\wDeagle с \r2 патронами", "5" , 0);
menu_additem(gmenu ,"\wHE граната", "6" , 0);
menu_additem(gmenu ,"\wНочное Видение (\rДля темных карт\w)", "7" , 0);

menu_setprop(gmenu , MPROP_EXIT , MEXIT_ALL);

menu_display(id , gmenu , 0);

return PLUGIN_CONTINUE
}

public CT_menu(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

client_cmd(id, "spk %s", MENU_POPUP)

new gmenu = menu_create("\y~::*V.I.P Меню*::~" , "VipCt_Handler");
menu_additem(gmenu ,"\r255 \wЗдоровье", "1" , 0);
menu_additem(gmenu ,"\r255 \wБроня", "2" , 0);
menu_additem(gmenu ,"\wГравитация", "3" , 0);
menu_additem(gmenu ,"\wСкорость", "4" , 0);
menu_additem(gmenu ,"\wHE граната", "5" , 0);
menu_additem(gmenu ,"\wНочное Видение (\rДля темных карт\w)", "6" , 0);

menu_setprop(gmenu , MPROP_EXIT , MEXIT_ALL);

menu_display(id , gmenu , 0);

return PLUGIN_CONTINUE
}

public Vip_Handler(id, gmenu, item, player)
{
if (item == MENU_EXIT)
{
menu_destroy(gmenu)
return PLUGIN_HANDLED
}

new data[6], iName[64]
new access, callback
menu_item_getinfo(gmenu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:
{
client_cmd(id, "spk %s", MENU_OK)

set_user_health(id, 255)
client_printcolor(player, "/g[V.I.P]/y: Вы получили /w255 /gздоровье!")
}

case 2:
{
client_cmd(id, "spk %s", MENU_OK)

set_user_armor(id, 255)
client_printcolor(player, "/g[V.I.P]/y: Вы получили /w255 /gброню!")
}

case 3:
{
client_cmd(id, "spk %s", MENU_OK)

new Float: gravity
gravity = get_pcvar_float(cvar_gravity) / 800

set_user_gravity(id, gravity)
client_printcolor(player, "/g[V.I.P]/y: Вы получили /gгравитацию!")
}

case 4:
{
new Float: speed
speed = get_pcvar_float(cvar_speed)

client_cmd(id, "spk %s", MENU_OK)

set_user_maxspeed(id, speed)
client_printcolor(player, "/g[V.I.P]/y: Вы получили /gскорость!")
}

case 5:
{
give_item(id, "weapon_deagle")

new weapon_id = find_ent_by_owner(-1, "weapon_deagle", id);
if(weapon_id)
{
cs_set_weapon_ammo(weapon_id, 2);
}

client_cmd(id, "spk %s", MENU_OK)

client_printcolor(player, "/g[V.I.P]/y: Вы получили deagle с /g2 /yпулями!")
}

case 6:
{
give_item(id, "weapon_hegrenade")

client_cmd(id, "spk %s", MENU_OK)

client_printcolor(player, "/g[V.I.P]/y: Вы получили /wосколочную /gHЕ /yГранату!")
}

case 7:
{
cs_set_user_nvg(id)

client_cmd(id, "spk %s", MENU_OK)

client_printcolor(player, "/g[V.I.P]/y: Вы получили ночное видение!")
}
}
menu_destroy(gmenu)
return PLUGIN_HANDLED;
}

public VipCt_Handler(id, gmenu, item, player)
{
if (item == MENU_EXIT)
{
menu_destroy(gmenu)
return PLUGIN_HANDLED
}

new data[6], iName[64]
new access, callback
menu_item_getinfo(gmenu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:
{
client_cmd(id, "spk %s", MENU_OK)

set_user_health(id, 255)
client_printcolor(player, "/g[V.I.P]/y: Вы получили /w255 /gздоровье!")
}

case 2:
{
client_cmd(id, "spk %s", MENU_OK)

set_user_armor(id, 255)
client_printcolor(player, "/g[V.I.P]/y: Вы получили /w255 /gброню!")
}

case 3:
{
client_cmd(id, "spk %s", MENU_OK)

new Float: gravity
gravity = get_pcvar_float(cvar_gravity) / 800

set_user_gravity(id, gravity)
client_printcolor(player, "/g[V.I.P]/y: Вы получили /gгравитацию!")
}

case 4:
{
new Float: speed
speed = get_pcvar_float(cvar_speed)

client_cmd(id, "spk %s", MENU_OK)

set_user_maxspeed(id, speed)
client_printcolor(player, "/g[V.I.P]/y: Вы получили /gскорость!")
}

case 5:
{
give_item(id, "weapon_hegrenade")

client_cmd(id, "spk %s", MENU_OK)

client_printcolor(player, "/g[V.I.P]/y: Вы получили /wосколочную /gHЕ /yГранату!")
}

case 6:
{
cs_set_user_nvg(id)

client_cmd(id, "spk %s", MENU_OK)

client_printcolor(player, "/g[V.I.P]/y: Вы получили ночное видение!")
}
}
menu_destroy(gmenu)
return PLUGIN_HANDLED;
}

public Task_ShowHUD(task)
{
new id = task - TASKID_SHOWHUD

if(!is_user_alive(id))
return PLUGIN_HANDLED

static health, armour
health = get_user_health(id)
armour = get_user_armor(id)

set_hudmessage(150, 150, 150, 0.40, 0.92, 0, 0.0, 0.3, 0.0, 0.0)
ShowSyncHudMsg(id, g_hudsync , ".::*Здоровье: %d -|V.I.P|- Броня: %d*::.", health, armour)

set_task(0.1, "Task_ShowHUD", TASKID_SHOWHUD + id)

return PLUGIN_CONTINUE
}

public client_PreThink(id)
{
if(is_user_alive(id))
{
if(get_user_flags(id) & FLAG)
{

new oldbuttons = get_user_oldbutton(id);


oldbuttons &= ~IN_JUMP;
entity_set_int(id, EV_INT_oldbuttons, oldbuttons);
}
}
}

public Task_Model(task)
{
new id = task - TASKID_MODEL

fm_set_user_model(id, player_model[id])
}

stock Create_BeamCylinder( origin[ 3 ], addrad, sprite, startfrate, framerate, life, width, amplitude, red, green, blue, brightness, speed )
{
message_begin( MSG_PVS, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[ 0 ] );
write_coord( origin[ 1 ] );
write_coord( origin[ 2 ] );
write_coord( origin[ 0 ] );
write_coord( origin[ 1 ] );
write_coord( origin[ 2 ] + addrad );
write_short( sprite );
write_byte( startfrate );
write_byte( framerate );
write_byte(life );
write_byte( width );
write_byte( amplitude );
write_byte( red );
write_byte( green );
write_byte( blue );
write_byte( brightness );
write_byte( speed );
message_end();
}

stock te_sprite(id, Float:origin[3], sprite, scale, brightness)
{
message_begin(MSG_ONE, SVC_TEMPENTITY, _, id)
write_byte(TE_SPRITE)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2]))
write_short(sprite)
write_byte(scale)
write_byte(brightness)
message_end()
}

stock normalize(Float:fIn[3], Float:fOut[3], Float:fMul)
{
new Float:fLen = xs_vec_len(fIn)
xs_vec_copy(fIn, fOut)

fOut[0] /= fLen, fOut[1] /= fLen, fOut[2] /= fLen
fOut[0] *= fMul, fOut[1] *= fMul, fOut[2] *= fMul
}

public fw_SetClientKeyValue(id, infobuffer, key[], value[])
{
if (g_model[id] && equal(key, "model"))
return FMRES_SUPERCEDE

return FMRES_IGNORED
}

public fw_ClientUserInfoChanged(id, infobuffer)
{
if (!g_model[id])
return FMRES_IGNORED

new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);

if(!equal(currentmodel, player_model[id]))
fm_set_user_model(id, player_model[id])

return FMRES_IGNORED
}

stock fm_set_user_model(player, modelname[])
{
engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)

g_model[player] = true
}

stock fm_get_user_model(player, model[], len)
{
engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}

stock fm_reset_user_model(player)
{
g_model[player] = false

dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
}

stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg,190,input,3);
replace_all(msg,190,"/g","^4");// green txt
replace_all(msg,190,"/y","^1");// orange txt
replace_all(msg,190,"/ctr","^3");// team txt
replace_all(msg,190,"/w","^0");// team txt
if (id) players[0] = id; else get_players(players,count,"ch");
for (new i = 0; i < count; i++)
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, SayTxT, _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Rejiser
сообщение 18.4.2011, 22:59
Сообщение #2


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Код
define FLAG ADMIN_IMMUNITY

ADMIN_IMMUNITY = flag "a"

//Под спойлер код спрячь
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя CTpeJIok^^
сообщение 19.4.2011, 12:04
Сообщение #3
Стаж: 15 лет

Сообщений: 35
Благодарностей: 1
Полезность: 22

Спасибо чувакк!)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CTpeJIok^^
сообщение 19.4.2011, 12:50
Сообщение #4
Стаж: 15 лет

Сообщений: 35
Благодарностей: 1
Полезность: 22

У меня проблема.Вот я написал все как вы сказали,переделал файл в кодировку UTF-8 без BOM.
Но не компилируется,ошибка((


DeathrunVip.sma(60) : warning 211: possibly unintended assignment
DeathrunVip.sma(60) : error 022: must be lvalue (non-constant)
DeathrunVip.sma(60) : error 017: undefined symbol "flag"
DeathrunVip.sma(60) : error 029: invalid expression, assumed zero
DeathrunVip.sma(60) : fatal error 107: too many error messages on one line
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя CTpeJIok^^
сообщение 19.4.2011, 13:15
Сообщение #5
Стаж: 15 лет

Сообщений: 35
Благодарностей: 1
Полезность: 22

= flag "a" - Я вот это писал сразу после строчки define FLAG ADMIN_IMMUNITY ошибка
Потом писал ADMIN_IMMUNITY = flag "a" снизу,то есть под define FLAG ADMIN_IMMUNITY все равно не компилируется((
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 19.4.2011, 14:07
Сообщение #6


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Цитата(CTpeJIok^^ @ 19.4.2011, 15:15) *
= flag "a" - Я вот это писал сразу после строчки define FLAG ADMIN_IMMUNITY ошибка
Потом писал ADMIN_IMMUNITY = flag "a" снизу,то есть под define FLAG ADMIN_IMMUNITY все равно не компилируется((

обоже, ADMIN_IMMUNITY - это и есть флаг A
Список флагов

#define ADMIN_ALL 0 /* everyone */
#define ADMIN_IMMUNITY (1<<0) /* flag "a" */
#define ADMIN_RESERVATION (1<<1) /* flag "b" */
#define ADMIN_KICK (1<<2) /* flag "c" */
#define ADMIN_BAN (1<<3) /* flag "d" */
#define ADMIN_SLAY (1<<4) /* flag "e" */
#define ADMIN_MAP (1<<5) /* flag "f" */
#define ADMIN_CVAR (1<<6) /* flag "g" */
#define ADMIN_CFG (1<<7) /* flag "h" */
#define ADMIN_CHAT (1<<8) /* flag "i" */
#define ADMIN_VOTE (1<<9) /* flag "j" */
#define ADMIN_PASSWORD (1<<10) /* flag "k" */
#define ADMIN_RCON (1<<11) /* flag "l" */
#define ADMIN_LEVEL_A (1<<12) /* flag "m" */
#define ADMIN_LEVEL_B (1<<13) /* flag "n" */
#define ADMIN_LEVEL_C (1<<14) /* flag "o" */
#define ADMIN_LEVEL_D (1<<15) /* flag "p" */
#define ADMIN_LEVEL_E (1<<16) /* flag "q" */
#define ADMIN_LEVEL_F (1<<17) /* flag "r" */
#define ADMIN_LEVEL_G (1<<18) /* flag "s" */
#define ADMIN_LEVEL_H (1<<19) /* flag "t" */
#define ADMIN_MENU (1<<20) /* flag "u" */
#define ADMIN_ADMIN (1<<24) /* flag "y" */
#define ADMIN_USER (1<<25) /* flag "z" */
#define FLAG_KICK (1<<0) /* flag "a" */
#define FLAG_TAG (1<<1) /* flag "b" */
#define FLAG_AUTHID (1<<2) /* flag "c" */
#define FLAG_IP (1<<3) /* flag "d" */
#define FLAG_NOPASS (1<<4) /* flag "e" */
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя CTpeJIok^^
сообщение 19.4.2011, 14:35
Сообщение #7
Стаж: 15 лет

Сообщений: 35
Благодарностей: 1
Полезность: 22

Балин вот дурак а)
Спасибо)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: