AMX MOD X
Пятница, 19.04.2024, 00:00:11



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

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

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Помогите нечто доделать в моем плагине (В готовом плагине для HL доделать некоторые фишки)
Помогите нечто доделать в моем плагине
VladimirokДата: Четверг, 04.06.2009, 17:31:24 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 73
Репутация: 0
Статус: Не в сети
Я написал плагин который позволяет игрокам ставить на карте почти неограниченое количество ящиков которые взрываються если по ним стрельнуть. Столкнулся с некоторыми проблемами, а точнее:

- как зделать чтобы звук при попадании в ящик и взрыве был не стекляный (стрельба в стекло) а деревяный
- как имитировать осколки ящика после того как он взорвался а потом через некоторое время что бы они исчезли (как гильзы от уружия)
- как нанести декали зрыва на землю (как например черное пятно на земле от гранаты)

Буду рад любой информации. Большое спасибо!

Сам плагин:

Прикрепления: ItemBox.sma (8.7 Kb)
 
PAHANCSДата: Четверг, 04.06.2009, 17:53:15 | Сообщение # 2
Полковник
Группа: Пользователи
Сообщений: 183
Репутация: 4
Статус: Не в сети
Quote (Vladimirok)
как нанести декали зрыва на землю (как например черное пятно на земле от гранаты)

Code

#define fm_get_decal_index(%1) engfunc(EngFunc_DecalIndex, %1)

static Float:fOrigin[3]
pev(ent, pev_origin, fOrigin)

message_begin(MSG_ALL, SVC_TEMPENTITY)
write_byte(TE_WORLDDECAL)
write_coord(floatround(fOrigin[0]))
write_coord(floatround(fOrigin[1]))
write_coord(floatround(fOrigin[2]))
write_byte(fm_get_decal_index("{scorch3"))

