![]() |
Показать все 28 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Нужна помощь в кодинге под Quake 2 (https://hlfx.ru/forum/showthread.php?threadid=1118)
Нужна помощь в кодинге под Quake 2
Делаем мод по сабж. Необходимо реализовать следующее:
В Quake 2 всегда игроку дается пистолет и никак не сделать, чтобы в начале игры ему он не давался (без кодинга имею ввиду). Там даже энтити такой для пистолета нет. Необходимо сделать, чтобы игроку в начале игры не давался пистолет, а подбирал он его о время игры.
Кто заинтересовался и может помочь, напишите в приват или стукните в асю (в профиле). Сорцы кваки 2 я дам если что.
__________________
Вафли правят миром!!!
В p_client.c
code:
/* ============== InitClientPersistant This is only called when the game first initializes in single player, but is called after each death and level change in deathmatch ============== */ void InitClientPersistant (gclient_t *client) { gitem_t *item; memset (&client->pers, 0, sizeof(client->pers)); item = FindItem("Blaster"); client->pers.selected_item = ITEM_INDEX(item); client->pers.inventory[client->pers.selected_item] = 1; client->pers.weapon = item; client->pers.health = 100; client->pers.max_health = 100; client->pers.max_bullets = 200; client->pers.max_shells = 100; client->pers.max_rockets = 50; client->pers.max_grenades = 50; client->pers.max_cells = 200; client->pers.max_slugs = 50; }
Дядя Миша
Дык я с этим местом и ковырялся!!! Если я не даю игроку бластер - при загрузки карты игра тупо вылетает и вылезает отчет об ошибке.
Напиши плиз как правильно по твоему надо написать. Может я что-то не так делаю.
ЗЫ
Если можешь, то зайди в асю.
__________________
Вафли правят миром!!!
Ну значит надо в void PutClientInServer (edict_t *ent)
сделать проверку:
Вот это барахло
code:
client->ps.gunindex = gi.modelindex(client->pers.weapon->view_model);
code:
if(client->pers.weapon) client->ps.gunindex = gi.modelindex(client->pers.weapon->view_model); else client->ps.gunindex = 0;
code:
if(client->pers.weapon) client->ps.gunindex = gi.modelindex(client->pers.weapon->view_model); else client->ps.gunindex = 0;
__________________
Вафли правят миром!!!
JoJo тебе же написали две цитаты - старую и новую. Содержимое старой меняешь на содержимое новой. Видимо, ты начал читать пост с середины.
__________________
Немножко поправил пост. Я думал ты догадаешься.
Спасибо большое! Работает!
У меня одна загвоздка уже в маппинге. Вот у меня есть func_train. Он в начале должен быть невидимым, а потом когда его активируют он должен появиться и ехать по path_corner'ам. Вот как заставить func_train вначале быть невидимым?
__________________
Вафли правят миром!!!
JoJo в ку2 есть env_rendener ? Если да то поставь один со значением 0 , ну а когда захочешь сделать видимымым то 255
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
ку2 вообще полностью opensource - если чего-то не хватает, всегда можно добавить.
env_render там нету.
Дядя Миша
Можешь помочь?
Ну например не энв_рендер сделать, а к функ_треин сделать дополнительный пункт, например "invsible" с параметрами "yes" и "no" или просто сделать дополнительный флаг "invisible". И если я его установлю, то в начале игры этот объект не будет виден и через него можно будет пройти. А когда его активируют триггером, он появлялся как визуально, так и физически, ну и начинает выполнять скрипт.
А если поможешь, то я по аналогии к другим энтитям если понадобиться сделаю.
Я так подумал будет все таки удобнее энтитю енв_рендер сделать, но чтобы можно было не только делать прозрачность объекта, но и была возможность проходить через объект (те же параметры "yes" и "no"). Думаю это будет намного лучше. Ну в общем ты понял ))))
__________________
Вафли правят миром!!!
Слишком долго там ковырятцо.
Но есть мнение, что если добавить в renderfx трейна флаг
RF_TRANSLUCENT, а alpha выставить в ноль, то это будет именно то что нужно. Но опять-таки - насколько я помню ку2 не реагирует на значение alpha и не передает его на клиент.
Точнее делает это очень и очень избирательно.
К тому же alpha должна быть в диапазоне от нуля до еденички.
Ку2 в первичном виде мало подходит для моддинга, ИМХО.
Дядя Миша
Чел, если сможешь помочь, то мы в долгу не останемся! Кароче забошляем)))
__________________
Вафли правят миром!!!
JoJo ну ты учти, что час работы среднего программиста типа меня или Дяди Миши стоит в районе 150 рублей
__________________
Моя онлайн помощь стоит порядка 500 евро в час, если ты об этом)))
а, ну да, онлайн-помощь дороже
__________________
XaeroX ты чего демпингуешь?
по расценкам московских проституток прям
__________________
Ну так что, возьмешся или нет?
__________________
Вафли правят миром!!!
JoJo все что ты хочешь спросить - спрашивай на форуме.
Ковырять твои исходники мне некогда.
Вот я и спрашиваю - нужно чтобы func_train вначале был невидимым, а потом когда его активируют становился видимым
__________________
Вафли правят миром!!!
Нашел данную функцию у func_wall !!! Там это делаеться флагом "trigger spawn" совместно с флагом "toggle". Есть там еще один флаг "Start on". Если будет отмечены все три, то вначале функ_волл будет видимым, а потом при активации невидимым. А если будут поставлены только первых 2 лага без "Start on", то будет наоборот. Можно ли как-нибудь такую возможность перекинуть на func_train??? Если да, то помогите пожалуйста!!!!
__________________
Вафли правят миром!!!
Вот твой заветный флаг
code:
void func_train_visible (edict_t *self, edict_t *other, edict_t *activator) { self->solid = SOLID_BSP; self->svflags &= ~SVF_NOCLIENT; self->use = NULL; KillBox (self); gi.linkentity (self); } // а это надо засунуть в SP_func_train if (self->spawnflags & 1) { self->svflags |= SVF_NOCLIENT; self->solid = SOLID_NOT; self->use = func_train_visible; }
Дядя Миша
Неа, не пашет))) Наступет полный хаос с брашами! Один почему-то вообще распологаеться не там, где я его ставил, а потом вообще уезжает за карту по диагонали о_О.
Тут просто все намного хитрее
Смотри, напишу флаги обеих энтить:
===========
func_train
===========
1: Start On
2: Toggle
4: Block stops
=============
func_wall
=============
1: Trigger Spawn
2: Toggle
4: Start On
8: Animated
16: Animated Fast
Просто понимаешь, если я добавлю код со стандартными числами, привязанными к флагам в func_wall, происходит как бы конфликт и получается полная чушь, т.к. нумерация в кодах совпадает, а сами флаги выполняют разные функции. Я сам с этим уже вожусь долгое время, но так к результату и не пришел.
Я просто думаю следующее: необходимо добавить к func_train новые дополнительные флаги, которые не будут конфликтовать с существующими, например:
8: Trigger Spawn
16: Start visible (аналог Start On у func_wall. Просто у обеих этих энтить Start On выполняет разную функцию, да и лишней она все-таки не будет )
32: Toggle 2 (сомневаюсь в ее необходимости. Думаю можно использовать стандартный Toggle у func_train)
Так же в коде у func_train видел #define, может в них тоже надо пополнить код?
__________________
Вафли правят миром!!!
JoJo ну замени еденичку на восьмерку.
Дядя Миша
Заменил. Пашет, спс! Осталось совсем немного. Дело в том, что при флаге "спаун" функ_треин отказываеться ехать по path_corner'ам! Т.е. я без этого флага протестил на карте скрипт - работает как надо. Но как только ставлю галочку - он появляеться когда надо, но не едет.
__________________
Вафли правят миром!!!
JoJo может все-таки надо пригласить нормального кодера?
А ты чтоль не нормальный?
Просто больше не у кого спросить. И осталось то совсем чуть-чуть с этим трейном разобраться чтоб он заработал. И я больше не буду доставать с коддингом под ку2 (покрайней мере ближайшее время
), потому что больше кодить под него для мода и не надо.
Добавлено 22-01-2008 в 23:08:
Все, отбой!!! Сам доделал как надо и заработало!!! о_О
Я мега прогер!!!
__________________
Вафли правят миром!!!
Временная зона GMT. Текущее время 07:30. | Показать все 28 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024