Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 01 июн 2015, 08:28

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Нужна помощь
СообщениеДобавлено: 16 окт 2011, 22:23 
Не в сети
Аватара пользователя
Зарегистрирован:
15 апр 2011, 22:26
Последнее посещение:
19 май 2015, 04:01
Сообщения: 132
Откуда: Астрахань
Код:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>

new pcvar_weapon_entityset
new pcvar_ammo_entityset

public plugin_init()
{
   register_plugin("Egon Arena", "1.0", "Zetex")
   
   RegisterHam(Ham_Spawn, "weapon_9mmAR", "replace_weapons")
   RegisterHam(Ham_Spawn, "weapon_9mmhandgun", "replace_weapons")
   RegisterHam(Ham_Spawn, "weapon_357", "replace_weapons")
   RegisterHam(Ham_Spawn, "weapon_crossbow", "replace_weapons")
   RegisterHam(Ham_Spawn, "weapon_crowbar", "replace_weapons")
   RegisterHam(Ham_Spawn, "weapon_gauss", "replace_weapons")
   RegisterHam(Ham_Spawn, "weapon_hornetgun", "replace_weapons")
   RegisterHam(Ham_Spawn, "weapon_rpg", "replace_weapons")
   RegisterHam(Ham_Spawn, "weapon_shotgun", "replace_weapons")
   
   
   RegisterHam(Ham_Spawn, "ammo_357", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_9mmAR", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_9mmbox", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_9mmclip", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_ARgrenades", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_buckshot", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_crossbow", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_glockclip", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_mp5clip", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_mp5grenades", "replace_ammo")
   RegisterHam(Ham_Spawn, "ammo_rpgclip", "replace_ammo")
   RegisterHam(Ham_Spawn, "weapon_snark", "replace_ammo")
   RegisterHam(Ham_Spawn, "weapon_tripmine", "replace_ammo")
   RegisterHam(Ham_Spawn, "weapon_satchel", "replace_ammo")
   RegisterHam(Ham_Spawn, "weapon_handgrenade", "replace_ammo")
   
   pcvar_weapon_entityset = register_cvar("weapon_entityset", "weapon_egon")
   pcvar_ammo_entityset = register_cvar("ammo_entityset", "ammo_gaussclip")
}

public replace_weapons(ent)
{   
   new old_entity, new_entity, entity_string[64], entity_engine_string
   new Float:origin[3], Float:angles[3]

   get_pcvar_string(pcvar_weapon_entityset, entity_string, charsmax(entity_string))

   entity_engine_string = engfunc(EngFunc_AllocString, entity_string)

   if (pev(old_entity, pev_owner) != 0)
      return PLUGIN_CONTINUE

   pev(old_entity, pev_origin, origin)
   pev(old_entity, pev_angles, angles)

   engfunc(EngFunc_RemoveEntity, old_entity)

   new_entity = engfunc(EngFunc_CreateNamedEntity, entity_engine_string)
   set_pev(new_entity, pev_angles, angles)
   set_pev(new_entity, pev_origin, origin)

   dllfunc(DLLFunc_Spawn, new_entity)
   
   return PLUGIN_CONTINUE
}

public replace_ammo(ent)
{   
   new old_entity, new_entity, entity_string[64], entity_engine_string
   new Float:origin[3], Float:angles[3]

   get_pcvar_string(pcvar_ammo_entityset, entity_string, charsmax(entity_string))

   entity_engine_string = engfunc(EngFunc_AllocString, entity_string)

   if (pev(old_entity, pev_owner) != 0)
      return PLUGIN_CONTINUE

   pev(old_entity, pev_origin, origin)
   pev(old_entity, pev_angles, angles)

   engfunc(EngFunc_RemoveEntity, old_entity)

   new_entity = engfunc(EngFunc_CreateNamedEntity, entity_engine_string)
   set_pev(new_entity, pev_angles, angles)
   set_pev(new_entity, pev_origin, origin)

   dllfunc(DLLFunc_Spawn, new_entity)
   
   return PLUGIN_CONTINUE
}

Почему-то не работает... Объясните в чём ошибка)

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


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 17 окт 2011, 00:00 
Не в сети
Аватара пользователя
Зарегистрирован:
01 июн 2010, 23:25
Последнее посещение:
01 июн 2015, 01:03
Сообщения: 969
Потому что old_entity нигде не используется. Она нуль. А ты пытаешься получить ее координаты и удалить (тут сервер может вылететь)

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


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 17 окт 2011, 00:07 
Не в сети
Аватара пользователя
Зарегистрирован:
01 июн 2010, 23:25
Последнее посещение:
01 июн 2015, 01:03
Сообщения: 969
И чтоб реализовать эту идею, не обязательно ловить Ham_Spawn. Достаточно при старте карты один раз пройтись по всем интересующим энтитям и заменить.

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


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 17 окт 2011, 05:05 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
01 июн 2015, 02:09
Сообщения: 4973
Пример можно в AntiEgon глянуть.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 17 окт 2011, 10:09 
Не в сети
Аватара пользователя
Зарегистрирован:
15 апр 2011, 22:26
Последнее посещение:
19 май 2015, 04:01
Сообщения: 132
Откуда: Астрахань
Lev писал(а):
Пример можно в AntiEgon глянуть.
собственно оттуда и была взята часть кода. :oops:

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


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

Сейчас этот форум просматривают: Yahoo [Bot] и гости: 1


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

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