{scorch3 - это и есть имя текстуры декала взрыва гранаты, если хочеш выбирай другой из
файла decals.wad, открыть этот файл можно с помощью программы Wally.


PAHANCS

Сообщение отредактировал PAHANCS - Четверг, 04.06.2009, 18:05:01
 
VladimirokДата: Четверг, 04.06.2009, 18:23:47 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 73
Репутация: 0
Статус: Не в сети
PAHANCS, большое тебе спасибо!

Жду далиших ответов:

- как зделать чтобы звук при попадании в ящик и взрыве был не стекляный (стрельба в стекло) а деревяный
- как имитировать осколки ящика после того как он взорвался а потом через некоторое время что бы они исчезли (как гильзы от уружия)

 
defaultNick8433Дата: Четверг, 04.06.2009, 18:41:20 | Сообщение # 4
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Ну я думаю,надо как-то сделать sprite(осколки) и удалить их потом функцией delete_oskolok()
Code
{new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
     engfunc(EngFunc_SetOrigin, ent, g_parametr)
     engfunc(EngFunc_SetModel, ent,g_oskolok)
     set_pev(ent,pev_solid,1)
     dllfunc(DLLFunc_Spawn, ent)
                set_task(4.0,"delete_oskolok",_,_,_,"b")
}
public delete_oskolok()
{
new ent = find_ent_by_class(-1, g_oskolok)
     while (ent > 0)     
     {
      new model[33]
      entity_get_string(ent, EV_SZ_model, model, 32)
      if (equali(model, "sprites/oskolok.spr"))     
      {
       remove_entity(ent)
       return PLUGIN_CONTINUE
      }
      ent = find_ent_by_class(ent, g_oskolok)
     }
     return PLUGIN_CONTINUE
}

Добавлено (2009-06-04, 6:41 Pm)
---------------------------------------------
Vladimirok, а нельзя сделать,чтоб когда взрывался ящик,воспроизводился звук дерева,тогда придётся брать этот звук откуда,может из халф-лайф,а так всё просто client_cmd(0,"spk ^%s^"",g_x)


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001


Сообщение отредактировал defaultNick8433 - Четверг, 04.06.2009, 18:37:55
 
VladimirokДата: Четверг, 04.06.2009, 19:31:51 | Сообщение # 5
Лейтенант
Группа: Пользователи
Сообщений: 73
Репутация: 0
Статус: Не в сети
PAHANCS, какая библиотека использует функцию fm_get_decal_index("{scorch3") ?

defaultNick8433, когда стреляешь в ящик (он пака не взрываеться) то слышен звук стекла.

Сообщение отредактировал Vladimirok - Четверг, 04.06.2009, 19:33:57
 
defaultNick8433Дата: Четверг, 04.06.2009, 20:06:28 | Сообщение # 6
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Code

new const g_yashik[]="models/k.mdl"
new const g_x[]="sound/bI.wav"

public plugin_precache()
{
precache_model(g_yashik)
precache_sound(g_x)
}
RegisterHam(Ham_TakeDamage,"entity","hp_jid")

public hp_jid(entity)
{
if(g_yashik[entity])
return HAM_IGNORED
client_cmd(0,"spk ^"%s^"",g_x)
}

Ентитю,которую ранят-это g_yashik,вспроизодитя звук bI,находящийя в масиве g_x


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001


Сообщение отредактировал defaultNick8433 - Четверг, 04.06.2009, 20:09:04
 
VladimirokДата: Четверг, 04.06.2009, 21:14:34 | Сообщение # 7
Лейтенант
Группа: Пользователи
Сообщений: 73
Репутация: 0
Статус: Не в сети
defaultNick8433, слышно и стекло и дерево) И вообще не хорошо хуки ставить и игнорировать, есть там какойто флаг или байт в энтити, куда записываеться вид матереала. Как при создании карт для HL/CS в Hammer Editor. Типа: Metal, Wood, Glass ... Только как узнать куда что записывать.

Вот так делал

Code
RegisterHam(Ham_TakeDamage, "func_breakable", "item_box_hit")

public item_box_hit(iCurrent)
{
   if(is_valid_ent(iCurrent))
   {
    new classname[32]
    entity_get_string(iCurrent, EV_SZ_classname, classname, 32)
    if(equal(classname, "ItemBox"))
    {
     return HAM_IGNORED
     emit_sound(iCurrent, CHAN_ITEM, ItemBoxSounds[random_num(0, 3)], 1.0, ATTN_NORM, 0, PITCH_NORM)
    }
   }
   return PLUGIN_HANDLED
}


Сообщение отредактировал Vladimirok - Четверг, 04.06.2009, 21:15:51
 
StProZДата: Четверг, 04.06.2009, 21:21:46 | Сообщение # 8
Сержант
Группа: Пользователи
Сообщений: 39
Репутация: 1
Статус: Не в сети
Вот параметры ящика чтоб были осколки и звук( для маппинга, а для скриптинга хз, но если в скриптинге моэно делать ящики, то знач без опций в маппинге сдесь не обойтись)
name = пусто (имя, оставить пустым)
target on break = пусто(цель после ломания)
strengh = 20 (хп ящика)
material type = wood
gibs direction = пусто
delay before fire = пусто (время до активации цели)
gib model= пусто ( я хз что это)
spawn on break= пусто (что появица после ломания, доступно токо для хл)
explode magnitude = 20 (Колво дмг)
render FX = пусто (рендер отображения)
render mode = Normal (вид отображения)
FX ammount= 255 (Прозрачность, от 0 до 255)
FX color= пусто (цвет)
minimum light level= пусто ( минимальный уровень света)


Сообщение отредактировал StProZ - Четверг, 04.06.2009, 21:22:32
 
PomanoBДата: Четверг, 04.06.2009, 21:25:55 | Сообщение # 9
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Quote (StProZ)
gib model

Подозреваю что это модельки осколков


http://romanov4400.mybrute.com
 
VladimirokДата: Четверг, 04.06.2009, 21:47:14 | Сообщение # 10
Лейтенант
Группа: Пользователи
Сообщений: 73
Репутация: 0
Статус: Не в сети
Ничево не помогло :( А не подскажете, можно ли хранить в ентити id игрока например, или еще какието строки для определения чей ящик кого убил? Всем большое спасибо!

Сообщение отредактировал Vladimirok - Четверг, 04.06.2009, 21:59:27
 
defaultNick8433Дата: Четверг, 04.06.2009, 22:17:27 | Сообщение # 11
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Quote
можно ли хранить в ентити id игрока например, или еще какието строки для определения чей ящик кого убил?

Code
#include <amxmodx>   

new g_yashik[]="models/yashik.mdl"

public plugin_precache()
{
precache_model(g_yashik)
}
public plugin_init()   
{   
register_plugin("huk","huk","huk")   
register_event("DeathMsg","onDeath","a")   
}   
public onDeath()   
{   
new iKiller=read_data(1)
new iVictim=read_data(2)   

if(g_yashik[iKiller])
client_print(iVictim,print_chat,"Bac y6uJI yashik :D")
}

Вот к примеру


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001


Сообщение отредактировал defaultNick8433 - Четверг, 04.06.2009, 23:22:55
 
PomanoBДата: Четверг, 04.06.2009, 22:26:37 | Сообщение # 12
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
можно хранить в pev_owner

http://romanov4400.mybrute.com
 
VladimirokДата: Четверг, 04.06.2009, 23:20:57 | Сообщение # 13
Лейтенант
Группа: Пользователи
Сообщений: 73
Репутация: 0
Статус: Не в сети
PomanoB, спасибо, только ты наверное понял мое сообщение), ящиков то может быть много ;)

Сообщение отредактировал Vladimirok - Четверг, 04.06.2009, 23:21:22
 
defaultNick8433Дата: Четверг, 04.06.2009, 23:24:28 | Сообщение # 14
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Vladimirok,
#include <amxmodx>

new g_yashik[]="models/yashik.mdl"

public plugin_precache()
{
precache_model(g_yashik)
}
public plugin_init()
{
register_plugin("huk","huk","huk")
register_event("DeathMsg","onDeath","a")
}
public onDeath()
{
new iKiller=read_data(1)
new iVictim=read_data(2)

if(g_yashik[iKiller])
client_print(iVictim,print_chat,"Bac y6uJI yashik :D")
}
Не подойдёт


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
VladimirokДата: Четверг, 04.06.2009, 23:32:30 | Сообщение # 15
Лейтенант
Группа: Пользователи
Сообщений: 73
Репутация: 0
Статус: Не в сети
defaultNick8433, как отловить когда игрок нажимает первинный выстрел и вторинный (+attack, +attack2)?

Пробувал:

register_concmd("+attack", "PlayerAttack")
register_clcmd("+attack", "PlayerAttack")

неработает.

 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Помогите нечто доделать в моем плагине (В готовом плагине для HL доделать некоторые фишки)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024