#include < amxmodx >
#include < amxmisc >
#include < engine >
#include < reapi >
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <fun>
new ientbox[22]
new Iid
new modelindex;
enum _:POINTS_INFO
{
Float:Origin[3]
}
new g_ePoints[256][POINTS_INFO], szFile[256], g_iPointsNum
public plugin_precache( )
{
modelindex = precache_model("models/bigbox.mdl")
}
public plugin_init()
{
register_plugin("ya", "manitor", "23")
new szMapName[32]; get_mapname(szMapName, charsmax(szMapName))
format(szFile, charsmax(szFile), "addons/amxmodx/configs/points/%s.txt", szMapName)
if(file_exists(szFile))
{
LoadSpawns()
}
set_task(10.0, "random_spawn", 13371232235588, _, _, "a", 2)
register_clcmd("boxbigcreate", "createspawn")
}
public LoadSpawns()
{
new szParseText[128],szParse1[16],szParse2[16],szParse3[16]
new szLine, szNum
for(szLine=0;read_file(szFile, szLine, szParseText, charsmax(szParseText), szNum);szLine++)
{
parse(szParseText, szParse1, charsmax(szParse1), szParse2, charsmax(szParse2), szParse3, charsmax(szParse3))
new Float:fOrigin[3]
fOrigin[0] = float(str_to_num(szParse1)),fOrigin[1] = float(str_to_num(szParse2)),fOrigin[2] = float(str_to_num(szParse3))
g_iPointsNum++
g_ePoints[g_iPointsNum][Origin] = fOrigin
}
}
public createspawn(id) {
new Float:fOrigin[3], szString[128]
new iOrigin[3]; get_user_origin(id, iOrigin, 3)
fOrigin[0] = float(iOrigin[0])
fOrigin[1] = float(iOrigin[1])
fOrigin[2] = float(iOrigin[2])
new ientboxtest = create_entity("func_breakable")
entity_set_model(ientboxtest, "models/bigbox.mdl")
set_entvar(ientboxtest, var_model, "models/bigbox.mdl")
set_entvar(ientboxtest, var_modelindex, modelindex)
set_entvar(ientboxtest, var_origin, fOrigin)
set_entvar(ientboxtest, var_solid, SOLID_BBOX)
set_entvar(ientboxtest, var_mins, {-10.0, -10.0, -10.0})
set_entvar(ientboxtest, var_maxs, {10.0, 10.0, 10.0})
set_entvar(ientboxtest, var_rendermode, kRenderNormal)
set_entvar(ientboxtest, var_renderamt, 255)
format(szString, charsmax(szString), "%f %f %f", fOrigin[0], fOrigin[1], fOrigin[2])
write_file(szFile, szString, -1)
}
public random_spawn()
{
new IRSpawn = random_num(1, g_iPointsNum)
ientbox[Iid++] = create_entity("func_button")
set_entvar(ientbox[Iid], var_model, "models/bigbox.mdl")
set_entvar(ientbox[Iid], var_modelindex, modelindex)
set_entvar(ientbox[Iid], var_origin, g_ePoints[IRSpawn])
set_entvar(ientbox[Iid], var_solid, SOLID_BBOX)
set_entvar(ientbox[Iid], var_mins, {-10.0, -10.0, -10.0})
set_entvar(ientbox[Iid], var_maxs, {10.0, 10.0, 10.0})
set_entvar(ientbox[Iid], var_rendermode, kRenderNormal)
set_entvar(ientbox[Iid], var_renderamt, 255)
RegisterHamFromEntity(Ham_Use, ientbox[Iid], "BTounch", true);
}
public BTounch(this, idcaller)
{
if(is_entity(this))
remove_entity(this)
new randomammo = random_num(1,2)
new randomgun = random_num(1, 16)
new randomammob = random_num(5, 40)
set_hudmessage(255, 30, 90, 1.0, -1.0, 0, 6.0, 3.0)
if(randomgun <= 4)
{
show_hudmessage(idcaller, "Ящик оказался пустым :(");
return 0;
}
switch(randomgun)
{
case 5:
{
switch(randomammo)
{
case 1:
{
show_hudmessage(idcaller, "В ящике оказался USP");
rg_give_item(idcaller, "weapon_usp", GT_DROP_AND_REPLACE)
}
case 2:
{
show_hudmessage(idcaller, "В ящике оказался USP с патронами");
new iItem = rg_give_item(idcaller, "weapon_usp", GT_DROP_AND_REPLACE)
rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
}
}
}
case 6:
{
switch(randomammo)
{
case 1:
{
show_hudmessage(idcaller, "В ящике оказался Deagle");
rg_give_item(idcaller, "weapon_deagle", GT_DROP_AND_REPLACE)
}
case 2:
{
show_hudmessage(idcaller, "В ящике оказался Deagle с патронами");
new iItem = rg_give_item(idcaller, "weapon_deagle", GT_DROP_AND_REPLACE)
rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
}
}
}
case 7:
{
switch(randomammo)
{
case 1:
{
show_hudmessage(idcaller, "В ящике оказался ЮМП с патронами");
new iItem = rg_give_item(idcaller, "weapon_ump45", GT_DROP_AND_REPLACE)
rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
}
case 2:
{
show_hudmessage(idcaller, "В ящике оказались Елитры");
rg_give_item(idcaller, "weapon_elite", GT_DROP_AND_REPLACE)
}
}
}
case 8:
{
switch(randomammo)
{
case 1:
{
show_hudmessage(idcaller, "В ящике оказался ЮМП");
rg_give_item(idcaller, "weapon_ump45", GT_DROP_AND_REPLACE)
}
case 2:
{
show_hudmessage(idcaller, "В ящике оказался ФайфСевен с патронами");
new iItem = rg_give_item(idcaller, "weapon_fiveseven", GT_DROP_AND_REPLACE)
rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
}
}
}
case 9:
{
show_hudmessage(idcaller, "В ящике оказался ФайфСевен");
rg_give_item(idcaller, "weapon_fiveseven", GT_DROP_AND_REPLACE)
}
case 10:
{
switch(randomammo)
{
case 1:
{
show_hudmessage(idcaller, "В ящике оказался Глок");
rg_give_item(idcaller, "weapon_glock", GT_DROP_AND_REPLACE)
}
case 2:
{
show_hudmessage(idcaller, "В ящике оказался Глок с патронами");
new iItem = rg_give_item(idcaller, "weapon_glock", GT_DROP_AND_REPLACE)
rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
}
}
}
case 11:
{
switch(randomammo)
{
case 1:
{
show_hudmessage(idcaller, "В ящике оказался Глок");
rg_give_item(idcaller, "weapon_glock", GT_DROP_AND_REPLACE)
}
case 2:
{
show_hudmessage(idcaller, "В ящике оказался ТМП с патронами");
new iItem = rg_give_item(idcaller, "weapon_tmp", GT_DROP_AND_REPLACE)
rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
}
}
}
case 12:
{
switch(randomammo)
{
case 1:
{
show_hudmessage(idcaller, "В ящике оказался Фамас");
rg_give_item(idcaller, "weapon_famas", GT_DROP_AND_REPLACE)
}
case 2:
{
show_hudmessage(idcaller, "В ящике оказался Фамас с патронами");
new iItem = rg_give_item(idcaller, "weapon_famas", GT_DROP_AND_REPLACE)
rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
}
}
}
case 13:
{
switch(randomammo)
{
case 1:
{
show_hudmessage(idcaller, "В ящике оказался нож");
rg_give_item(idcaller, "weapon_knife", GT_APPEND)
}
case 2:
{
show_hudmessage(idcaller, "В ящике оказался МП5 с патронами");
new iItem = rg_give_item(idcaller, "weapon_mp5n", GT_DROP_AND_REPLACE)
rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
}
}
}
case 14:
{
switch(randomammo)
{
case 1:
{
show_hudmessage(idcaller, "В ящике оказался МП5");
rg_give_item(idcaller, "weapon_mp5n", GT_DROP_AND_REPLACE)
}
case 2:
{
show_hudmessage(idcaller, "В ящике оказался МП5 с патронами");
new iItem = rg_give_item(idcaller, "weapon_mp5n", GT_DROP_AND_REPLACE)
rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
}
}
}
case 15,16:
{
show_hudmessage(idcaller, "В ящике оказалась хилка(+35 HP)")
new hp = get_user_health(idcaller)
set_user_health(idcaller, hp + 35)
}
}
return 1;
}