Как вставлять в игру спрайты?
|
|
DESTROYER | Дата: Пятница, 01.06.2007, 12:23:54 | Сообщение # 1 |
 Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| Вот разобраться немагу как вставить в игру спрайты в различных плагинах написано: (вырезка из произвольного скрипта) ... write_coord(oldlocation[2]+60) write_short(tele_sprite) write_byte(0) write_byte(0) ... а что означает каждая ета строка непонятно...
пропиши (Abort;) в совей жизни
|
|
| |
slogic | Дата: Пятница, 01.06.2007, 12:53:18 | Сообщение # 2 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Куда именно ты их хочешь вставлять, определился?
|
|
| |
DESTROYER | Дата: Пятница, 01.06.2007, 12:59:24 | Сообщение # 3 |
 Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| Вопщето я делаю плагин с жизнями т.е. одного убил +1 жизнь... если тебя убъют то соответственно -1 жизнь при возрождении идет просчет 5 сек чтоб ты успел купить оружие... после етого тебя телепортирует на место смерти или ты успеваеш написать (/dt) чтоб не телепортировало... так вот я хочу зделать чтоб на месте смерти был какойнить спрайт...
пропиши (Abort;) в совей жизни
|
|
| |
slogic | Дата: Пятница, 01.06.2007, 13:13:02 | Сообщение # 4 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Тогда тебе надо посмотреть код плагина Player Ghosts: http://forums.alliedmods.net/showthread.php?p=439512#post439512 По-моему идеально тебе подходит.
|
|
| |
DESTROYER | Дата: Пятница, 01.06.2007, 13:19:26 | Сообщение # 5 |
 Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| спс
пропиши (Abort;) в совей жизни
|
|
| |
babushka-monk-den | Дата: Пятница, 01.06.2007, 13:56:46 | Сообщение # 6 |
 Рядовой
Группа: Пользователи
Сообщений: 8
Статус: Не в сети
| а как вставись Hudmessage sprites????
Пошли ко мне домой(...)
|
|
| |
slogic | Дата: Пятница, 01.06.2007, 14:19:35 | Сообщение # 7 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Они не вставляются, они вызываются по зарегистрированным именам (альясам) с помощью разных сообщений ("ItemPickup", "AmmoPickup", "StatusIcon" и прочее). Тип такого сообщения определяет возможную позицию спрайта в HUD, а также доп. возможности. Зарегистриорванные имена спрайтов описываются в файле /sprites/hud.txt, первая колонка. Пример функции отрисовки справа в HUD иконки, которая соотв. item_name (item_name - строка из hud.txt): Quote | #include <amxmodx> new g_msgItemPickup public plugin_init() { g_msgItemPickup = get_user_msgid("ItemPickup") } stock sendItemPickupMsg(id, item_name[]) { message_begin(MSG_ONE, g_msgItemPickup, {0,0,0}, id) write_string(item_name) message_end() } | Пример использования (рисует на клиенте иконку, соотв. item_battery - см. что такая строка есть в hud.txt): sendItemPickupMsg(id, "item_battery") id - это само собой индекс игрока.
Сообщение отредактировал slogic - Пятница, 01.06.2007, 18:36:08 |
|
| |
DESTROYER | Дата: Воскресенье, 03.06.2007, 11:54:09 | Сообщение # 8 |
 Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| вот у мя косяк с вставкой спрайтов... как зделать так чтоб его все видели?? у меня написано: Quote | new players[32],num,i get_players(players,num) for(i = 0; i <= num; i++) { new ida = players[i] message_begin(MSG_ONE, SVC_TEMPENTITY, {0,0,0}, ida) write_byte(17) // additive sprite, plays 1 cycle write_coord(originp[id][0]) // pos write_coord(originp[id][1]) // pos write_coord(originp[id][2]) // pos write_short (spr) // spr index write_byte(50) // (scale in 0.1's) write_byte (75) //(brightness) message_end() } | в итоге вознекает ошибка в игре Quote | Host_Error: WriteDest_Parm: not a client | по ошибке видно что он пишет не существует таково клиента хотя по скрипту ето не скажеш там идет цикл по существующим клиентам =\ EDIT и еще как изменить размер спрайта? EDIT хммм.. или ето у меня проблемы с переводом... или ето ошиблись с коментами. в итоге я нашел где записывается размер спрайта в данном случае здесь: Quote | write_byte(17) // additive sprite, plays 1 cycle write_coord(originp[id][0]) // pos write_coord(originp[id][1]) // pos write_coord(originp[id][2]) // pos write_short (spr) // spr index write_byte(50) // - размер спрайта write_byte (75) //(brightness) | также я определил как записать чтоб все видели спрайт Раньше: Quote | message_begin(MSG_ONE, SVC_TEMPENTITY, {0,0,0}, ida) | надобыло Quote | message_begin(5, 23, originp[id]) | где originp[id] место игрока в итоге исправелния етих проблем появилась новая: как установить время продолжительности спрайта т.е. установить время за которое спрайт полонстью покажется и исчезнет 
пропиши (Abort;) в совей жизни
Сообщение отредактировал DESTROYER - Воскресенье, 03.06.2007, 15:07:43 |
|
| |
slogic | Дата: Вторник, 05.06.2007, 17:01:09 | Сообщение # 9 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (DESTROYER) | get_players(players,num) for(i = 0; i <= num; i++) | Здесь ошибка. Должно быть: Quote | for(i = 0; i < num; i++) |
|
|
| |