Инфо из engine.inc:
/* Sets the model of an Entity. */
native entity_set_model(iIndex, const szModel[]);
Синтаксис:
entity_set_model ( entity, Model[] )
- entity - id объекта
- Model[] - Устанавливаемая модель
Внимание: Все модели должны быть предварительно закеширвоаны с помощью функций plugin_precache и precache_model
public plugin_precache() {
precache_model("models/you_model.mdl")
}
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <engine>
#define PLUGIN "[engine.inc] entity_set_model"
#define VERSION "1.0"
#define AUTHOR "Admin"
new g_Model[] = {"models/chick.mdl"}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /chick","add_chicken")
}
public plugin_precache(){
precache_model(g_Model)
}
public add_chicken(id){
new Ent = create_entity("info_target")
if(is_valid_ent(Ent)){
new Float:f_Origin[3]
entity_get_vector(id, EV_VEC_origin, f_Origin)
f_Origin[0] += 50.0
entity_set_origin(Ent, f_Origin)
entity_set_model(Ent, g_Model)
}
}
Описание:
Как было описано в синтаксисе, для начала мы создаем массив и помещаем туда путь до используемой модели.
И в функции plugin_precache кешируем ее.
Затем при помощи команды say /chick, вызывается функция add_chicken, в которой мы:
- Создаем новый объект и получаем его id в новую переменную Ent
- Создаем условие где проверяем что объект создан и если все правильно продолжаем
- Получаем координаты игрока ( их можно получить разными способами, или в обще в ручную написать) Но так как мы рассматриваем модуль engine, то и функцию берем из этого же модуля entity_get_vector ( о ней в другой раз)
- Устанавливаем координаты нашему объекту entity_set_origin
- И в завершении устанавливаем модель и при выполнении команды на сервере - рядом с нами появится курица
Что бы установить свойства объекту, необходимо использовать еще несколько разных функций, но это уже совсем другая история.