|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
как добавить новое оружие в КС16?
|
|
heor | Дата: Среда, 30.07.2008, 00:25:50 | Сообщение # 16 |
Сержант
Группа: Пользователи
Сообщений: 33
Статус: Не в сети
| Quote регистрируешь команду "weapon_xxx" посредством register_clcmd() . Зачем??? что эта комманда должна делать? Как выдать это игроку оружие именно на 5 слот. Приведите пример. Нарисовать ему оружие через curWeapon? И самое интересное. Как написать для него физику?
|
|
| |
VEN | Дата: Воскресенье, 03.08.2008, 17:10:36 | Сообщение # 17 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| 1. Чтобы сервер/AMX Mod X знал, что клиент пытается выбрать данное оружие и осуществить соответствующее действие. 2. См. п.1. 3. Отослать клиентское сообщение (user message) со SlotID равным 4: http://wiki.amxmodx.org/index.php/Half-Life_1_Game_Events#WeaponList 4. Code message_begin(MSG_ONE, get_user_msgid("WeaponList") , _, id) write_string("weapon_xxx") write_byte(15) write_byte(99) write_byte(-1) write_byte(-1) write_byte(4) write_byte(4) write _byte(2) write_byte(0) message_end() 5. Для этого сначала необходимо сконфигурировать HUD для данного оружия (примеры см. в .\cstrike\sprites\) 6. На предыдущей странице были ссылки на существующие плагины - см. их исходный код для примера.
|
|
| |
heor | Дата: Понедельник, 04.08.2008, 18:57:59 | Сообщение # 18 |
Сержант
Группа: Пользователи
Сообщений: 33
Статус: Не в сети
| Quote Для этого сначала необходимо сконфигурировать HUD для данного оружия (примеры см. в .\cstrike\sprites\) . Что означают эти числа. В файле weapon_ak47.txt? Code 10 weapon 320 320hud1 160 80 80 20 weapon_s 320 320hud1 160 100 80 20 ammo 320 640hud7 72 72 24 24 crosshair 320 crosshairs 24 0 24 24 autoaim 320 crosshairs 0 72 24 24 weapon 640 640hud10 0 0 170 45 weapon_s 640 640hud11 0 0 170 45 ammo 640 640hud7 72 72 24 24 crosshair 640 crosshairs 24 0 24 24 autoaim 640 crosshairs 0 72 24 24 Какой программой можно посмотреть эти спрайты??? да и wad тоже ???
Сообщение отредактировал heor - Понедельник, 04.08.2008, 19:26:28 |
|
| |
slogic | Дата: Вторник, 05.08.2008, 13:44:43 | Сообщение # 19 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (heor) Что означают эти числа. В файле weapon_ak47.txt? Положение спрайта в .spr файле: left, top, width, height. Quote (heor) Какой программой можно посмотреть эти спрайты??? sprview
|
|
| |
heor | Дата: Вторник, 05.08.2008, 18:32:15 | Сообщение # 20 |
Сержант
Группа: Пользователи
Сообщений: 33
Статус: Не в сети
| А что означает weapon, weapon_s, crosshair. Какая между ними разница, и почему они повторяються? Quote Положение спрайта в .spr файле: left, top, width, height. В какой системе координат? Точка x = 0, y = 0, в левом верхнем углу? Максимальное по X, Y 255? или разрешение экрана?
Сообщение отредактировал heor - Вторник, 05.08.2008, 18:32:46 |
|
| |
VEN | Дата: Вторник, 05.08.2008, 19:47:05 | Сообщение # 21 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Quote В какой системе координат? Прямоугольная (Декартова) ортонормированная система координат на плоскости (двухмерная). Quote Точка x = 0, y = 0, в левом верхнем углу? Да. Quote Максимальное по X, Y 255? Максимумы соответствует размеру спрайта. Однако, как было сказано в посте #5Quote Размеры изображений должны соответствовать стандартам. Quote что означает weapon, weapon_s, crosshair. weapon - неактивная иконка оружия в списке оружия (weaponlist) weapon_s - активная иконка оружия в списке оружия (weaponlist) (очевидно, "s" - сокращение от selected - англ. "выбранный"). crosshair - прицел, перекрестие Quote почему они повторяються? Очевидно, даны координаты для различных соответствующих режимов разрешения изображения на экране монитора. Quote Что означают эти числа Ответ на этот вопрос уже был дан почти полностью - читай внимательно пост #5.Quote В конфигурационном txt файле указываем названия спрайтов, а также координаты изображений в спрайте. Формат указания координад следующий: x0, y0, w, h, где x0 и y0 - координаты точки начала изображения в спрайте, а w и h - ширина и высота изображения. Что касается чисел 320 и 640 - см. чуть выше. Причем 640 следует понимать как "более либо равно 640".
|
|
| |
draft | Дата: Вторник, 05.08.2008, 21:30:52 | Сообщение # 22 |
Полковник
Группа: Пользователи
Сообщений: 225
Статус: Не в сети
| А вот у меня вопрос, можно ли выдать оружие модели игрока, присвоенной не игроку, а левому entity? То бишь, по сути, сымитировать бота, только без fakeplayer, занимающего слот?
|
|
| |
slogic | Дата: Среда, 06.08.2008, 12:49:00 | Сообщение # 23 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (draft) А вот у меня вопрос, можно ли выдать оружие модели игрока, присвоенной не игроку, а левому entity? По-русски как я понял, навесить модель игрока на произвольную сущность - теоретически можно. Только запаришься заставлять его двигаться и реагировать на окружение.
|
|
| |
heor | Дата: Суббота, 13.12.2008, 15:41:05 | Сообщение # 24 |
Сержант
Группа: Пользователи
Сообщений: 33
Статус: Не в сети
| Вот я написал следущий код : Code #include <amxmodx> #include <engine> #include <fakemeta>
#define PLUGIN "Test" #define VERSION "1.0" #define AUTHOR "author"
new is_choused = 0 new pAllocModel, vAllocModel
public plugin_precache() { precache_model("models/p_squeak.mdl") precache_model("models/v_squeak.mdl") }
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("cmd_weapon_xxx", "cmd_weapon_xxx") register_clcmd("weapon_xxx", "weapon_xxx") pAllocModel = engfunc(EngFunc_AllocString, "models/p_squeak.mdl"); vAllocModel = engfunc(EngFunc_AllocString, "models/v_squeak.mdl");
register_forward(FM_CmdStart, "fwd_CmdStart") register_forward(FM_UpdateClientData, "fwUpdateClientData", 1) register_event("CurWeapon", "Event_CurWeapon","be", "1=1") register_event("ResetHUD", "Event_PlayerSpawned", "be") }
public weapon_xxx(id){ cmd_weapon_xxx(id) }
public cmd_weapon_xxx(id){ if (is_choused == 0){ is_choused = 1 client_cmd(id, "use weapon_knife") } else{ is_choused = 0 } }
public Event_PlayerSpawned(id){ message_begin(MSG_ONE, get_user_msgid("WeaponList") , _, id) write_string("weapon_xxx") write_byte(15) write_byte(99) write_byte(-1) write_byte(-1) write_byte(4) write_byte(4) write_byte(2) write_byte(0) message_end() }
public Event_CurWeapon(id){ if (is_choused == 1){ set_pev(id, pev_weaponmodel, pAllocModel) set_pev(id, pev_viewmodel, vAllocModel) set_pev(id, pev_weaponanim, 9) } }
public fwd_CmdStart(id, uc_handle, seed){ if (is_choused == 0) return FMRES_IGNORED return FMRES_IGNORED }
public fwUpdateClientData(id, sendweapons, cd_handle){ if (is_choused == 0) return FMRES_IGNORED if (get_cd(cd_handle, CD_ID) == CSW_KNIFE){ set_cd(cd_handle, CD_ID, 0) return FMRES_HANDLED } return FMRES_IGNORED } Допустим оружие сразу имееться. Как выбрать его не используя комманду cmd_weapon_xxx? Как вызвать weapon_xxx?
|
|
| |
| AMX Mod X Russian Community © 2006-2024 | |
|
| |