HLFX.Ru Forum
Показать все 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)


Отправлено JoJo 19-01-2008 в 14:53:

Нужна помощь в кодинге под Quake 2

Делаем мод по сабж. Необходимо реализовать следующее:

В Quake 2 всегда игроку дается пистолет и никак не сделать, чтобы в начале игры ему он не давался (без кодинга имею ввиду). Там даже энтити такой для пистолета нет. Необходимо сделать, чтобы игроку в начале игры не давался пистолет, а подбирал он его о время игры.

Кто заинтересовался и может помочь, напишите в приват или стукните в асю (в профиле). Сорцы кваки 2 я дам если что.

__________________
Вафли правят миром!!!


Отправлено Дядя Миша 19-01-2008 в 16:20:

В 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; }

Собственно FindItem("blaster");
И дает игроку в руки пистолет.

Добавлено 19-01-2008 в 19:20:

Да и насчет вафлей - ты это, не прав вообщем


Отправлено JoJo 19-01-2008 в 17:00:

Дядя Миша
Дык я с этим местом и ковырялся!!! Если я не даю игроку бластер - при загрузки карты игра тупо вылетает и вылезает отчет об ошибке.

Напиши плиз как правильно по твоему надо написать. Может я что-то не так делаю.

ЗЫ
Если можешь, то зайди в асю.

__________________
Вафли правят миром!!!


Отправлено Дядя Миша 19-01-2008 в 18:10:

Ну значит надо в 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;


Добавлено 19-01-2008 в 21:10:

Должно все заработать.


Отправлено JoJo 19-01-2008 в 22:48:

Цитата:
Дядя Миша писал:
Вот это барахло заменить на
code:
if(client->pers.weapon) client->ps.gunindex = gi.modelindex(client->pers.weapon->view_model); else client->ps.gunindex = 0;



Какое именно "барахло" надо заменить на код в цитате?

__________________
Вафли правят миром!!!


Отправлено XaeroX 20-01-2008 в 06:09:

JoJo тебе же написали две цитаты - старую и новую. Содержимое старой меняешь на содержимое новой. Видимо, ты начал читать пост с середины.

__________________

xaerox on Vivino


Отправлено Дядя Миша 20-01-2008 в 08:52:

Немножко поправил пост. Я думал ты догадаешься.


Отправлено JoJo 20-01-2008 в 09:34:

Спасибо большое! Работает!

У меня одна загвоздка уже в маппинге. Вот у меня есть func_train. Он в начале должен быть невидимым, а потом когда его активируют он должен появиться и ехать по path_corner'ам. Вот как заставить func_train вначале быть невидимым?

__________________
Вафли правят миром!!!


Отправлено FiEctro 20-01-2008 в 09:40:

JoJo в ку2 есть env_rendener ? Если да то поставь один со значением 0 , ну а когда захочешь сделать видимымым то 255

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 20-01-2008 в 11:07:

ку2 вообще полностью opensource - если чего-то не хватает, всегда можно добавить.
env_render там нету.


Отправлено JoJo 20-01-2008 в 11:47:

Дядя Миша
Можешь помочь?
Ну например не энв_рендер сделать, а к функ_треин сделать дополнительный пункт, например "invsible" с параметрами "yes" и "no" или просто сделать дополнительный флаг "invisible". И если я его установлю, то в начале игры этот объект не будет виден и через него можно будет пройти. А когда его активируют триггером, он появлялся как визуально, так и физически, ну и начинает выполнять скрипт.

А если поможешь, то я по аналогии к другим энтитям если понадобиться сделаю.

Я так подумал будет все таки удобнее энтитю енв_рендер сделать, но чтобы можно было не только делать прозрачность объекта, но и была возможность проходить через объект (те же параметры "yes" и "no"). Думаю это будет намного лучше. Ну в общем ты понял ))))

__________________
Вафли правят миром!!!


Отправлено Дядя Миша 20-01-2008 в 12:17:

