|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
Помогите нечто доделать в моем плагине
|
|
Vladimirok | Дата: Четверг, 04.06.2009, 17:31:24 | Сообщение # 1 |
Лейтенант
Группа: Пользователи
Сообщений: 73
Статус: Не в сети
| Я написал плагин который позволяет игрокам ставить на карте почти неограниченое количество ящиков которые взрываються если по ним стрельнуть. Столкнулся с некоторыми проблемами, а точнее: - как зделать чтобы звук при попадании в ящик и взрыве был не стекляный (стрельба в стекло) а деревяный - как имитировать осколки ящика после того как он взорвался а потом через некоторое время что бы они исчезли (как гильзы от уружия) - как нанести декали зрыва на землю (как например черное пятно на земле от гранаты) Буду рад любой информации. Большое спасибо! Сам плагин:
|
|
| |
PAHANCS | Дата: Четверг, 04.06.2009, 17:53:15 | Сообщение # 2 |
Полковник
Группа: Пользователи
Сообщений: 183
Статус: Не в сети
| 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
Статус: Не в сети
| PAHANCS, большое тебе спасибо! Жду далиших ответов: - как зделать чтобы звук при попадании в ящик и взрыве был не стекляный (стрельба в стекло) а деревяный - как имитировать осколки ящика после того как он взорвался а потом через некоторое время что бы они исчезли (как гильзы от уружия)
|
|
| |
defaultNick8433 | Дата: Четверг, 04.06.2009, 18:41:20 | Сообщение # 4 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| Ну я думаю,надо как-то сделать 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
Статус: Не в сети
| PAHANCS, какая библиотека использует функцию fm_get_decal_index("{scorch3") ? defaultNick8433, когда стреляешь в ящик (он пака не взрываеться) то слышен звук стекла.
Сообщение отредактировал Vladimirok - Четверг, 04.06.2009, 19:33:57 |
|
| |
defaultNick8433 | Дата: Четверг, 04.06.2009, 20:06:28 | Сообщение # 6 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| 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
Статус: Не в сети
| 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
Статус: Не в сети
| Вот параметры ящика чтоб были осколки и звук( для маппинга, а для скриптинга хз, но если в скриптинге моэно делать ящики, то знач без опций в маппинге сдесь не обойтись) 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
Статус: Не в сети
| Подозреваю что это модельки осколков
http://romanov4400.mybrute.com
|
|
| |
Vladimirok | Дата: Четверг, 04.06.2009, 21:47:14 | Сообщение # 10 |
Лейтенант
Группа: Пользователи
Сообщений: 73
Статус: Не в сети
| Ничево не помогло А не подскажете, можно ли хранить в ентити id игрока например, или еще какието строки для определения чей ящик кого убил? Всем большое спасибо!
Сообщение отредактировал Vladimirok - Четверг, 04.06.2009, 21:59:27 |
|
| |
defaultNick8433 | Дата: Четверг, 04.06.2009, 22:17:27 | Сообщение # 11 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| 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
Статус: Не в сети
| можно хранить в pev_owner
http://romanov4400.mybrute.com
|
|
| |
Vladimirok | Дата: Четверг, 04.06.2009, 23:20:57 | Сообщение # 13 |
Лейтенант
Группа: Пользователи
Сообщений: 73
Статус: Не в сети
| PomanoB, спасибо, только ты наверное понял мое сообщение), ящиков то может быть много
Сообщение отредактировал Vladimirok - Четверг, 04.06.2009, 23:21:22 |
|
| |
defaultNick8433 | Дата: Четверг, 04.06.2009, 23:24:28 | Сообщение # 14 |
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Статус: Не в сети
| 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
Статус: Не в сети
| defaultNick8433, как отловить когда игрок нажимает первинный выстрел и вторинный (+attack, +attack2)? Пробувал: register_concmd("+attack", "PlayerAttack") register_clcmd("+attack", "PlayerAttack") неработает.
|
|
| |
| AMX Mod X Russian Community © 2006-2024 | |
|
| |