Хелп с размерами

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
13
Реакции
0
Кароче я не знаю как сделать размер объекту пытался вот так:


C++:
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])
maxim[0] = (fOrigin[0] + 10.0)
maxim[1] = (fOrigin[1] + 10.0)
maxim[2] = (fOrigin[2] + 10.0)
minim[0] = (fOrigin[0] - 10.0)
minim[1] = (fOrigin[1] - 10.0)
minim[2] = (fOrigin[2] - 10.0)
new ientboxtest = create_entity("func_breakable")
entity_set_model(ientboxtest, "models/bigbox.mdl")
set_entvar(ientboxtest, var_solid, SOLID_BBOX)
set_entvar(ientboxtest, var_mins, minim)
set_entvar(ientboxtest, var_maxs, maxim)
entity_set_origin(ientboxtest, fOrigin)
format(szString, charsmax(szString), "%f %f %f", fOrigin[0], fOrigin[1], fOrigin[2])
write_file(szFile, szString, -1)
}
}
Но объект все ровно прозрачный:sad:
Если решение простое то извиняйте, я новичок:crazy:
 
Сообщения
1,668
Реакции
1,495
Помог
24 раз(а)
manitor23, используй EngFunc_SetSize или entity_set_size для установки размеров и линка энтити. Возможно ещё movetype нужно поставить.
 
Сообщения
1,668
Реакции
1,495
Помог
24 раз(а)
Ещё размеры ставятся как размеры относительно энтити (без координат положения). То есть выставить положение и размеры.
 
Сообщения
209
Реакции
120
Помог
11 раз(а)
Код:
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])
    maxim[0] = (fOrigin[0] + 10.0)
    maxim[1] = (fOrigin[1] + 10.0)
    maxim[2] = (fOrigin[2] + 10.0)
    minim[0] = (fOrigin[0] - 10.0)
    minim[1] = (fOrigin[1] - 10.0)
    minim[2] = (fOrigin[2] - 10.0)
    new ientboxtest = create_entity("func_breakable")
    entity_set_model(ientboxtest, "models/bigbox.mdl")
    set_entvar(ientboxtest, var_solid, SOLID_BBOX)
    
+    entity_set_origin(ientboxtest, fOrigin)

    set_entvar(ientboxtest, var_mins, minim)
    set_entvar(ientboxtest, var_maxs, maxim)
    
-    entity_set_origin(ientboxtest, fOrigin)

    format(szString, charsmax(szString), "%f %f %f", fOrigin[0], fOrigin[1], fOrigin[2])
    write_file(szFile, szString, -1)
}
 
Сообщения
18
Реакции
4
Помог
1 раз(а)
manitor23,

Для того, чтобы объект не был прозрачным, тебе нужно установить материал для этого объекта. Вот пример, как это можно сделать:

set_entvar(ientboxtest, var_rendermode, kRenderNormal)
set_entvar(ientboxtest, var_renderamt, 255)

Этот код устанавливает нормальный режим отображения и полную непрозрачность для объекта. Попробуй добавить эти строки после установки размеров объекта
 
Сообщения
13
Реакции
0
Нечего из выше перечисленного не помогло :sad: Да и принципе вы не то решали:negative:
Проблема у меня с этими строками:

C++:
maxim[0] = (fOrigin[0] + 10.0)
maxim[1] = (fOrigin[1] + 10.0)
maxim[2] = (fOrigin[2] + 10.0)
minim[0] = (fOrigin[0] - 10.0)
minim[1] = (fOrigin[1] - 10.0)
minim[2] = (fOrigin[2] - 10.0)
 
Сообщения
209
Реакции
120
Помог
11 раз(а)
Код:
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])
-    maxim[0] = (fOrigin[0] + 10.0)
-    maxim[1] = (fOrigin[1] + 10.0)
-    maxim[2] = (fOrigin[2] + 10.0)
-    minim[0] = (fOrigin[0] - 10.0)
-    minim[1] = (fOrigin[1] - 10.0)
-    minim[2] = (fOrigin[2] - 10.0)
    new ientboxtest = create_entity("func_breakable")
    entity_set_model(ientboxtest, "models/bigbox.mdl")
    set_entvar(ientboxtest, var_solid, SOLID_BBOX)
    
+    entity_set_origin(ientboxtest, fOrigin)
+    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_mins, minim)
-    set_entvar(ientboxtest, var_maxs, maxim)
-    entity_set_origin(ientboxtest, fOrigin)

    format(szString, charsmax(szString), "%f %f %f", fOrigin[0], fOrigin[1], fOrigin[2])
    write_file(szFile, szString, -1)
}
 
Сообщения
3,374
Реакции
1,479
Помог
124 раз(а)
Нечего из выше перечисленного не помогло
murlemur,
Спасибо, помогло:blush2:
Ну так fl0wer выше писал о том же, что сделал murlemur:
Ещё размеры ставятся как размеры относительно энтити (без координат положения). То есть выставить положение и размеры.
Либо читать надо внимательнее, либо спрашивать если не понятно, а не ждать готовой помощи.
 
