AMX MOD X
Четверг, 16.05.2024, 11:41:29



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Как вставлять в игру спрайты?
Как вставлять в игру спрайты?
DESTROYERДата: Пятница, 01.06.2007, 12:23:54 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 39
Репутация: 0
Статус: Не в сети
Вот разобраться немагу как вставить в игру спрайты sad
в различных плагинах написано:
(вырезка из произвольного скрипта)
...
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
Репутация: 47
Статус: Не в сети
Куда именно ты их хочешь вставлять, определился?
 
DESTROYERДата: Пятница, 01.06.2007, 12:59:24 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 39
Репутация: 0
Статус: Не в сети
Вопщето я делаю плагин с жизнями
т.е. одного убил +1 жизнь...
если тебя убъют то соответственно -1 жизнь
при возрождении идет просчет 5 сек чтоб ты успел купить оружие... после етого тебя телепортирует на место смерти или ты успеваеш написать (/dt) чтоб не телепортировало...
так вот я хочу зделать чтоб на месте смерти был какойнить спрайт...
Прикрепления: 08607397.sma (5.6 Kb)


пропиши (Abort;) в совей жизни
 
slogicДата: Пятница, 01.06.2007, 13:13:02 | Сообщение # 4
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Тогда тебе надо посмотреть код плагина Player Ghosts:

http://forums.alliedmods.net/showthread.php?p=439512#post439512

По-моему идеально тебе подходит.

 
DESTROYERДата: Пятница, 01.06.2007, 13:19:26 | Сообщение # 5
Сержант
Группа: Пользователи
Сообщений: 39
Репутация: 0
Статус: Не в сети
спс smile

пропиши (Abort;) в совей жизни
 
babushka-monk-denДата: Пятница, 01.06.2007, 13:56:46 | Сообщение # 6
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 1
Статус: Не в сети
а как вставись Hudmessage sprites???? angry wacko

Пошли ко мне домой(...)
 
slogicДата: Пятница, 01.06.2007, 14:19:35 | Сообщение # 7
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Они не вставляются, они вызываются по зарегистрированным именам (альясам) с помощью разных сообщений ("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
Репутация: 0
Статус: Не в сети
вот у мя косяк с вставкой спрайтов... как зделать так чтоб его все видели??
у меня написано:
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
и еще как изменить размер спрайта? blink

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] место игрока

в итоге исправелния етих проблем появилась новая:
как установить время продолжительности спрайта
т.е. установить время за которое спрайт полонстью покажется и исчезнет wink


пропиши (Abort;) в совей жизни

Сообщение отредактировал DESTROYER - Воскресенье, 03.06.2007, 15:07:43
 
slogicДата: Вторник, 05.06.2007, 17:01:09 | Сообщение # 9
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (DESTROYER)
get_players(players,num)
for(i = 0; i <= num; i++)

Здесь ошибка. Должно быть:
Quote
for(i = 0; i < num; i++)

 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Как вставлять в игру спрайты?
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024