Короче смотри/слушай/читай, допустим, я хочу сделать максимальное число HP игрока, не точным значением, а сделать переменную, и хочу чтобы я смог изменять её в игре через новую энтию, т.е через другую энтию, я хочу изменять максимальное кол-во здоровье игрока, как мне это сделать?
МегаМозг, насколько помню, там есть внеклассовые функции GetMaxHealth и GetTopHealth, тебе надо заменить их вызовы на обращения к переменным (создать переменные m_fMaxHealth и m_fTopHealth), затем обращаться к ним у объекта игрока, допустим, ((CPlayer*)GetPlayerEntity(0))->m_fMaxHealth=150.0f;. Serious_Master, нужно много кодить. =Р
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Я пробовал пробовал, но не смог получить нужного эффекта. Вопрос. Как рандомизировать характеры у гнаров. Мой код.
Code
Main(EVoid) { if (m_EecChar==EYC_SOLDIER) { m_EecChar=EYC_SOLDIER; }
if (m_EecChar==EYC_XXX) { autowait(0.1f); switch (IRnd()%20) { case 0: m_EecChar=EYC_SOLDIER; break; case 1: m_EecChar=EYC_SERGEANT; break; case 2: m_EecChar=EYC_Z2; break; case 3: m_EecChar=EYC_Z3; break; …………………………. case 20: m_EecChar=EYC_Z20; break; } } switch (m_EecChar) { case SOLDIER тут идут характеристики врага
Сообщение отредактировалCAHEK - Понедельник, 10.09.2012, 12:31
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
if (m_EecChar==EYC_SOLDIER) { m_EecChar=EYC_SOLDIER; }
Это зачем? Убери. Во-вторых, autowait(0.1f); должен стоять перед if(m_EecChar==EYC_XXX). А ещё раньше должно стоять присвоение врагу модели и текстуры. Если у него в редакторе не будет модели и текстуры, он будет каждый раз вылетать, поэтому назначь любую, а уже после начала игрового времени модель, текстура и другие параметры будут меняться. В-третьих, последним будет не case 20:, а case 19:, и после него ещё default: (можно вместо 19-го). Во втором свитче убедись, что не забыл ни одного ключевого слова break.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Для чего именно нужно создавать эффект поднятия клавиши?
Просто поменять значение ctl_-переменной можно через _pShell->Execute.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Так для чего создавать такой эффект? Если нужно остановить игрока, останавливай его непосредственно, а не через имитацию поднятия клавиши.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Проблема в том, что залипать могут все клавиши, а не только кнопки управления. Т.е. по-настоящему я клавишу не держу, но она для компьютера она в зажатом состоянии. Просто сообщения о поднятии клавиши отправляются не SeriousSam.exe, а другому приложению, а когда Сэм вновь стает активной задачей, клавиши залипают. Приходится их зажать и отпустить, что бы послать сообщение о поднятии кнопки. Так что останавливать игрока насильно с помощью SetDesiredTranslation/Rotation бесполезно. Вот я и пытаюсь найти способ полегче, что бы послать всем клавишам KEYEVENTF_KEYUP
Добавлено (18.09.2012, 09:11) --------------------------------------------- мм... Надо попробовать сделать цикл где числа от 1 до 254 переводятся в НЕХ и послать им KEYEVENTF_KEYUP...
Как сделать, чтобы если выполняется первая функция и в момент ее выполнения вызывается вторая функция, то первая функция прекращала работать, а сразу же начала работать вторая функция.
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
SeriousAlexej, такое не должно происходить. Даже если другое приложение повесило клавиатурный крюк, оно будет передавать сигналы нажатия клавиш остальным приложениям, если специально не сделать обратное. Проверь свою систему на вирусы. Что касается Сэма - можешь изменить метод ApplyAction у CPlayer, он в качестве аргумента принимает ссылку на объект класса CPlayerAction, ты можешь просто изменять содержимое этого объекта до того, как он будет интерпретирован и преобразован в действие игрока.
МегаМозг, _pShell->GetINDEX(m_strParam) вернёт 1, если, допустим, m_strParam - это "ctl_bMoveForward", и зажата кнопка движения вперёд (если не зажата - вернёт 0). Просто совершай эту проверку в цикле. Это самый лёгкий способ, без возни с классом игрока.
CAHEK, ты это серьёзно? -_- Может, у тебя две разных сущности, а не просто две функции?
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Нет, нужно создать энтити, которая будет в цикле проверять _pShell->GetINDEX(m_strParam).
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
В строке кода когда в котором добавляешь детализированную текстуру есть еще два нуля. Как я понял это тоже какие-то текстуры. Вопрос: Какой ноль какую текстуру дает.
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
Посмотри на названия аргументов в прототипе функции, которую вызываешь.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Ищи исходник Particles.cpp в папке Entities\Common.
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
Понял. Я сделал с нуля новые патроны для песта (чтобы они кончались) все хорошо, но невидно количество оставшихся патронов, несмотря на то, что когда они кончаются оружие меняется.
Как зовут систему частиц крови.
Ну и еще. Я сделал ствол с нуля но при этом столкнулся с ограничением количества видов оружия. Как его убрать.
Сообщение отредактировалCAHEK - Понедельник, 01.10.2012, 19:07
Всё очень серьёзно. P.S. Не пишите мне на Email, пишите в Л.С.
А как можно сделать так, чтобы при прыжке в воду с огнеметом в руках этот самый огнемет убирался (ибо не будет он под водой работать) и выбиралось другое оружие, например дробовик. Есть идеи?
GetWorld()->wo_actContentTypes[en_iDnContent].ct_ulFlags&CTF_SWIMABLE CMovableEntity вернёт true, если объект находится в секторе с возможностью плавания. Работает только для наследников CMovableEntity, то есть, подходит для CPlayer.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Самый простой способ - _pShell->GetINDEX("ctl_bMyButton") возвращает 1 или 0 в зависимости от того, нажата ли ctl_bMyButton.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
добрый день всем работающим с сдк, когдато давно я к вам заходил и вы мне обьястняли как сварить все скрипты в DLL и прочие тонкости и ньюансы, но это было очень давно и я уже не помню где страница с этим вопросом... Воообщем я решил попробовать 2 раз изучить СДК, хоть это и не моя стихия, поэтому я хотелбы когонибуть из опытных людей попросить сделать сдесь статью по СДК на основы, тоесть: что надо для работы с ним, где это все брать, как настраивать директорий чтобы сделать DLL и так и далее. Скажу что у меня уже есть сдк но я не знаю как создать рабочее место, и ещё вопрос есть косательно сдк, программа "Code Blocks" подоидет для моих целей?
Сообщение отредактировалSeriousSacha - Пятница, 05.10.2012, 16:58