Сообщения
13
Реакции
0
C++:
RegisterHamFromEntity(Ham_Use, ientbox[Iid], "BTounch", true);
}

public BTounch(this, idcaller)
{
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 == 1 || randomgun == 2 || randomgun == 3 || randomgun == 4)
{
show_hudmessage(idcaller, "Ящик оказался пустым :(");
 return HC_SUPERCEDE
}
if(randomgun == 5 && randomammo == 2)
{

  if(is_nullent(this))
  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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
  if(randomgun == 5 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался USP");
rg_give_item(idcaller, "weapon_usp", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 6 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 6 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался Deagle");
rg_give_item(idcaller, "weapon_deagle", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 7 && randomammo == 2)
{
  show_hudmessage(idcaller, "В ящике оказались Елитры с патронами");
  new iItem = rg_give_item(idcaller, "weapon_elite", GT_DROP_AND_REPLACE)
  rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 7 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказались Елитры");
rg_give_item(idcaller, "weapon_elite", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 8 && randomammo == 2)
{
  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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 8 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался ЮМП");
rg_give_item(idcaller, "weapon_ump45", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 9 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
 if(randomgun == 9 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался ФайфСевен");
rg_give_item(idcaller, "weapon_fiveseven", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 10 && randomammo == 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);
 iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
 if(randomgun == 10 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался Глок");
rg_give_item(idcaller, "weapon_glock", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 11 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 11 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался ТМП");
rg_give_item(idcaller, "weapon_tmp", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 12 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
 if(randomgun == 12 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался Фамас");
rg_give_item(idcaller, "weapon_famas", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 13)
{
  show_hudmessage(idcaller, "В ящике оказался нож");
  rg_give_item(idcaller, "weapon_knife", GT_APPEND)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 14 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 14 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался МП5");
rg_give_item(idcaller, "weapon_mp5n", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 15 || randomgun == 16)
{
  show_hudmessage(idcaller, "В ящике оказалась хилка(+35 HP)")
   new hp = get_user_health(idcaller)
   set_user_health(idcaller, hp + 35)
randomammo = 0
randomgun = 0
randomammob = 0
}
 return HC_SUPERCEDE
randomammo = 0
randomgun = 0
randomammob = 0
}
Опять проблема.
В общем выдается 2-5 оружий
Маялся с этим 1-2 часа, но без успешно
 
Сообщения
13
Реакции
0
C++:
RegisterHamFromEntity(Ham_Use, ientbox[Iid], "BTounch", true);
}
}

public BTounch(this, idcaller)
{
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 == 1 || randomgun == 2 || randomgun == 3 || randomgun == 4)
{
show_hudmessage(idcaller, "Ящик оказался пустым :(");
return HC_SUPERCEDE
}
if(randomgun == 5 && randomammo == 2)
{

  if(is_nullent(this))
  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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
  if(randomgun == 5 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался USP");
rg_give_item(idcaller, "weapon_usp", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 6 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 6 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался Deagle");
rg_give_item(idcaller, "weapon_deagle", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 7 && randomammo == 2)
{
  show_hudmessage(idcaller, "В ящике оказались Елитры с патронами");
  new iItem = rg_give_item(idcaller, "weapon_elite", GT_DROP_AND_REPLACE)
  rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 7 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказались Елитры");
rg_give_item(idcaller, "weapon_elite", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 8 && randomammo == 2)
{
  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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 8 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался ЮМП");
rg_give_item(idcaller, "weapon_ump45", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 9 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 9 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался ФайфСевен");
rg_give_item(idcaller, "weapon_fiveseven", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 10 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 10 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался Глок");
rg_give_item(idcaller, "weapon_glock", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 11 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 11 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался ТМП");
rg_give_item(idcaller, "weapon_tmp", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 12 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 12 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался Фамас");
rg_give_item(idcaller, "weapon_famas", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 13)
{
  show_hudmessage(idcaller, "В ящике оказался нож");
  rg_give_item(idcaller, "weapon_knife", GT_APPEND)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 14 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 14 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался МП5");
rg_give_item(idcaller, "weapon_mp5n", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 15 || randomgun == 16)
{
  show_hudmessage(idcaller, "В ящике оказалась хилка(+35 HP)")
   new hp = get_user_health(idcaller)
   set_user_health(idcaller, hp + 35)
randomammo = 0
randomgun = 0
randomammob = 0
}
return HC_SUPERCEDE
randomammo = 0
randomgun = 0
randomammob = 0
}
Опять проблема.
В общем выдается 2-5 оружий
Маялся с этим 1-2 часа, но без успешно
Оказывается проблема в этих строках

C++:
public random_spawn()
{
  new IRSpawn = random_num(1, g_iPointsNum)
  Iid + 1
ientbox[Iid] = create_entity("func_button")
entity_set_model(ientbox[Iid], "models/bigbox.mdl")
set_entvar(ientbox[Iid], var_solid, SOLID_BBOX)
entity_set_origin(ientbox[Iid], g_ePoints[IRSpawn])
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);
}
Вопрос таков:
Как правильно сделать для каждого энтити свой ид?
 
Сообщения
13
Реакции
0
Кароче вот весь код

C++:
#include < amxmodx >
#include < amxmisc >
#include < engine >
#include < reapi >
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <fun>
new Iid = 1
new ientbox[22]
new randomammo
new randomgun
new randomammob
new Float:maxim[3]
new Float:minim[3]
enum _:POINTS_INFO
{
  Float:Origin[3]
}
new g_ePoints[256][POINTS_INFO], szFile[256], g_iPointsNum
public plugin_precache( ) {
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_solid, SOLID_BBOX)
    entity_set_origin(ientboxtest, fOrigin)
   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)
  Iid + 1
ientbox[Iid] = create_entity("func_button")
entity_set_model(ientbox[Iid], "models/bigbox.mdl")
set_entvar(ientbox[Iid], var_solid, SOLID_BBOX)
entity_set_origin(ientbox[Iid], g_ePoints[IRSpawn])
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)
{
remove_entity(this)
randomammo = random_num(1,2)
randomgun = random_num(1, 16)
randomammob = random_num(5, 40)
set_hudmessage(255, 30, 90, 1.0, -1.0, 0, 6.0, 3.0)
if(randomgun == 1 || randomgun == 2 || randomgun == 3 || randomgun == 4)
{
show_hudmessage(idcaller, "Ящик оказался пустым :(");
 return HC_SUPERCEDE
}
if(randomgun == 5 && randomammo == 2)
{
randomammo = 0
randomgun = 0
randomammob = 0
  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);
}
  if(randomgun == 5 && randomammo == 1) {
randomammo = 0
randomgun = 0
randomammob = 0
show_hudmessage(idcaller, "В ящике оказался USP");
rg_give_item(idcaller, "weapon_usp", GT_DROP_AND_REPLACE)
}
if(randomgun == 6 && randomammo == 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);

}
if(randomgun == 6 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался Deagle");
rg_give_item(idcaller, "weapon_deagle", GT_DROP_AND_REPLACE)
}
if(randomgun == 7 && randomammo == 2)
{
  show_hudmessage(idcaller, "В ящике оказались Елитры с патронами");
  new iItem = rg_give_item(idcaller, "weapon_elite", GT_DROP_AND_REPLACE)
  rg_set_iteminfo(iItem, ItemInfo_iMaxAmmo1, randomammob);
rg_set_user_bpammo(idcaller, get_member(iItem, m_iId), randomammob);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 7 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказались Елитры");
rg_give_item(idcaller, "weapon_elite", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 8 && randomammo == 2)
{
  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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 8 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался ЮМП");
rg_give_item(idcaller, "weapon_ump45", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 9 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
 if(randomgun == 9 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался ФайфСевен");
rg_give_item(idcaller, "weapon_fiveseven", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 10 && randomammo == 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);
 iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
 if(randomgun == 10 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался Глок");
rg_give_item(idcaller, "weapon_glock", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 11 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 11 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался ТМП");
rg_give_item(idcaller, "weapon_tmp", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}

if(randomgun == 12 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
 if(randomgun == 12 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался Фамас");
rg_give_item(idcaller, "weapon_famas", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 13)
{
  show_hudmessage(idcaller, "В ящике оказался нож");
  rg_give_item(idcaller, "weapon_knife", GT_APPEND)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 14 && randomammo == 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);
iItem = 0
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 14 && randomammo == 1) {
show_hudmessage(idcaller, "В ящике оказался МП5");
rg_give_item(idcaller, "weapon_mp5n", GT_DROP_AND_REPLACE)
randomammo = 0
randomgun = 0
randomammob = 0
}
if(randomgun == 15 || randomgun == 16)
{
  show_hudmessage(idcaller, "В ящике оказалась хилка(+35 HP)")
   new hp = get_user_health(idcaller)
   set_user_health(idcaller, hp + 35)
randomammo = 0
randomgun = 0
randomammob = 0
}
 return HC_SUPERCEDE
randomammo = 0
randomgun = 0
randomammob = 0
}
 
Сообщения
961
Реакции
51
Помог
10 раз(а)
manitor23,
Оказывается проблема в этих строках

C++:
public random_spawn()
{
  new IRSpawn = random_num(1, g_iPointsNum)
  Iid + 1
ientbox[Iid] = create_entity("func_button")
entity_set_model(ientbox[Iid], "models/bigbox.mdl")
set_entvar(ientbox[Iid], var_solid, SOLID_BBOX)
entity_set_origin(ientbox[Iid], g_ePoints[IRSpawn])
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);
}
Вопрос таков:
Как правильно сделать для каждого энтити свой ид?
ientbox[Iid++] = create_entity("func_button")
 
Сообщения
961
Реакции
51
Помог
10 раз(а)
Не видно что и как ты делаешь
 
Последнее редактирование:
Сообщения
658
Реакции
230
Помог
11 раз(а)
Сначало приведи код в порядок, потом пиши

Код:
#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;
}
 
Последнее редактирование:
Сообщения
961
Реакции
51
Помог
10 раз(а)
Код:
#include < amxmodx >
#include < amxmisc >
#include < engine >
#include < reapi >
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <fun>
:ok:
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу