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

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

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

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

[переделать] Knife mod

magis1337
сообщение 22.2.2015, 23:15
Сообщение #1
Стаж: 11 лет
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

Доброй ночи вcем, и всех с праздником
Тут хочу поставить данный плагин, но у меня knife dm
и плагин работает по раундам. То есть 1 раз в один раунд, помогите сделать пожалуйста, что бы бесконечно выбор ножа было
И по возможности, переделать меню сервера с G на say /knife
Заранее спасибо;)

Скрытый текст
Код:
F/*
#include < amxmodx >
#include < fun >
#include < engine >
#include < cstrike >
#include < fakemeta >
#include < hamsandwich >
#include < dhudmessage >

#define PLUGIN "[ MOD ] Knife"
#define VERSION "1.2"
#define AUTHOR "Opo4uMapy"

#define ID_FBURN (taskid - 100)

new const Menu[][] =
{
"",
"MENU_SERVER_SHOP",
"MENU_SERVER_KNIFE"
};
new const Menu_shop[][] =
{
"",
"MENU_SHOP_GRENADE",
"MENU_SHOP_HEALTH"
};
new const Menu_Knife[][] =
{
"",
"KNIFE_MENU_SPEED",
"KNIFE_MENU_GRAVITY",
"KNIFE_MENU_DAMAGE",
"KNIFE_MENU_DOUBLE_JUMP",
"KNIFE_MENU_VIP",
"KNIFE_MENU_ADMIN"
};

new const MODEL_KNIFE_V[][] = //V models knife
{
"models/knifemod/v_strong.mdl", //Speed
"models/knifemod/v_axe.mdl", //Gravity
"models/knifemod/v_skullaxe.mdl", //Damage
"models/knifemod/v_katana.mdl", //Double Jump
"models/knifemod/v_fire_knife.mdl", //ADMIN
"models/knifemod/v_ice_knife.mdl" //VIP
};
new const MODEL_KNIFE_P[][] = //P models knife
{
"models/knifemod/p_strong.mdl", //Speed
"models/knifemod/p_axe.mdl", //Gravity
"models/knifemod/p_skullaxe.mdl", //Damage
"models/knifemod/p_katana.mdl", //Double Jump
"models/knifemod/p_fire_knife.mdl", //ADMIN
"models/knifemod/p_ice_knife.mdl" //VIP
};
new const g_SpriteGlasses[] = "models/glassgibs.mdl";
/////////////////////////////////////////////WeaponList//////////////////////////////////////////////////
#define WEAPONLIST_KNIFE //WeaponList ("//" - no)

#if defined WEAPONLIST_KNIFE
new WeaponList[][] =
{
"weapon_strong",
"weapon_axe",
"weapon_skullaxe",
"weapon_katana",
"weapon_mastercombat"
};

new WeaponList_sprites[][] =
{
"sprites/640hud13.spr",
"sprites/640hud7.spr",
"sprites/640hud24.spr",
"sprites/640hud38.spr",
"sprites/640hud69.spr",
"sprites/640hud25.spr",
"sprites/640hud72.spr",
"sprites/640hud40.spr"
};
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//Cvars knife mod
new Knockback[] =
{
0, //Kockback knife 1 (0 - off) (Speed)
0, //Kockback knife 2 (0 - off) (Gravity)
0, //Kockback knife 3 (0 - off) (Damage)
0, //Kockback knife 4 (0 - off) (Double Jump)
5, //Kockback knife 5 (0 - off) (VIP)
3 //Kockback knife 5 (0 - off) (ADMIN)
};

const VIP_FLAG = ADMIN_BAN; //VIP Flag
const ADMIN_FLAG = ADMIN_KICK; //ADMIN Flag

const LIMIT_ADMIN = 150000; //LIMIT_ADMIN
const LIMIT_VIP = 100000; //LIMIT VIP
const LIMIT_USER = 50000; //LIMIT_USER


///#define MONEY_DAMAGE //Give money for damage ("//" - no)
//#define MONEY_KILL //Give money for kill ("//" - no)


#define NVAULT
//#define MYSQL

//Cvars knife
const Float:Knife_speed = 400.0; //Speed knife
const Knife_gravity = 300; //Gravity knife
const Float:Knife_damage = 3.0; //Damage multiplier knife
const Float:Knife_damage_speed = 180.0; //Speed knife damage

//Cvars knife VIP
const Float:Knife_vip_speed = 400.0; //Speed knife VIP
const Knife_vip_gravity = 300; //Gravity knife VIP
const Float:TIME_FREEZE = 6.0; //Time Freeze
const TIME_WAIT_FREEZE = 8; //Time freez wait

//Cvars knife vip
const Float:Knife_admin_speed = 400.0; //Speed knife ADMIN
const Knife_admin_gravity = 300; //Gravity knife ADMIN
const FIRE_DAMAGE = 5; //Damage fire
const FIRE_DURATION = 6; //Fire duration
const TIME_WAIT_FIRE = 8; //Time fire wite

//Cvars Shop
const cost_grenade = 2000; //Cost Grenade
const cost_health = 5000; //Cost health

//Variables
new money[33], g_knife[33][sizeof Menu_Knife];
new g_flameSpr, g_smokeSpr;
new g_burning_duration[33];
new bool:g_fRoundEnd;
new sTwoJump[33], Jump[33], DoJump[33];
#if defined NVAULT
#include < nvault >
new g_vault_knife, g_vault_money;
#endif
#if defined MYSQL
#include < mysql >
new Handle:MYSQL_Tuple
new Handle:MYSQL_Connect
new MYSQLActive, g_Access[33]
#endif
new g_Cvar[7];
new g_primaryattack[33], g_secondaryattack[33];
new g_frozen[33], g_SpriteGlass;
new g_fire_wait[33], g_freeze_wait[33];
new g_knife_round[33], fire_time[33], freeze_time[33]
new g_syncHudMessage1
new g_syncHudMessage2

public plugin_init()
{
//Authors
register_plugin(PLUGIN, VERSION, AUTHOR);

//Mysql / nVault
#if defined NVAULT
g_vault_money = nvault_open("Money");
g_vault_knife = nvault_open("Knife");
#endif

#if defined MYSQL
g_Cvar[1] = register_cvar("test_mysql_hostname", "127.0.0.1") //Хост
g_Cvar[2] = register_cvar("test_mysql_username", "root") //Пользователь
g_Cvar[3] = register_cvar("test_mysql_password", "vertrigo") //Пароль
g_Cvar[4] = register_cvar("test_mysql_database", "test") //База
set_task(1.0, "MYSQL_Load")
#endif

//Save type
g_Cvar[0] = register_cvar("save", "0") // 0-Steam, 1 - Name, 2 - IP

//Event
register_event("CurWeapon", "CurWeapon", "be", "1=1");
register_logevent("Round_End", 2, "1=Round_End");
register_logevent("Round_Start", 2, "1=Round_Start");

//Message
#if defined WEAPONLIST_KNIFE
register_message(get_user_msgid("WeapPickup"), "message_weappickup");
#endif

//Forward
register_forward(FM_CmdStart, "fw_cmdstart");
register_forward(FM_PlayerPreThink, "TwoJump");
register_forward(FM_UpdateClientData, "fw_updateclientdata_post", 1);
register_forward(FM_PlayerPostThink, "PostTwoJump");

//Ham
RegisterHam(Ham_Spawn, "player", "SpawnPlayer", 1);
RegisterHam(Ham_Killed, "player", "KilledPlayer");
RegisterHam(Ham_TakeDamage, "player", "DamagePlayer");

//Lang
register_dictionary("knifemod.txt");

//Clcmd (MENU)
register_clcmd("drop", "drop")

for(new i = 0; i < (sizeof WeaponList); i++)
{
new Text[32]
formatex(Text, 31, "%s", WeaponList[i])
if(!(equal(Text, "weapon_knife")))
{
register_clcmd(Text, "knife_hook")
}
}

g_syncHudMessage1 = CreateHudSyncObj();
g_syncHudMessage2 = CreateHudSyncObj();

}
public Round_Start()
{
new Players[32];
new Num, Player;

get_players(Players, Num);

for(new i; i < Num; i++)
{
Player = Players[i];

if(!is_user_alive(Player) || !is_user_connected(Player) || cs_get_user_team(Player) == CS_TEAM_SPECTATOR)
continue;

Refresh_Money(Player);
g_knife_round[Player] = false;
}
}
public knife_hook(id)
{
client_cmd( id, "weapon_knife" )
return PLUGIN_HANDLED
}
#if defined MYSQL
public MYSQL_Load()
{
new Hostname[30], Username[30], Password[30], Database[30]
new Error[512], Err

get_pcvar_string(g_Cvar[1], Hostname, charsmax( Hostname ))
get_pcvar_string(g_Cvar[2], Username, charsmax( Username ))
get_pcvar_string(g_Cvar[3], Password, charsmax( Password ))
get_pcvar_string(g_Cvar[4], Database, charsmax( Database ))

MYSQL_Tuple = SQL_MakeDbTuple(Hostname, Username, Password, Database)
MYSQL_Connect= SQL_Connect(MYSQL_Tuple, Err, Error, charsmax( Error ))

if(MYSQL_Connect == Empty_Handle)
set_fail_state( Error )

MYSQLActive = true
}

public PlayerCheck(id)
{
if(!g_Access[id])
Reg(id)

if(!MYSQLActive)
set_task(1.0, "PlayerCheck", id)

new Error[512]
new Name[32], MYSQLName[32]
new IP[32], MYSQLIP[32]
new SteamID[32], MYSQLSteamID[32]

new Handle:Select = SQL_PrepareQuery(MYSQL_Connect, "SELECT * FROM players")

if(!SQL_Execute(Select)) //Если ответ не пришел
{
SQL_QueryError(Select, Error, charsmax( Error ))
set_fail_state( Error )
}

get_user_name(id, Name, charsmax( Name ))
get_user_ip(id, IP, charsmax( IP ), 1)
get_user_authid(id, SteamID, charsmax( SteamID ))

while(SQL_MoreResults(Select))
{
if(get_pcvar_num( g_Cvar[0] ) == 1)
{
SQL_ReadResult(Select, 1, MYSQLName, charsmax( MYSQLName ))

if(equal(MYSQLName, Name))
{
g_knife[id][0] = SQL_ReadResult(Select, 4)
g_knife[id][1] = SQL_ReadResult(Select, 5)
g_knife[id][2] = SQL_ReadResult(Select, 6)
g_knife[id][3] = SQL_ReadResult(Select, 7)
g_knife[id][4] = SQL_ReadResult(Select, 8)
g_knife[id][5] = SQL_ReadResult(Select, 9)
money[id] = SQL_ReadResult(Select, 10)

g_Access[id] = true
break
}else{
SQL_NextRow(Select)
}
}else
if(get_pcvar_num( g_Cvar[0] ) == 2)
{
SQL_ReadResult(Select, 2, MYSQLSteamID, charsmax( MYSQLSteamID ))

if(equal(MYSQLSteamID, SteamID))
{
g_knife[id][0] = SQL_ReadResult(Select, 4)
g_knife[id][1] = SQL_ReadResult(Select, 5)
g_knife[id][2] = SQL_ReadResult(Select, 6)
g_knife[id][3] = SQL_ReadResult(Select, 7)
g_knife[id][4] = SQL_ReadResult(Select, 8)
g_knife[id][5] = SQL_ReadResult(Select, 9)
money[id] = SQL_ReadResult(Select, 10)

g_Access[id] = true
break
}else{
SQL_NextRow(Select)
}
}else
if(get_pcvar_num( g_Cvar[0] ) == 3)
{
SQL_ReadResult(Select, 3, MYSQLIP, charsmax( MYSQLIP ))

if(equal(MYSQLIP, IP))
{
g_knife[id][0] = SQL_ReadResult(Select, 4)
g_knife[id][1] = SQL_ReadResult(Select, 5)
g_knife[id][2] = SQL_ReadResult(Select, 6)
g_knife[id][3] = SQL_ReadResult(Select, 7)
g_knife[id][4] = SQL_ReadResult(Select, 8)
g_knife[id][5] = SQL_ReadResult(Select, 9)
money[id] = SQL_ReadResult(Select, 10)

g_Access[id] = true
break //заканчиваем цикл
}else{
SQL_NextRow(Select)
}
}
}
}

public Reg(id)
{
if(!g_Access[id]) //если игрока нет в базе
{
new Name[32] //Имя
new IP[32] //Им
new SteamID[32] //Стим
new Error[512] //массив ошибок

get_user_name(id, Name, charsmax( Name ))
get_user_ip(id, IP, charsmax( IP ), 1)
get_user_authid(id, SteamID, charsmax( SteamID ))

new Handle:Select = SQL_PrepareQuery(MYSQL_Connect, "INSERT INTO `players` (`nickname`, `ip`, `steamid`, `knife1`, `knife2`, `knife3`, `knife4`, `knife5`, `knife6`, `money`) VALUES ('%s', '%s', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d');", Name, IP, SteamID, g_knife[id][0], g_knife[id][1], g_knife[id][2], g_knife[id][3], g_knife[id][4], g_knife[id][5], money[id])

if(!SQL_Execute(Select))
{
SQL_QueryError(Select, Error, charsmax( Error ))
set_fail_state(Error)
}
}
return PLUGIN_HANDLED
}

public Save(id)
{
if(g_Access[id]) //Если игрок в базе
{
new Name[32]
new IP[32]
new SteamID[32]
new Error[512]

get_user_name(id, Name, charsmax( Name ))
get_user_ip(id, IP, charsmax( IP ), 1)
get_user_authid(id, SteamID, charsmax( SteamID ))

if(get_pcvar_num( g_Cvar[0] ) == 1)
{
new Handle:Select = SQL_PrepareQuery(MYSQL_Connect, "UPDATE `players` SET `knife1` = '%d', `knife2` = '%d', `knife3` = '%d', `knife4` = '%d', `knife5` = '%d', `knife6` = '%d', `money` = '%d' WHERE `players`.`nickname` = '%s';", g_knife[id][0], g_knife[id][1], g_knife[id][2], g_knife[id][3], g_knife[id][4], g_knife[id][5], money[id], Name)

if(!SQL_Execute(Select))
{
SQL_QueryError(Select, Error, charsmax( Error ))
set_fail_state( Error )
}
}else
if(get_pcvar_num( g_Cvar[0] ) == 2)
{
new Handle:Select = SQL_PrepareQuery(MYSQL_Connect, "UPDATE `players` SET `knife1` = '%d', `knife2` = '%d', `knife3` = '%d', `knife4` = '%d', `knife5` = '%d', `knife6` = '%d', `money` = '%d' WHERE `players`.`ip` = '%s';", g_knife[id][0], g_knife[id][1], g_knife[id][2], g_knife[id][3], g_knife[id][4], g_knife[id][5], money[id], IP)

if(!SQL_Execute(Select))
{
SQL_QueryError(Select, Error, charsmax( Error ))
set_fail_state( Error )
}
}else
if(get_pcvar_num( g_Cvar[0] ) == 3)
{
new Handle:Select = SQL_PrepareQuery(MYSQL_Connect, "UPDATE `players` SET `knife1` = '%d', `knife2` = '%d', `knife3` = '%d', `knife4` = '%d', `knife5` = '%d', `knife6` = '%d', `money` = '%d' WHERE `players`.`steamid` = '%s';", g_knife[id][0], g_knife[id][1], g_knife[id][2], g_knife[id][3], g_knife[id][4], g_knife[id][5], money[id], SteamID)

if(!SQL_Execute(Select))
{
SQL_QueryError(Select, Error, charsmax( Error ))
set_fail_state( Error )
}
}
}
else
{
Reg(id)
}
}
#endif
public Round_End()
{
new Players[32];
new Num, Player;

get_players(Players, Num);

for(new i; i < Num; i++)
{
Player = Players[i];

if(!is_user_alive(Player) || !is_user_connected(Player) || cs_get_user_team(Player) == CS_TEAM_SPECTATOR)
continue;

#if defined NVAULT
SaveData_money(Player);
#endif

#if defined MYSQL
Save(Player)
#endif
Refresh_Money(Player);
}
}
#if defined WEAPONLIST_KNIFE
public message_weappickup(msg_id, msg_dest, id)
{
if(!is_user_connected(id))
return;

if(get_msg_arg_int(1) == CSW_KNIFE)
{
if(g_knife[id][0])
UTIL_weaponlist(id, WeaponList[0]);
else if(g_knife[id][1])
UTIL_weaponlist(id, WeaponList[1]);
else if(g_knife[id][2])
UTIL_weaponlist(id, WeaponList[2]);
else if(g_knife[id][3])
UTIL_weaponlist(id, WeaponList[3]);
else if(g_knife[id][4])
UTIL_weaponlist(id, WeaponList[4]);
else if(g_knife[id][5])
UTIL_weaponlist(id, WeaponList[4]);
else
UTIL_weaponlist(id, "weapon_knife");
}
}
#endif
public client_disconnect(id)
{
#if defined NVAULT
SaveData_money(id);
SaveData_knife(id);
#endif
#if defined MYSQL
Save(id)
#endif
g_primaryattack[id] = 0;
g_secondaryattack[id] = 0;
remove_task(id);
remove_task(id + 1231263)
remove_task(id + 1233123)
g_fire_wait[id] = false;
g_freeze_wait[id] = false;
}

public client_connect(id)
{
#if defined MYSQL
if(!is_user_bot(id) || !is_user_hltv(id))
set_task(1.0, "PlayerCheck", id)
#endif

#if defined NVAULT
LoadData_money(id);
LoadData_knife(id);
#endif
set_task(1.0, "task_msg", id, _, _, "b");
}

public task_msg(id)
{
set_dhudmessage(0, 255, 0, 0.68, 0.0, 0, 6.0, 12.0);
show_dhudmessage(id, "%L", id, "DHUD_INFO");
}
public knife_attack(id)
{
if(!is_user_alive(id) || !g_knife[id][2] || get_user_weapon(id) != CSW_KNIFE)
return;

new knife = find_ent_by_owner(-1, "weapon_knife", id);

if(g_primaryattack[id])
{
ExecuteHam(Ham_Weapon_PrimaryAttack, knife);
g_primaryattack[id] = 2;

remove_task(id);

set_task(0.7, "knife_clear", id);
set_pdata_float(id, 83, 1.3, 4);
}
if(g_secondaryattack[id])
{
ExecuteHam(Ham_Weapon_SecondaryAttack, knife);

g_secondaryattack[id] = 2;

remove_task(id);

set_task(1.3, "knife_clear", id);
set_pdata_float(id, 83, 1.3, 4);
}
}

public fw_cmdstart(id, uc_handle, seed)
{
if(!is_user_alive(id) || !g_knife[id][2] || get_user_weapon(id) != CSW_KNIFE)
return FMRES_IGNORED;

new Float:flNextAttack = get_pdata_float(id, 83, 4);

if(g_primaryattack[id] || g_secondaryattack[id])
{
if(flNextAttack > 0.1)
return FMRES_IGNORED;

set_pdata_float(id, 83, 0.1, 4);

return FMRES_SUPERCEDE;
}

if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK) && !g_secondaryattack[id])
{
if(flNextAttack > 0.1)
return FMRES_IGNORED;

g_primaryattack[id] = 1;
g_secondaryattack[id] = 0;

util_playweaponanimation(id, 6);

remove_task(id);
set_task(1.0, "knife_attack", id);

set_pdata_float(id, 83, 1.0, 4);
return FMRES_IGNORED;
}

if((get_uc(uc_handle, UC_Buttons) & IN_ATTACK2) && !g_primaryattack[id])
{
if(flNextAttack > 0.1)
return FMRES_IGNORED;

g_primaryattack[id] = 0;
g_secondaryattack[id] = 1;

util_playweaponanimation(id, 4);

remove_task(id);
set_task(1.0,"knife_attack",id);

set_pdata_float(id, 83, 0.1, 4);
return FMRES_IGNORED;
}

return FMRES_IGNORED;
}

public fw_updateclientdata_post(Player, SendWeapons, CD_Handle)
{
if(!is_user_alive(Player) || (get_user_weapon(Player) != CSW_KNIFE) || !g_knife[Player][2])
return FMRES_IGNORED;

set_cd(CD_Handle, CD_flNextAttack, halflife_time() + 0.001 );

if(get_cd(CD_Handle, CD_WeaponAnim) != 7 && g_primaryattack[Player])
{
set_cd(CD_Handle, CD_WeaponAnim, 7);
return FMRES_SUPERCEDE;
}

if(get_cd(CD_Handle, CD_WeaponAnim) != 4 && g_secondaryattack[Player])
{
set_cd(CD_Handle, CD_WeaponAnim, 4);
return FMRES_SUPERCEDE;
}

return FMRES_HANDLED;
}

public knife_clear(id)
{
if(!is_user_alive(id) || !g_knife[id][2] || get_user_weapon(id) != CSW_KNIFE)
return;

remove_task(id);
g_primaryattack[id] = 0;
g_secondaryattack[id] = 0;
util_playweaponanimation(id, 0);
}
#if defined NVAULT
public SaveData_money(id)
{
new vaultkey[64], vaultdata[256];
if(get_pcvar_num(g_Cvar[0]) == 0)
{
new AuthID[35];
get_user_authid(id,AuthID,34);
format(vaultkey, 63, "%s-money",AuthID);
}
else if(get_pcvar_num(g_Cvar[0]) == 1)
{
new name[33];
get_user_name(id,name,32);

format(vaultkey, 63, "%s-/", name);
}
else if(get_pcvar_num(g_Cvar[0]) == 2)
{
new player_ip[33];
get_user_ip(id, player_ip, 32);

format(vaultkey, 63, "%s-/", player_ip);
}
format(vaultdata, 255, "%i#", money[id]);
nvault_set(g_vault_money, vaultkey, vaultdata);

return PLUGIN_CONTINUE;
}

public LoadData_money(id)
{
new vaultkey[64], vaultdata[256];
if(get_pcvar_num(g_Cvar[0]) == 0)
{
new AuthID[35];
get_user_authid(id,AuthID,34);
format(vaultkey, 63, "%s-money",AuthID);
}
else if(get_pcvar_num(g_Cvar[0]) == 1)
{
new name[33];
get_user_name(id,name,32);

format(vaultkey, 63, "%s-money", name);
}
else if(get_pcvar_num(g_Cvar[0]) == 2)
{
new player_ip[33];
get_user_ip(id, player_ip, 32);

format(vaultkey, 63, "%s-money", player_ip);
}
format(vaultdata, 255, "%i#", money[id]);

nvault_get(g_vault_money, vaultkey, vaultdata, 255);

replace_all(vaultdata, 255, "#", " ");

new mon[32];

parse(vaultdata, mon, 31) ;

money[id] = str_to_num(mon);

if(get_user_flags(id) & VIP_FLAG)
{
if (money[id] > LIMIT_VIP)
money[id] = LIMIT_VIP;
}
else if(get_user_flags(id) & ADMIN_FLAG)
{
if (money[id] > LIMIT_ADMIN)
money[id] = LIMIT_ADMIN;
}
else if(get_user_flags(id) & ADMIN_FLAG && get_user_flags(id) & VIP_FLAG)
{
if (money[id] > LIMIT_ADMIN)
money[id] = LIMIT_ADMIN;
}
else
{
if (money[id] > LIMIT_USER)
money[id] = LIMIT_USER;
}

return PLUGIN_CONTINUE;
}
public SaveData_knife(id) {
new vaultkey[64], vaultdata[256];
if(get_pcvar_num(g_Cvar[0]) == 0)
{
new AuthID[35];
get_user_authid(id,AuthID,34);
format(vaultkey, 63, "%s-knife",AuthID);
}
else if(get_pcvar_num(g_Cvar[0]) == 1)
{
new name[33];
get_user_name(id,name,32);

format(vaultkey, 63, "%s-knife", name);
}
else if(get_pcvar_num(g_Cvar[0]) == 2)
{
new player_ip[33];
get_user_ip(id, player_ip, 32);

format(vaultkey, 63, "%s-knife", player_ip);
}
format(vaultdata, 255, "%i#%i#%i#%i#%i#%i#", g_knife[id][0], g_knife[id][1], g_knife[id][2], g_knife[id][3], g_knife[id][4], g_knife[id][5]);
nvault_set(g_vault_knife, vaultkey, vaultdata);

return PLUGIN_CONTINUE;
}

public LoadData_knife(id)
{
new vaultkey[64], vaultdata[256];
if(get_pcvar_num(g_Cvar[0]) == 0)
{
new AuthID[35];
get_user_authid(id,AuthID,34);
format(vaultkey, 63, "%s-knife",AuthID);
}
else if(get_pcvar_num(g_Cvar[0]) == 1)
{
new name[33];
get_user_name(id,name,32);

format(vaultkey, 63, "%s-knife", name);
}
else if(get_pcvar_num(g_Cvar[0]) == 2)
{
new player_ip[33];
get_user_ip(id, player_ip, 32);

format(vaultkey, 63, "%s-knife", player_ip);
}
format(vaultdata, 255, "%i#%i#%i#%i#%i#%i#", g_knife[id][0], g_knife[id][1], g_knife[id][2], g_knife[id][3], g_knife[id][4], g_knife[id][5]);

nvault_get(g_vault_knife, vaultkey, vaultdata, 255);

replace_all(vaultdata, 255, "#", " ");

new knife[32], knifee[32], knifeee[32], knifeeee[32], knifeeeee[32], knifeeeeee[32];

parse(vaultdata, knife, 31, knifee, 31, knifeee, 31, knifeeee, 31, knifeeeee, 31, knifeeeeee, 31);

g_knife[id][0] = str_to_num(knife);
g_knife[id][1] = str_to_num(knifee);
g_knife[id][2] = str_to_num(knifeee);
g_knife[id][3] = str_to_num(knifeeee);
g_knife[id][4] = str_to_num(knifeeeee);
g_knife[id][5] = str_to_num(knifeeeeee);

return PLUGIN_CONTINUE;
}
#endif
public plugin_precache()
{
static i;
for(i = 0; i < sizeof(MODEL_KNIFE_V); i++)
precache_model(MODEL_KNIFE_V[i]);

for(i = 0; i < sizeof(MODEL_KNIFE_P); i++)
precache_model(MODEL_KNIFE_P[i]);

#if defined WEAPONLIST_KNIFE
for(i = 0; i < sizeof(WeaponList_sprites); i++)
precache_generic(WeaponList_sprites[i]);

g_SpriteGlass = precache_model(g_SpriteGlasses);

for(i = 0; i < sizeof(WeaponList); i++)
{
new Text[32];
formatex(Text, 31, "sprites/%s.txt", WeaponList[i]);
precache_generic(Text);
}
#endif

g_flameSpr = precache_model("sprites/flame.spr");
g_smokeSpr = precache_model("sprites/black_smoke3.spr");
}

public CurWeapon(id)
{
if(is_user_alive(id) && get_user_weapon(id) == CSW_KNIFE)
{
if(g_knife[id][0])
{
set_pev(id, pev_viewmodel2, MODEL_KNIFE_V[0]);
set_pev(id, pev_weaponmodel2, MODEL_KNIFE_P[0]);
sTwoJump[id] = false;
set_pev(id, pev_maxspeed, Knife_speed);
}
else if(g_knife[id][1])
{
set_pev(id, pev_viewmodel2, MODEL_KNIFE_V[1]);
set_pev(id, pev_weaponmodel2, MODEL_KNIFE_P[1]);
sTwoJump[id] = false;
}
else if(g_knife[id][2])
{
set_pev(id, pev_viewmodel2, MODEL_KNIFE_V[2]);
set_pev(id, pev_weaponmodel2, MODEL_KNIFE_P[2]);
sTwoJump[id] = false;
set_pev(id, pev_maxspeed, Knife_damage_speed);
g_primaryattack[id] = 0;
g_secondaryattack[id] = 0;
util_playweaponanimation(id, 3);
}
else if(g_knife[id][3])
{
set_pev(id, pev_viewmodel2, MODEL_KNIFE_V[3]);
set_pev(id, pev_weaponmodel2, MODEL_KNIFE_P[3]);
sTwoJump[id] = true;
}
else if(g_knife[id][4])
{
set_pev(id, pev_viewmodel2, MODEL_KNIFE_V[5]);
set_pev(id, pev_weaponmodel2, MODEL_KNIFE_P[5]);
set_pev(id, pev_maxspeed, Knife_admin_speed);
sTwoJump[id] = false;
}
else if(g_knife[id][5])
{
set_pev(id, pev_viewmodel2, MODEL_KNIFE_V[4]);
set_pev(id, pev_weaponmodel2, MODEL_KNIFE_P[4]);
set_pev(id, pev_maxspeed, Knife_vip_speed);
sTwoJump[id] = false;
}
}
if(g_frozen[id] && is_user_alive(id))
set_pev(id, pev_maxspeed, 00001.0);
}

public KnifeMenu(id)
{
if(!is_user_alive(id))
{
color_chat(id, "%L", id, "NO_ALIVE");
return PLUGIN_HANDLED;
}
if(g_knife_round[id])
{
color_chat(id, "%L", id, "KNIFE_MENU_BLOCK");
return PLUGIN_HANDLED;
}
new Item[512], Str[10];
if(g_knife[id][0])
formatex(Item, charsmax(Item), "%L \rSpeed", id, "KNIFE_MENU_NAME");
else if(g_knife[id][1])
formatex(Item, charsmax(Item), "%L \rGravity", id, "KNIFE_MENU_NAME");
else if(g_knife[id][2])
formatex(Item, charsmax(Item), "%L \rDamage", id, "KNIFE_MENU_NAME");
else if(g_knife[id][3])
formatex(Item, charsmax(Item), "%L \rDouble Jump", id, "KNIFE_MENU_NAME");
else if(g_knife[id][4])
formatex(Item, charsmax(Item), "%L \rVIP", id, "KNIFE_MENU_NAME");
else if(g_knife[id][5])
formatex(Item, charsmax(Item), "%L \rADMIN", id, "KNIFE_MENU_NAME");
else formatex(Item, charsmax(Item), "%L \rStandart knife", id, "KNIFE_MENU_NAME");
new menu = menu_create(Item, "menu_case");

for(new i = 1; i <= charsmax(Menu_Knife); i++)
{
num_to_str(i, Str, charsmax(Str));

formatex(Item, charsmax(Item), "%L", id, Menu_Knife[i]);
menu_additem(menu, Item, Str, 0);
}
formatex(Item, charsmax(Item), "%L", id, "MENU_EXIT");
menu_setprop(menu, MPROP_EXITNAME, Item);

menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}

public menu_case(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}

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

new key = str_to_num(data);

switch(key)
{
case 1:
{
g_knife[id][1] = false;
g_knife[id][2] = false;
g_knife[id][3] = false;
g_knife[id][4] = false;
g_knife[id][5] = false;
g_knife[id][0] = true;
UTIL_weaponlist(id, WeaponList[0]);
}
case 2:
{
g_knife[id][0] = false;
g_knife[id][2] = false;
g_knife[id][3] = false;
g_knife[id][4] = false;
g_knife[id][5] = false;
g_knife[id][1] = true;
UTIL_weaponlist(id, WeaponList[1]);
}
case 3:
{
g_knife[id][1] = false;
g_knife[id][0] = false;
g_knife[id][3] = false;
g_knife[id][4] = false;
g_knife[id][5] = false;
g_knife[id][2] = true;
UTIL_weaponlist(id, WeaponList[2]);
}
case 4:
{
g_knife[id][0] = false;
g_knife[id][1] = false;
g_knife[id][2] = false;
g_knife[id][4] = false;
g_knife[id][5] = false;
g_knife[id][3] = true;
sTwoJump[id] = true;
UTIL_weaponlist(id, WeaponList[3]);
}
case 5:
{
if(get_user_flags(id) & VIP_FLAG)
{
g_knife[id][0] = false;
g_knife[id][1] = false;
g_knife[id][2] = false;
g_knife[id][3] = false;
g_knife[id][5] = false;
g_knife[id][4] = true;
UTIL_weaponlist(id, WeaponList[4]);
}
else
{
color_chat(id, "%L", id, "NO_KNIFE");
}
}
case 6:
{
if(get_user_flags(id) & ADMIN_FLAG)
{
g_knife[id][0] = false;
g_knife[id][1] = false;
g_knife[id][2] = false;
g_knife[id][3] = false;
g_knife[id][4] = false;
g_knife[id][5] = true;
UTIL_weaponlist(id, WeaponList[4]);
}
else
{
color_chat(id, "%L", id, "NO_KNIFE");
}
}
}
g_knife_round[id] = true;
CurWeapon(id);
#if defined NVAULT
SaveData_knife(id);
#endif
#if defined MYSQL
Save(id)
#endif
return PLUGIN_HANDLED;
}
public ShopMenu(id)
{
if(!is_user_alive(id))
{
color_chat(id, "%L", id, "NO_ALIVE");
return PLUGIN_HANDLED_MAIN;
}
new Item[512], Str[10];
formatex(Item, charsmax(Item), "%L", id, "MENU_SHOP_NAME", money[id]);
new menu = menu_create(Item, "menu_shop");

for(new i = 1; i <= charsmax(Menu_shop); i++)
{
num_to_str(i, Str, charsmax(Str));

formatex(Item, charsmax(Item), "%L", id, Menu_shop[i]);
menu_additem(menu, Item, Str, 0);
}
formatex(Item, charsmax(Item), "%L", id, "MENU_EXIT");
menu_setprop(menu, MPROP_EXITNAME, Item);

menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}

public menu_shop(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}

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

new key = str_to_num(data);

switch(key)
{
case 1:
{
if(money[id] < cost_grenade)
return PLUGIN_HANDLED;

fm_give_item(id, "weapon_hegrenade");
money[id] -= cost_grenade;
}
case 2:
{
if(money[id] < cost_health || get_user_health(id) >= 100)
return PLUGIN_HANDLED;

set_pev(id, pev_health, 100.0);
money[id] -= cost_health;
}
}
#if defined NVAULT
SaveData_money(id);
#endif
#if defined MYSQL
Save(id)
#endif
ShopMenu(id);
Refresh_Money(id);
return PLUGIN_HANDLED;
}
public Menu_server(id)
{
new Item[512], Str[10];
formatex(Item, charsmax(Item), "%L", id, "MENU_SERVER_NAME");
new menu = menu_create(Item, "menu_server");

for(new i = 1; i <= charsmax(Menu); i++)
{
num_to_str(i, Str, charsmax(Str));

formatex(Item, charsmax(Item), "%L", id, Menu[i]);
menu_additem(menu, Item, Str, 0);
}
formatex(Item, charsmax(Item), "%L", id, "MENU_EXIT");
menu_setprop(menu, MPROP_EXITNAME, Item);

menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}

public menu_server(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}

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

new key = str_to_num(data);

switch(key)
{
case 1:
{
ShopMenu(id);
}
case 2:
{
if(is_user_alive(id))
KnifeMenu(id);
}
}
return PLUGIN_HANDLED;
}
public SpawnPlayer(id)
{
if(is_user_alive(id))
{
#if defined NVAULT
LoadData_knife(id);
LoadData_money(id);
#endif
Refresh_Money(id);
}
}

public KilledPlayer(victim, attacker)
{
if(!is_user_connected(attacker))
return HAM_IGNORED;

g_fire_wait[victim] = false;
g_freeze_wait[victim] = false;

if(victim == attacker)
return HAM_IGNORED;

#if defined MONEY_KILL
money[attacker] += random_num(100, 1000);
#endif
remove_task(attacker + 1231263)
remove_task(attacker + 1233123)
Refresh_Money(attacker);

return HAM_HANDLED;
}
public DamagePlayer(victim, inflictor, attacker, Float:damage)
{
if(!is_user_alive(attacker) || victim == attacker)
return HAM_IGNORED;

if(cs_get_user_team(victim) == cs_get_user_team(attacker))
return HAM_IGNORED;

if(g_knife[attacker][0])
{
if(Knockback[0] > 0)
{
new Float:Velocity[3];
velocity_by_aim(attacker, Knockback[0] * 1000, Velocity);
set_pev(victim, pev_velocity, Velocity);
}
}
else if(g_knife[attacker][1])
{
if(Knockback[1] > 0)
{
new Float:Velocity[3];
velocity_by_aim(attacker, Knockback[1] * 1000, Velocity);
set_pev(victim, pev_velocity, Velocity);
}

}
else if(g_knife[attacker][2])
{
SetHamParamFloat(4, damage * Knife_damage);
if(Knockback[2] > 0)
{
new Float:Velocity[3];
velocity_by_aim(attacker, Knockback[2] * 1000, Velocity);
set_pev(victim, pev_velocity, Velocity);
}
}
else if(g_knife[attacker][3])
{
if(Knockback[3] > 0)
{
new Float:Velocity[3];
velocity_by_aim(attacker, Knockback[3] * 1000, Velocity);
set_pev(victim, pev_velocity, Velocity);
}
}
else if(g_knife[attacker][4])
{
SetHamParamFloat(4, damage);
if(!g_freeze_wait[attacker])
{
set_pev(victim, pev_maxspeed, 00001.0);
set_user_rendering(victim, kRenderFxGlowShell, 0, 206, 209, kRenderNormal, 25);
g_frozen[victim] = true;
set_task(TIME_FREEZE, "end", victim);
g_freeze_wait[attacker] = true;
freeze_time[attacker] = TIME_WAIT_FREEZE
set_task(1.0, "ShowHUD_Freeze", attacker + 1233123, _, _, "b")
}
if(Knockback[4] > 0)
{
new Float:Velocity[3];
velocity_by_aim(attacker, Knockback[4] * 1000, Velocity);
set_pev(victim, pev_velocity, Velocity);
}
}
else if(g_knife[attacker][5])
{
SetHamParamFloat(4, damage);
if(!task_exists(victim + 100) && !g_fire_wait[attacker])
{
g_burning_duration[ victim ] += FIRE_DURATION;

set_task(0.2, "BurningFlame", victim + 100, _, _, "b");
g_fire_wait[attacker] = true;
fire_time[attacker] = TIME_WAIT_FIRE
set_task(1.0, "ShowHUD_Fire", attacker + 1231263, _, _, "b")

}
if(Knockback[5] > 0)
{
new Float:Velocity[3];
velocity_by_aim(attacker, Knockback[5] * 1000, Velocity);
set_pev(victim, pev_velocity, Velocity);
}
}
#if defined MONEY_DAMAGE
money[attacker] += floatround(damage * 20.0);
#endif
Refresh_Money(attacker);
return HAM_HANDLED;
}

public ShowHUD_Fire(taskid)
{
new attacker = taskid - 1231263

if(is_user_alive(attacker))
{
fire_time[attacker]--

if(fire_time[attacker] >= 1)
{
set_hudmessage(200, 100, 0, -1.0, 0.87, 0, 1.0, 2.0)
ShowSyncHudMsg(attacker, g_syncHudMessage1, "%L", attacker, "WAIT_HUD", fire_time[attacker])
}
else if(fire_time[attacker] <= 0)
{
remove_task(attacker + 1231263)
g_fire_wait[attacker] = false;
color_chat(attacker, "%L", attacker, "ABILITY_READY");
}
}
else remove_task(attacker + 1231263)
}

public ShowHUD_Freeze(taskid)
{
new attacker = taskid - 1233123

if(is_user_alive(attacker))
{
freeze_time[attacker]--

if(freeze_time[attacker] >= 1)
{
set_hudmessage(200, 100, 0, -1.0, 0.87, 0, 1.0, 2.0)
ShowSyncHudMsg(attacker, g_syncHudMessage2, "%L", attacker, "WAIT_HUD", freeze_time[attacker])
}
else if(freeze_time[attacker] <= 0)
{
remove_task(attacker + 1233123)
g_freeze_wait[attacker] = false;
color_chat(attacker, "%L", attacker, "ABILITY_READY");
}
}
else remove_task(attacker + 1233123)
}

public end(victim)
{
if(g_frozen[victim])
g_frozen[victim] = false;

set_pev(victim, pev_maxspeed, 240.0);
set_user_rendering(victim, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 25);
CreateGlass(victim);

remove_task(victim);
}
public drop(id)
Menu_server(id)
public plugin_natives()
{
register_native("knife_get_user_money", "return_money", 1);
register_native("knife_set_user_money", "set_money", 1);
}

public return_money(id)
return money[id];

public set_money(id, count)
{
money[id] = count;

message_begin(MSG_ONE, get_user_msgid("Money"), _, id);
write_long(money[id]);
write_byte(1);
message_end();
}

public TwoJump(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED;

if(sTwoJump[id] && get_user_weapon(id) == CSW_KNIFE)
{
new Button = pev(id, pev_button);
new OldButton = pev(id, pev_oldbuttons);

if((Button & IN_JUMP) && !(pev(id, pev_flags) & FL_ONGROUND) && !(OldButton & IN_JUMP))
{
if(Jump[id] < 1)
{
DoJump[id] = true;
Jump[id]++;

return PLUGIN_CONTINUE;
}
else if(g_knife[id][1])
{
new flags = pev(id, pev_flags);
new waterlvl = pev(id, pev_waterlevel);

if (flags & FL_WATERJUMP)
return FMRES_IGNORED;

if (waterlvl > 1)
return FMRES_IGNORED;

new Float:fVelocity[ 3 ];
pev( id , pev_velocity , fVelocity );

fVelocity[ 2 ] += 400;

set_pev( id , pev_velocity , fVelocity );
set_pev(id, pev_gaitsequence, 6);
}
}
if((pev(id, pev_flags) & FL_ONGROUND))
Jump[id] = 0;
}
else if(g_knife[id][1] && get_user_weapon(id) == CSW_KNIFE)
{
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags);
new waterlvl = pev(id, pev_waterlevel);

if (!(flags & FL_ONGROUND))
return FMRES_IGNORED;

if (flags & FL_WATERJUMP)
return FMRES_IGNORED;

if (waterlvl > 1)
return FMRES_IGNORED;

new Float:fVelocity[ 3 ];
pev( id , pev_velocity , fVelocity );

fVelocity[ 2 ] += Knife_gravity;

set_pev( id , pev_velocity , fVelocity );
set_pev(id, pev_gaitsequence, 6);
}
}
else if(g_knife[id][4] && get_user_weapon(id) == CSW_KNIFE)
{
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags);
new waterlvl = pev(id, pev_waterlevel);

if (!(flags & FL_ONGROUND))
return FMRES_IGNORED;

if (flags & FL_WATERJUMP)
return FMRES_IGNORED;

if (waterlvl > 1)
return FMRES_IGNORED;

new Float:fVelocity[ 3 ];
pev( id , pev_velocity , fVelocity );

fVelocity[ 2 ] += Knife_vip_gravity;

set_pev( id , pev_velocity , fVelocity );
set_pev(id, pev_gaitsequence, 6);
}
}
else if(g_knife[id][5] && get_user_weapon(id) == CSW_KNIFE)
{
if ((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags);
new waterlvl = pev(id, pev_waterlevel);

if (!(flags & FL_ONGROUND))
return FMRES_IGNORED;

if (flags & FL_WATERJUMP)
return FMRES_IGNORED;

if (waterlvl > 1)
return FMRES_IGNORED;

new Float:fVelocity[ 3 ];
pev( id , pev_velocity , fVelocity );

fVelocity[ 2 ] += Knife_admin_gravity;

set_pev( id , pev_velocity , fVelocity );
set_pev(id, pev_gaitsequence, 6);
}
}
return PLUGIN_CONTINUE;
}

public PostTwoJump(id)
{
if(sTwoJump[id])
{
if(!is_user_alive(id))
return PLUGIN_CONTINUE;

if(DoJump[id])
{
new Float:Velocity[3];

pev(id, pev_velocity, Velocity);

Velocity[2] = random_float(295.0,305.0);
set_pev(id, pev_velocity, Velocity);

DoJump[id] = false;

return PLUGIN_CONTINUE;
}
}

return PLUGIN_CONTINUE;
}

public BurningFlame( taskid )
{
// Get player origin and flags
static origin[3], flags;
get_user_origin(ID_FBURN, origin);
flags = pev(ID_FBURN, pev_flags);

// Madness mode - in water - burning stopped
if ((flags & FL_INWATER) || g_burning_duration[ID_FBURN] < 1 || g_fRoundEnd || !is_user_alive(ID_FBURN))
{
// Smoke sprite
message_begin(MSG_PVS, SVC_TEMPENTITY, origin);
write_byte(TE_SMOKE); // TE id
write_coord(origin[0]); // x
write_coord(origin[1]); // y
write_coord(origin[2]-50); // z
write_short(g_smokeSpr); // sprite
write_byte(random_num(15, 20)); // scale
write_byte(random_num(10, 20)); // framerate
message_end();

// Task not needed anymore
remove_task(taskid);
return;
}

// Get player's health
static health;
health = pev(ID_FBURN, pev_health);

// Take damage from the fire
if (health - FIRE_DAMAGE > 0)
fm_set_user_health(ID_FBURN, health - FIRE_DAMAGE);

// Flame sprite
message_begin(MSG_PVS, SVC_TEMPENTITY, origin);
write_byte(TE_SPRITE); // TE id
write_coord(origin[0]+random_num(-5, 5)); // x
write_coord(origin[1]+random_num(-5, 5)); // y
write_coord(origin[2]+random_num(-10, 10)); // z
write_short(g_flameSpr); // sprite
write_byte(random_num(5, 10)); // scale
write_byte(200); // brightness
message_end();

g_burning_duration[ID_FBURN]--;
}

stock Refresh_Money(id)
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Money"), _, id);
write_long(money[id]);
write_byte(1);
message_end();
}
stock fm_set_user_health(index, health)
health > 0 ? set_pev(index, pev_health, float(health)) : dllfunc(DLLFunc_ClientKill, index);

stock fm_give_item(index, const item[])
{
if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
return 0;

new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item));
if (!pev_valid(ent))
return 0;

new Float:origin[3];
pev(index, pev_origin, origin);
set_pev(ent, pev_origin, origin);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);

new save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, index);
if (pev(ent, pev_solid) != save)
return ent;

engfunc(EngFunc_RemoveEntity, ent);

return -1;
}
stock util_playweaponanimation(const Player, const Sequence)
{
set_pev(Player, pev_weaponanim, Sequence);

message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player);
write_byte(Sequence);
write_byte(pev(Player, pev_body));
message_end();
}
stock CreateGlass(id)
{
new szOrigin[3];
get_user_origin(id, szOrigin);

message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(TE_BREAKMODEL);
write_coord( szOrigin[0] );
write_coord( szOrigin[1] );
write_coord( szOrigin[2] + 24 );
write_coord(16);
write_coord(16);
write_coord(16);
write_coord( random_num(-50, 50) );
write_coord( random_num(-50, 50) );
write_coord(25);
write_byte(10);
write_short(g_SpriteGlass);
write_byte(10);
write_byte(25);
write_byte(0x01);
message_end();
}
stock color_chat(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);

replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");

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, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
#if defined WEAPONLIST_KNIFE
UTIL_weaponlist(id, const weapon[])
{
message_begin(MSG_ONE, get_user_msgid("WeaponList"), {0,0,0}, id);
write_string(weapon);
write_byte(-1);
write_byte(-1);
write_byte(-1);
write_byte(-1);
write_byte(2);
write_byte(1);
write_byte(CSW_KNIFE);
write_byte(0);
message_end();
}
#endif


Отредактировал: magis1337, - 22.2.2015, 23:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 22.2.2015, 23:28
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

В round_start убери g_knife_round[Player] = false
И соответственно переменную

А в
register_clcmd
Первый drop на say /knife
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
magis1337
сообщение 23.2.2015, 3:06
Сообщение #3
Стаж: 11 лет
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

GOOD FELLOW, утром проверю ;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
magis1337
сообщение 23.2.2015, 3:33
Сообщение #4
Стаж: 11 лет
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

GOOD FELLOW, Все получилось, но как ты написал, say /knife 1 раз в раунд можно было выбирать
потом покопался, удалил вот эту стороку
Код:
	{
color_chat(id, "%L", id, "KNIFE_MENU_BLOCK");
return PLUGIN_HANDLED;
}

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