AMX MOD X
Среда, 07.01.2026, 23:21:54



Приветствую Вас Гость | RSS
[ Главная ] [ Нужна помошъ в FakeMeta: Touch - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
Нужна помошъ в FakeMeta: Touch
KokaДата: Понедельник, 08.09.2008, 20:05:35 | Сообщение # 1
Полковник
Группа: Пользователи
Сообщений: 169
Репутация: 1
Статус: Не в сети
Code

register_forward(FM_Touch, "fwFMTouch")

publuc entity_sozdaisia()
{
       new ent = fm_create_entity("info_target")
         
       set_pev(ent, pev_origin, bag_origins[id])
       set_pev(ent, pev_classname, "some_bag")
       set_pev(ent, pev_solid, SOLID_TRIGGER)
       set_pev(ent, pev_scale, 0.2) // razmer
       set_pev(ent, pev_owner, id)
}

public fwFMTouch(ent, id)
{
       if(is_user_alive(id) && pev_valid(ent))
       {
            static classname[32]
              
            pev(ent, pev_classname, classname, sizeof classname -1)
              
            if(equali(classname, "some_bag"))
            {
                 ////lalalala
                 new pid = pev(ent, pev_owner)
            }
         }
}
       

создаю entity - обзываю ее "some_bag", но неполучается ее "взять" (тоесть как бы поднять когда в игре идещ)
где "////lalalala" - до туда недоходит дело sos

Добавлено (2008-09-08, 8:05 Pm)
---------------------------------------------
желательно без модуля engine напишите как должно быть :)


стал ощущать рефлексы тоньше, оставаясь как всегда с идеей той же...

Сообщение отредактировал Koka - Понедельник, 08.09.2008, 20:01:21
 
BruteДата: Понедельник, 08.09.2008, 20:50:38 | Сообщение # 2
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Quote (Koka)
pev(ent, pev_classname, classname, sizeof classname-1)

скорее всего:
Code
sizeof(classname)-1

а для начала лучше:
pev(ent, pev_classname, classname, 31)

зы не забудь удалить ентитю(если, конечно она должна исчезнуть после прикосновения).

 
KokaДата: Понедельник, 08.09.2008, 23:42:48 | Сообщение # 3
Полковник
Группа: Пользователи
Сообщений: 169
Репутация: 1
Статус: Не в сети
Quote (Brute)
скорее всего:
sizeof(classname)-1

а для начала лучше:
pev(ent, pev_classname, classname, 31)

да там неважно как минус 1 делать -
pev(ent, pev_classname, classname, 31)
pev(ent, pev_classname, sizeof classname -1)
pev(ent, pev_classname, sizeof (classname) -1)
pev(ent, pev_classname, sizeof(classname)-1)
pev(ent, pev_classname, classname, 32 - 1)
просто где идет подсчет а где уже готовое.. это не важно.

Quote (Brute)

зы не забудь удалить ентитю(если, конечно она должна исчезнуть после прикосновения)

у меня после "////lalalala" уже все расписано, - у меня застой вот где - когда я встаю на эту энтити - она неопределяется как "ее можно брать", хотя в ее свойствах стоит set_pev(ent, pev_solid, SOLID_TRIGGER) // (1) Touch on edge, but not blocking

тоесть она должна быть "тачем"


стал ощущать рефлексы тоньше, оставаясь как всегда с идеей той же...

Сообщение отредактировал Koka - Понедельник, 08.09.2008, 23:44:40
 
DaTaДата: Вторник, 09.09.2008, 01:03:12 | Сообщение # 4
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Brute, реально отмочил бреда про sizeof, который может сбить человека с толку.

Koka, твоя энтитя безразмерна, юзай Eng_SetSize и смотри плагин bcm на официалке, больше ниче не могу с мобилы посоветовать)

 
KokaДата: Вторник, 09.09.2008, 04:10:32 | Сообщение # 5
Полковник
Группа: Пользователи
Сообщений: 169
Репутация: 1
Статус: Не в сети
Reason: Server shutting down
L 09/09/2008 - 04:08:59: Server shutdown
L 09/09/2008 - 04:08:59: Log file closed
L 09/09/2008 - 04:08:59: FATAL ERROR (shutting down): Host_Error: WriteDest_Parm: not a client

ошибка появляется при появлении энтити на месте
это я добавил последнюю строчку:

Quote

new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString,"info_target"))

set_pev(ent, pev_classname, "some_bag")
set_pev(ent, pev_solid, SOLID_TRIGGER)

set_pev(ent, pev_origin, myorigin[id])

set_pev(ent, pev_scale, 0.2) // razmer

set_pev(ent, pev_owner, id)

engfunc(EngFunc_SetSize, ent, Float: { -50.0, -50.0, -50.0 }, Float: { 50.0, 50.0, 50.0 })



стал ощущать рефлексы тоньше, оставаясь как всегда с идеей той же...

Сообщение отредактировал Koka - Вторник, 09.09.2008, 04:13:56
 
DaTaДата: Вторник, 09.09.2008, 09:37:42 | Сообщение # 6
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Некоторые SOLID_* константы применимы только к bsp моделям, попробуй использовать, например, SOLID_BBOX.

Насколько я помню, атрибут pev_scale применим только к энтитям с моделькой, он ее растягивает визуально, в Полезной информации есть описание этого атрибута.

 
KokaДата: Среда, 10.09.2008, 07:16:17 | Сообщение # 7
Полковник
Группа: Пользователи
Сообщений: 169
Репутация: 1
Статус: Не в сети
спасибо, все заработало:
- удалил set_pev(ent, pev_scale, 0.2)
- SOLID_* нетрогал
- подправил код (при падении серва)
- поставил так engfunc(EngFunc_SetSize, ent, Float: { 0.0, 0.0, 0.0 }, Float: { 0.0, 0.0, 0.0 })


стал ощущать рефлексы тоньше, оставаясь как всегда с идеей той же...
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026