AMX MOD X
Пятница, 03.05.2024, 14:42:01



Приветствую Вас Гость | RSS
[ Главная ] [ как добавить новое оружие в КС16? - Страница 2 - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » как добавить новое оружие в КС16?
как добавить новое оружие в КС16?
heorДата: Среда, 30.07.2008, 00:25:50 | Сообщение # 16
Сержант
Группа: Пользователи
Сообщений: 33
Репутация: 0
Статус: Не в сети
Quote
регистрируешь команду "weapon_xxx" посредством register_clcmd()
. Зачем??? что эта комманда должна делать?
Как выдать это игроку оружие именно на 5 слот. Приведите пример. Нарисовать ему оружие через curWeapon?
И самое интересное. Как написать для него физику?
 
VENДата: Воскресенье, 03.08.2008, 17:10:36 | Сообщение # 17
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
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
Репутация: 0
Статус: Не в сети
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
Репутация: 47
Статус: Не в сети
Quote (heor)
Что означают эти числа. В файле weapon_ak47.txt?

Положение спрайта в .spr файле: left, top, width, height.

Quote (heor)
Какой программой можно посмотреть эти спрайты???

sprview
 
heorДата: Вторник, 05.08.2008, 18:32:15 | Сообщение # 20
Сержант
Группа: Пользователи
Сообщений: 33
Репутация: 0
Статус: Не в сети
А что означает 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
Репутация: 45
Статус: Не в сети
Quote
В какой системе координат?
Прямоугольная (Декартова) ортонормированная система координат на плоскости (двухмерная).

Quote
Точка x = 0, y = 0, в левом верхнем углу?
Да.

Quote
Максимальное по X, Y 255?
Максимумы соответствует размеру спрайта. Однако, как было сказано в посте #5
Quote
Размеры изображений должны соответствовать стандартам.

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
Репутация: 3
Статус: Не в сети
А вот у меня вопрос, можно ли выдать оружие модели игрока, присвоенной не игроку, а левому entity? То бишь, по сути, сымитировать бота, только без fakeplayer, занимающего слот?
 
slogicДата: Среда, 06.08.2008, 12:49:00 | Сообщение # 23
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (draft)
А вот у меня вопрос, можно ли выдать оружие модели игрока, присвоенной не игроку, а левому entity?

По-русски как я понял, навесить модель игрока на произвольную сущность - теоретически можно. Только запаришься заставлять его двигаться и реагировать на окружение.
 
heorДата: Суббота, 13.12.2008, 15:41:05 | Сообщение # 24
Сержант
Группа: Пользователи
Сообщений: 33
Репутация: 0
Статус: Не в сети
Вот я написал следущий код :

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 Форум » Скриптинг » Помощь по скриптингу » как добавить новое оружие в КС16?
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

AMX Mod X Russian Community © 2006-2024