Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Столкновение в entity

OverGame
сообщение 2.10.2014, 18:40
Сообщение #1
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Как можно провести столкновение в entity?
Взял пример на amxmodx, но не нашел примера с столкновением объекта.

Если игрок столкнулся с данной моделькой, ему дается к примеру хп и удаляется объект.

Код:
#include < amxmodx >
#include < amxmisc >
#include < engine >

#define PLUGIN "[amxmodx]"
#define VERSION "1.0"
#define AUTHOR "admin"

#pragma tabsize 0

new gGift
new g_Model[] = {"models/model1.mdl"}

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /create","add_obj")
}

public plugin_precache()
{
precache_model(g_Model)
}

public add_obj(id)
{
gGift = create_entity("info_target")

if( is_valid_ent(gGift) )
{
entity_set_model(gGift, g_Model)
entity_set_size(gGift,Float:{-6.0, -10.0, 0.0},Float:{6.0, 10.0, 18.0})
new Float:f_Origin[3]
entity_get_vector(id, EV_VEC_origin, f_Origin)
f_Origin[0] += 50.0
entity_set_origin(gGift, f_Origin)
entity_set_int(gGift,EV_INT_solid,SOLID_BBOX)

entity_set_float(gGift, EV_FL_takedamage, DAMAGE_YES)

new Float:angles[3]
angles[0] = 0.0
angles[1] = 0.0
angles[2] = 0.0
entity_set_vector(gGift,EV_VEC_angles,angles)

drop_to_floor(gGift)
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя ex3m777
сообщение 2.10.2014, 19:41
Сообщение #2


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

Посмотри какой-то плагин подарков. Не?


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 2.10.2014, 19:49
Сообщение #3
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Цитата(ex3m777 @ 2.10.2014, 19:41) *
Посмотри какой-то плагин подарков. Не?

не, мне нужно именно по этому уроку.
В подарках там множество не нужного кода.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 2.10.2014, 19:56
Сообщение #4
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

register_touch("classname of entity1", "classname of entity2", func)

http://amxxmodx.ru/engine/engineinc/423-re...eni-klassa.html

Отредактировал: csnet, - 2.10.2014, 19:59


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
OverGame
сообщение 2.10.2014, 19:57
Сообщение #5
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Цитата(csnet @ 2.10.2014, 19:56) *
register_touch("classname of entity1", "classname of entity2", func)


public func(kto,kogo)
{
kto = toucher
kogo = touched

}

Вот спасибо.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
OverGame
сообщение 2.10.2014, 20:03
Сообщение #6
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Цитата(csnet @ 2.10.2014, 19:56) *
register_touch("classname of entity1", "classname of entity2", func)

http://amxxmodx.ru/engine/engineinc/423-re...eni-klassa.html


хм... я не догнал... Это используется к gGift или же к add_obj?
Код:
register_touch(gGift,"player","fwd_touch")


Отредактировал: OverGame, - 2.10.2014, 20:14
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 2.10.2014, 20:34
Сообщение #7
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

код у тебя не верный немного
чтобы работать с классами надо их сначала ЗАДАТЬ


Код:


new giftclass[] = "podarok" // делаем глобально



gGift = create_entity("info_target")

if( is_valid_ent(gGift) )
{
entity_set_int(gGift,EV_INT_solid,SOLID_BBOX)
ниже
set_pev(gGift, pev_classname, giftclass)
теперь подарок можно отслеживать по классу




для игрока+ подарок

register_touch(giftclass, "player", здесь функция)

если хочешь чисто на engine без фейкмекты тогда
entity_set_string(entity, EV_SZ_classname, giftclass)

Отредактировал: csnet, - 2.10.2014, 20:37


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
OverGame
сообщение 2.10.2014, 20:50
Сообщение #8
Стаж: 11 лет

Сообщений: 384
Благодарностей: 217
Полезность: 348

Спасибо, все работает. Лайк поставил, до этого писал о ошибке. Оказывается я выводил текст объекту а не пользователю :D

Отредактировал: OverGame, - 2.10.2014, 20:59
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: