- Код: Выделить всё
native jbe_get_user_money(pId);
native jbe_set_user_money(pId, iMoney, iFlash);
Попробовал этот натив, но не помогло...
- Код: Выделить всё
native jbe_get_user_chief(pId);
Само дополнение к моду:
- Код: Выделить всё
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <cstrike>
#include <core>
#include <fun>
native jbe_get_user_money(pId);
native jbe_set_user_money(pId, iMoney, iFlash);
native jbe_get_user_chief(pId);
#define PLUGIN "jb_break_bone"
#define VERSION "2.0"
#define AUTHOR "ViniPux"
new bool:bone_break[33]
new buygips,cost_gips_money
new cvar_grav,onlySimon,bone_break_en,doctor,g_iHudSync2
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
bone_break_en = register_cvar("jb_break_bone","1")
buygips = register_cvar("jb_buygips","1")
cost_gips_money = register_cvar("jb_costmoney","50")
cvar_grav = register_cvar("jb_grav_on","1")
onlySimon = register_cvar("jb_break_simon","0")
RegisterHam(Ham_TakeDamage, "player", "player_damage")
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
register_forward(FM_PlayerPreThink,"fw_playerprethink",0);
register_logevent("round_start", 2, "0=World triggered", "1=Round_Start")
register_clcmd("say /gips","cmdBuyGips")
register_clcmd("say /givegips","cmdGiveGips")
g_iHudSync2 = CreateHudSyncObj( );
}
public plugin_precache()
{
precache_sound("bone_break.wav")
}
public cmdGiveGips(id)
{
if(id == doctor)
{
menu_players(id, CS_TEAM_T, id, 1, "give_gips_tt", "Кому дать гипс?")
}
else
client_printcolor(0, "!g[ Безумная Тюрьма] !tТы не доктор")
}
public round_start()
{
new count = 1, players[32]
get_players(players, count, "ache", "CT")
SetDoc(players[random(count)])
}
public cmdDoctor()
{
new name_doc[32]
get_user_name(doctor,name_doc,31)
set_hudmessage( 0, 255, 0, 0.75, 0.04, 0, 2.5, 2.5, 60.0, 30.0, 3 );
ShowSyncHudMsg( 0, g_iHudSync2, "Сегодня доктор ^n%s",name_doc );
client_printcolor(0, "!g[ Безумная Тюрьма] !tСегодня доктор %s",name_doc)
}
public SetDoc(id)
{
new count = 1, players[32]
get_players(players, count, "ache", "CT")
if(jbe_set_user_chief())
{
SetDoc(players[random(count)])
}
else
{
doctor = id
cmdDoctor()
}
}
public player_spawn(id)
{
bone_break[id] = false
}
public give_gips_tt(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32], data[5], player, access, callback
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
player = str_to_num(data)
bone_break[player] = false
new name_doc[32],name_zek[32]
get_user_name(id,name_doc,31)
get_user_name(player,name_zek,31)
client_printcolor(0, "!g[ Безумная Тюрьма] !t%s !gдал гипс !t%ы",name_doc,name_zek)
return PLUGIN_HANDLED
}
public cmdBuyGips(id)
{
if(get_pcvar_num(buygips) == 0)
return PLUGIN_HANDLED
if(get_user_team(id) != 1)
{
client_printcolor(id, "!g[ Безумная Тюрьма] !tТы мент, зачем тебе гипс?!")
return PLUGIN_HANDLED
}
if(!bone_break[id])
{
client_printcolor(id, "!g[Безумная Тюрьма]!tУ тебя ноги целые,зачем тебе гипс?!")
return PLUGIN_HANDLED
}
if(get_pcvar_num(buygips) == 1)
{
if(jbe_get_user_money(id) >= get_pcvar_num(cost_gips_money))
{
bone_break[id] = false
jbe_set_user_money(id,jbe_get_user_money(id) - get_pcvar_num(cost_gips_money))
}
else
client_printcolor(id, "!g[Безумная Тюрьма]!tНе хватает денег")
}
return PLUGIN_CONTINUE
}
public player_damage(victim, ent, attacker, Float:damage, bits)
{
if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
return HAM_IGNORED
if(!get_pcvar_num(bone_break_en))
return HAM_IGNORED
new name_att[32]
new name_vic[32]
get_user_name(attacker,name_att,31)
get_user_name(victim,name_vic,31)
if(get_user_team(attacker) == 2 && get_user_team(victim) == 1)
{
if(get_pcvar_num(onlySimon))
{
if(jbe_set_user_chief( ))
{
if(!bone_break[victim])
{
if(get_pdata_int(victim, 75) == HIT_RIGHTLEG)
{
bone_break[victim] = true
client_printcolor(0, "!g[ Безумная Тюрьма]!t%s !gсломал ноги !t%s",name_att,name_vic)
client_printcolor(victim, "!g[ Безумная Тюрьма]!tВам сломали ноги. Купите гипс в !gмагазине")
emit_sound(victim,CHAN_STATIC,"break_bone.wav",1.0,ATTN_NORM,0,PITCH_NORM)
}
if(get_pdata_int(victim, 75) == HIT_LEFTLEG)
{
bone_break[victim] = true
client_printcolor(0, "!g[ Безумная Тюрьма]!t%s !gсломал ноги !t%s",name_att,name_vic)
client_printcolor(victim, "!g[ Безумная Тюрьма]!tВам сломали ноги. Купите гипс в !gмагазине")
emit_sound(victim,CHAN_STATIC,"break_bone.wav",1.0,ATTN_NORM,0,PITCH_NORM)
}
}
}
}
else if(get_pdata_int(victim, 75) == HIT_RIGHTLEG)
{
bone_break[victim] = true
client_printcolor(0, "!g[ Безумная Тюрьма]!t%s !gсломал ноги !t%s",name_att,name_vic)
client_printcolor(victim, "!g[ Безумная Тюрьма]!tВам сломали ноги. Купите гипс в !gмагазине")
emit_sound(victim,CHAN_STATIC,"break_bone.wav",1.0,ATTN_NORM,0,PITCH_NORM)
}
if(get_pdata_int(victim, 75) == HIT_LEFTLEG)
{
bone_break[victim] = true
client_printcolor(0, "!g[ Безумная Тюрьма]!t%s !gсломал ноги !t%s",name_att,name_vic)
client_printcolor(victim, "!g[ Безумная Тюрьма]!tВам сломали ноги. Купите гипс в !gмагазине")
emit_sound(victim,CHAN_STATIC,"break_bone.wav",1.0,ATTN_NORM,0,PITCH_NORM)
}
}
return HAM_IGNORED
}
public fw_playerprethink(id)
{
if(bone_break[id])
{
engfunc(EngFunc_SetClientMaxspeed,id,100.0)
if(get_pcvar_num(cvar_grav))
{
if((pev(id,pev_button) & IN_JUMP) && !(pev(id,pev_oldbuttons) & IN_JUMP) && (pev(id,pev_flags) & FL_ONGROUND))
set_user_gravity(id,3.0)
}
}
else
{
engfunc(EngFunc_SetClientMaxspeed,id,240.0)
if(get_pcvar_num(cvar_grav))
{
if((pev(id,pev_button) & IN_JUMP) && !(pev(id,pev_oldbuttons) & IN_JUMP) && (pev(id,pev_flags) & FL_ONGROUND))
set_user_gravity(id,1.0)
}
}
return FMRES_IGNORED;
}
stock client_printcolor(const id, const input[], any:...)
{
new iCount = 1, iPlayers[32]
static szMsg[191]
vformat(szMsg, charsmax(szMsg), input, 3)
replace_all(szMsg, 190, "!g", "^4") // green txt
replace_all(szMsg, 190, "!y", "^1") // orange txt
replace_all(szMsg, 190, "!t", "^3") // team txt
replace_all(szMsg, 190, "!w", "^0") // team txt
if(id) iPlayers[0] = id
else get_players(iPlayers, iCount, "ch")
for (new i = 0; i < iCount; i++)
{
if (is_user_connected(iPlayers[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, iPlayers[i])
write_byte(iPlayers[i])
write_string(szMsg)
message_end()
}
}
}
stock menu_players(id, CsTeams:team, skip, alive, callback[], title[], any:...)
{
static i, name[32], num[5], menu, menuname[32]
vformat(menuname, charsmax(menuname), title, 7)
menu = menu_create(menuname, callback)
for(i = 1; i <= get_maxplayers(); i++)
{
if(!is_user_connected(i) || (alive && !is_user_alive(i)) || (skip == i))
continue
if(!(team == CS_TEAM_T || team == CS_TEAM_CT) || ((team == CS_TEAM_T || team == CS_TEAM_CT) && (cs_get_user_team(i) == team)))
{
if(bone_break[i])
{
get_user_name(i, name, charsmax(name))
num_to_str(i, num, charsmax(num))
menu_additem(menu, name, num, 0)
}
else
client_printcolor(id, "!g[ Безумная Тюрьма]!tУ всех зеков ноги целые...")
}
}
menu_display(id, menu)
}
Добавлено спустя 1 минуту 24 секунды:
Сами ошибки:
Добавлено спустя 3 минуты 15 секунд:
Изменил натив на
- Код: Выделить всё
native jbe_set_user_chief(pId, iMoney, iFlash);
Теперь постоянная ошибка в компиляторе
- Код: Выделить всё
error 088: number of arguments does not match definition
Но, всё-равно понять не могу
Название темы скорректировано, тема перемещена в раздел "Вопросы по AMXX и его плагинам" // Subb98