Слишком долго там ковырятцо.
Но есть мнение, что если добавить в renderfx трейна флаг
RF_TRANSLUCENT, а alpha выставить в ноль, то это будет именно то что нужно. Но опять-таки - насколько я помню ку2 не реагирует на значение alpha и не передает его на клиент.
Точнее делает это очень и очень избирательно.
К тому же alpha должна быть в диапазоне от нуля до еденички.
Ку2 в первичном виде мало подходит для моддинга, ИМХО.


Отправлено JoJo 20-01-2008 в 12:22:

Дядя Миша
Чел, если сможешь помочь, то мы в долгу не останемся! Кароче забошляем)))

__________________
Вафли правят миром!!!


Отправлено XaeroX 20-01-2008 в 13:01:

JoJo ну ты учти, что час работы среднего программиста типа меня или Дяди Миши стоит в районе 150 рублей

__________________

xaerox on Vivino


Отправлено Дядя Миша 20-01-2008 в 13:01:

Моя онлайн помощь стоит порядка 500 евро в час, если ты об этом)))


Отправлено XaeroX 20-01-2008 в 13:02:

а, ну да, онлайн-помощь дороже

__________________

xaerox on Vivino


Отправлено Дядя Миша 20-01-2008 в 13:02:

XaeroX ты чего демпингуешь?


Отправлено XaeroX 20-01-2008 в 13:03:

по расценкам московских проституток прям

__________________

xaerox on Vivino


Отправлено JoJo 20-01-2008 в 16:44:

Ну так что, возьмешся или нет?

__________________
Вафли правят миром!!!


Отправлено Дядя Миша 20-01-2008 в 17:28:

JoJo все что ты хочешь спросить - спрашивай на форуме.
Ковырять твои исходники мне некогда.


Отправлено JoJo 20-01-2008 в 18:22:

Вот я и спрашиваю - нужно чтобы func_train вначале был невидимым, а потом когда его активируют становился видимым

__________________
Вафли правят миром!!!


Отправлено JoJo 21-01-2008 в 16:46:

Нашел данную функцию у func_wall !!! Там это делаеться флагом "trigger spawn" совместно с флагом "toggle". Есть там еще один флаг "Start on". Если будет отмечены все три, то вначале функ_волл будет видимым, а потом при активации невидимым. А если будут поставлены только первых 2 лага без "Start on", то будет наоборот. Можно ли как-нибудь такую возможность перекинуть на func_train??? Если да, то помогите пожалуйста!!!!

__________________
Вафли правят миром!!!


Отправлено Дядя Миша 21-01-2008 в 17:21:

Вот твой заветный флаг

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; }


Отправлено JoJo 21-01-2008 в 18:25:

Дядя Миша
Неа, не пашет))) Наступет полный хаос с брашами! Один почему-то вообще распологаеться не там, где я его ставил, а потом вообще уезжает за карту по диагонали о_О.

Тут просто все намного хитрее

Смотри, напишу флаги обеих энтить:

===========
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, может в них тоже надо пополнить код?

__________________
Вафли правят миром!!!


Отправлено Дядя Миша 21-01-2008 в 18:31:

JoJo ну замени еденичку на восьмерку.


Отправлено JoJo 21-01-2008 в 21:49:

Дядя Миша
Заменил. Пашет, спс! Осталось совсем немного. Дело в том, что при флаге "спаун" функ_треин отказываеться ехать по path_corner'ам! Т.е. я без этого флага протестил на карте скрипт - работает как надо. Но как только ставлю галочку - он появляеться когда надо, но не едет.

__________________
Вафли правят миром!!!


Отправлено Дядя Миша 22-01-2008 в 07:48:

JoJo может все-таки надо пригласить нормального кодера?


Отправлено JoJo 22-01-2008 в 20:08:

А ты чтоль не нормальный? Просто больше не у кого спросить. И осталось то совсем чуть-чуть с этим трейном разобраться чтоб он заработал. И я больше не буду доставать с коддингом под ку2 (покрайней мере ближайшее время ), потому что больше кодить под него для мода и не надо.

Добавлено 22-01-2008 в 23:08:

Все, отбой!!! Сам доделал как надо и заработало!!! о_О
Я мега прогер!!!

__________________
Вафли правят миром!!!


Временная зона GMT. Текущее время 07:30.
Показать все 28 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024