Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 24 июн 2024, 00:48

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 15 апр 2011, 23:54 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2011, 03:32
Последнее посещение:
09 дек 2021, 03:04
Сообщения: 756
Откуда: Futurama
подскажите ... как определить владельца брошеной гранаты ?


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 18 апр 2011, 00:57 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2011, 03:32
Последнее посещение:
09 дек 2021, 03:04
Сообщения: 756
Откуда: Futurama
отвечу сам на свой вопрос ))) используя:
Код:
registerHam(Ham_Spawn, "ent", "function_spawn") // ent = grenade , к примеру

public function_spawn(index_ent) {
new owner
pev(index_ent, pev_owner, owner, 31)

// затем передаем значение "owner" в нужную функцию (если требуется )
function_next(param1, param2, owner);}


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 19 апр 2011, 17:38 
Не в сети
Аватара пользователя
Зарегистрирован:
01 июн 2010, 23:25
Последнее посещение:
05 июл 2018, 16:02
Сообщения: 1035
Ой.

Код:
new owner = pev(index_ent, pev_owner)

_________________
Изображение


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 19 апр 2011, 22:20 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2011, 03:32
Последнее посещение:
09 дек 2021, 03:04
Сообщения: 756
Откуда: Futurama
:cry: Решил переписать плагин, затер старый код, теперь "pev_owner" не работает. Может кто подскажет как поправить ?, как тока не пробывал ... было примерно так :
Код:
new owner // или в -> ham_spawn "new owner"

ham_spawn(index) {    // "monster_satchel"
pev(index, pev_owner, owner, 31)
ham_touch(0, 0, owner);}

//делал проверки на соответствие классу "victim" = "player", и модели "ent" = "models/w_satchel.mdl"
//все остальное работает к примеру "pev_velocity" или user_kill(victim)

ham_touch(ent, victim, owner) {
new frags = pev(owner, pev_frags)
frags += 1
set_pev(owner, pev_frags, frags);}


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 20 апр 2011, 05:50 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
22 июн 2024, 20:20
Сообщения: 6871
Код:
pev(index, pev_owner, owner, 31)
Не пойму, почему ты передаешь туда owner как массив (с указанием длины массива). pev_owner же число (integer).
Код:
new owner = pev(ent, pev_owner);


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 20 апр 2011, 05:51 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
22 июн 2024, 20:20
Сообщения: 6871
Если читать тему с начала, то тут дежавю какое-то...


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 20 апр 2011, 11:24 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2011, 03:32
Последнее посещение:
09 дек 2021, 03:04
Сообщения: 756
Откуда: Futurama
Понимаю что несуразица но!.. Это решение было найдено научным методом тыка ) если не передавать owner как массив через ham_spawn (при этом не объявляя его таковым) то выброшеные гранаты зависали в воздухе. Через ham_touch правильно так как ты сказал ... но так работало то норм) вот в чем парадокс о_О, только не получается повторить успеха.
Чем можно обьяснить что это не работает ? :( очень странно добавляет фраги )) и граната отнимает не верное значение )
Код:
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#define drop_cvar get_cvar_num("mp_weaponstay")

new const classes[][] = {"monster_satchel","grenade"}
new Float:increment = 1.0
new Float:float_m[3]
new owner
new InTs[32]

public plugin_init() {
for(new i; i < sizeof classes; i++) {
RegisterHam(Ham_Touch, classes[i], "touch");}}

public touch(iEntity, iTouched) {   
pev(iEntity, pev_model, InTs, 31)
if(!equali(InTs, "models/grenade.mdl")) { // исключаем подстволку
   float_m[0] = 10.0
   owner = pev(iEntity, pev_owner)                //
   pev(iTouched, pev_health, float_m[1])
   
   float_m[1] -= float_m[0]
   if(float_m[1] < increment) {
      user_kill(iTouched)
      set_pev(owner, pev_frags, pev(owner, pev_frags) + increment);}
      else {
         set_pev(iTouched, pev_health, float_m[1])
         pev(iEntity, pev_velocity, float_m)   
         float_m[0] *= 2, float_m[1] *= 2, float_m[2] *= 2   
         set_pev(iTouched, pev_velocity, float_m)   
         switch(drop_cvar) {
            case 0: {console_cmd(iTouched, "drop");}
            case 1: {set_cvar_num("mp_weaponstay", 0), console_cmd(iTouched, "drop");}}}}}


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 11 июл 2011, 20:16 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2011, 03:32
Последнее посещение:
09 дек 2021, 03:04
Сообщения: 756
Откуда: Futurama
Почему индекс владельца для сатчела и снарка определяется а для остальных нет ?
 1>>1


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 11 июл 2011, 20:49 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
22 июн 2024, 20:20
Сообщения: 6871
Потому что:
Код:
CGrenade *CGrenade::ShootContact( entvars_t *pevOwner, Vector vecStart, Vector vecVelocity )
{
   CGrenade *pGrenade = GetClassPtr( (CGrenade *)NULL );
   pGrenade->Spawn();
...
   pGrenade->pev->owner = ENT(pevOwner);


Вернуться к началу
 Профиль 
  
СообщениеДобавлено: 11 июл 2011, 22:01 
Не в сети
Аватара пользователя
Зарегистрирован:
24 янв 2011, 03:32
Последнее посещение:
09 дек 2021, 03:04
Сообщения: 756
Откуда: Futurama
Lev
моя твоя не понимать :P

_________________
my gun is bigger than yours ! ..


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB