Форум » Кампании » The Race » Ответить

The Race

Anti_Killer: Лог нововведений Компании [more] (обновление от 14.08.10) -Исправлены ошибки\подправлен код -Добавлено меню компании (убраны активирующие триггеры для диалоговых окон на карте) -Добавлены уровни сложности (обновление от 18.08.10) -Добавлен код для реализации ночных миссий + 1 ночная миссия [/more] Лог нововведений неофициальной версии игры [more](обновление от 14.08.10) - Cервис menu для реализации меню у компаний Описание : service("menu",{title="mytitle",name="menu",names="Игра|Генератор|Настройки|О Аддоне",on_select="user.MainMenu(n)"}) имеет свойства: title - текстура для главного экрана меню , по умолчанию gui_splash names - Список кнопок меню (максимум 6). Отделять друг от друга символом | on_select - аналогично on_select для messagebox'a при клике на одну из кнопок в меню, возвратится её порядковый номер от 1 до 6 в зависимости от того какая она по порядку. Следуя из примера выше, если нажать в главном меню кнопку "Генератор" , то выполнится функция user.MainMenu(2) open - действует как переключатель. Если задать 1 , то он опять станет 0 и если открыто главное меню то он его закроет и наоборот если закрыто откроет Внимание: небольшая формальность, переключатель open не подействует, если запускать меню вашей компании сразу после запуска её скрипта, нужно это делать с задержкой через pushcmd (примеры использования есть в компании TheRace.lua и в скрипте test.lua) В каком виде эта функция доживет до официального релиза основной версии не известно. - Исправлен и доработан Объект Танк . Теперь любой танк можно выделить в редакторе и изменить его свойства Добавлена возможность посадить\пересадить в него бота\игрока примеры использования есть в компании TheRace.lua и в скрипте test.lua Внимание: класс танка и его параметры диктует игрок. При пересадке танк теряет свой класс и его нужно настроить через сервис ai\player_lockal - Альтернативный вариант заезда за границу карты. Включается он либо в режиме "Мясо" кнопкой "Бесконечная карта" либо задается в конфиге\скрипте параметром cl_unlimmap При заеде за границу карты вы не взорветесь, а окажитесь на противоположном конце карты Все предыдущие наработки Инсерт так или иначе включил в основной проект, так что они потерянными не останутся и рано или поздно выйдут с новой официальной версией :) По новым спишусь с ним на следующей неделе (обновление от 18.08.10) Объект Прожектор нельзя было через скрипты вертеть (добавил параметр dir) (при реализации ночных миссий столкнулся с этой проблемой, пришлось сразу поправлять собственно) (обновление от 24.08.10) - добавлен параметр class объекту tank он равен параметру class игрока\бота и по умолчанию не задан , но теперь если задать объекту tank параметр class то игра будет использовать класс танка, а не игрока. - Исправлен Объект Танк [/more] Компания The Race Описание Идея пришла когда вспоминал игрушки детства и дабы Т-ЗОД не надоел медленным транспортом, решил разнообразить его альтернативной вселенной, в которой проводят гонки на обычных супер карах нашего времени. Обычный олдскул кольцевой режим как в старых добрых DOSовских гоночках \ аркадах вроде MicroMachiness и тд. Простым катанием по кругу с противниками дело не ограничивается, разнообразие вносит движок именно Т ЗОДа В этой версии 6 Уровней(Миссий). Они идут по порядку при прохождении но их можно загрузить и прямо через консоль используя user.Int(номер уровня компании (всего в компании 6 уровней с разными заданиями)), также можно создавать бесконечно много самому. Создавать можно с помощью генератора (в меню кнопка Генератор) Чтобы Перезапустить\Перейти к следующей миссии нажмите Игра в меню Либо создать новый уровень можно через команду user.new(...куча параметров... (если ввести в консоле user.new() то выведет список параметров и в каком порядке их вводить) Все параметры в ней имеют числовые значения и только параметр Машина задается пропись в ковычках "" либо '' принимает значение "спортмашина" (гоночная тачка) "формула" (болид формула-1) В добавок еще есть скрытый транспорт Грузовик, но его я использую только "по праздникам" пока и его там задать нельзя:) Кодерам Если кого-то из очень хорошо шарящих в скриптах заинтересовала концепция. То можете создать новых Миссий (или хотябы карт для генератора (по больше карт с турелями\оружием может быть) либо помочь в доведении до ума этой версии. Т.к. много еще не успел реализовать. Краткий ---TODO--- лист описан в скрипте TheRace.lua в функции user.Int() если хотите , можете помоч в написании. Фотошоперам\Скиноделам и т.д. Если чувствуете что можете нарисовать лучше\подобрать текстурки по качественней, то милости прошу. Так же нужны текстурки домов\ и прочих объектов с видом TOP DOWN т.к. окружения на трассе маловато. По легкости\сложности в меню есть кнопка Настройка->Сложность, можно попробовать задать. Только не забудьте перезапустить уровень Настройки Если в скрипте wathtype=0 установить значение 1 то будет использоваться динамический режим отображения круга с использованием setposition user.m("название без .ogg") В папку music закидываем треки (по умолчанию играет трек с именем 1.ogg , если хотите другой послушать то в консоле пишите m("название без .ogg") ) старые наработки Работает эта Компания только на моей версии T-ZOD (хотя при желании можно легко адаптировать под старые версии т.к. функций она секретных никаких не использует. Просто мне нужны были сплайны нестандартного размера - тобишь конкретно здесь >=128х128 ) И т.к. сплайн это объект не каким боком не осязаемый вообще никем, только визуально , то и снятие ограничения размера никаких проблем за собой не понесло. Так что теперь можно делать дома неограниченных размеров и т.д. (только надо их внутри обводить бетоном чтобы не проходить сквозь) Вобщем в этой версии T-ZOD все тоже что и в предыдущей моей версии НО -Убрано ограничение размера текстуры у объекта "Декорация" -И как и обещал сделал функцию setposition("объект", точка_x, точка_у) (была возможность протестировать со статичными объектами и со спрайтами) Дистрибутив Компания The Race + новая версия T ZOD + Компания-пример демонстрирующая setposition и прочее Скачать Заменить файлы в папке с игрой.

Ответов - 103, стр: 1 2 3 4 5 6 All

VIRUS: Вопрос: КАК ЗАКРЫТЬ ЭТО ЧЁРТОВО МЕНЮ С ПОМОЩЬЮ СКРИПТА?!

Anti_Killer: Вопрос: КАК ЗАКРЫТЬ ЭТО ЧЁРТОВО МЕНЮ С ПОМОЩЬЮ СКРИПТА?! service("menu",{title="mytitle",name="menu",names="Игра|Генератор|Настройки|О Аддоне",on_select="user.MainMenu(n)"}) имеет свойства: title - текстура для главного экрана меню , по умолчанию gui_splash names - Список кнопок меню (максимум 6). Отделять друг от друга символом | on_select - аналогично on_select для messagebox'a при клике на одну из кнопок в меню, возвратится её порядковый номер от 1 до 6 в зависимости от того какая она по порядку. Следуя из примера выше, если нажать в главном меню кнопку "Генератор" , то выполнится функция user.MainMenu(2) open - действует как переключатель. Если задать 1 , то он опять станет 0 и если открыто главное меню то он его закроет и наоборот если закрыто откроет Внимание: небольшая формальность, переключатель open не подействует, если запускать меню вашей компании сразу после запуска её скрипта, нужно это делать с задержкой через pushcmd Это я возьму на себя и тебе потом скажу. Но и у меня есть вопрос: - health и attaker всё ещё работают? И как? создаешь плеера, задаешь vehname, задаешь в on_damage свой скрипт. например "user.HZ_CHE_ZA(who)" who - это object который тебя атакует. При определенных условиях бывает равен nil , так что делай проверку

slava98: open - действует как переключатель. Если задать 1 , то он опять станет 0 и если открыто главное меню то он его закроет и наоборот если закрыто откроет Не работает . Так Вирус сказал.


Anti_Killer: slava98 У меня же в компании нормально работает. Пусть копирует, так уж и быть

VIRUS: Anti_Killer пишет: Пусть копирует, так уж и быть В этой мути (42кб текста) нифига не понятно.

VIRUS: Anti_Killer При запуске меню перед игрой, а после этого при запуске 1 уровня пропадает меню.

slava98: VIRUS надо разобраться. Мне многое понятно. Нужно просто в поиске искать. loadtheme("campaign/TheRace/logo.lua") user.menuservice = service("menu",{title="mytitle",name="menu",names="Игра|Генератор|Настройки|О Аддоне",on_select="user.MainMenu(n)", open=0}) pushcmd(function() user.MakeCount(3) end, 3) В самом начале меню закрыто. Может это влияет?

VIRUS: Ура! Проблему я решил с помощью простого скрипта. if (exists("menu")==false) then message("123") И понял что меню при выполнении beginlevel(1), удаляется меню, вот эта функция --*Это функция для вызывания уровня by Sl@v@98. function beginlevel(number) dofile(user.campFscr.."level"..number..".lua") savelevel=number --savehealth=playerhealth message("Уровень №"..number) -- Для теста. (31.10.10, Sl@v@98) loadtheme(user.campFscr.."textures.lua") end Получается при запуске уровня меню уничтожалось как таковой сервис и пришлось его заново создать. Главное все работает...

Sl@v@98: VIRUS, молодец! А я мучаюсь с загрузкой. Думаю, в демке она не будет нужна. Так что займусь чем-нибудь другим.(уроками )

VIRUS: Ну вот у меня так написано: [pre]function user.NewGame() beginlevel(1) user.clean() user.menuservice = service("menu",{title="gui_splash",name="menu",names="Игра|Почта|О кампании",on_select="user.Menu(n)"}) user.Refresh() pushcmd( function() user.menuservice.open=1 end, 0.1) -- это по сути должно закрыть меню, но ничего не происходит --if (exists("menu")==false) then message("123") end [/pre] Добавлено позже: Вышло!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

VIRUS: При использовании функции setposition выбивает из игры

Anti_Killer: При использовании функции setposition выбивает из игры скрипт в студию. Передвигать можно только объекты - сервисы низя

VIRUS: Anti_Killer Другие кирпичи двигает а эти нет. Всеми способами. Да и когда я использую сетпозишн то объект туда телепортируется, а не едет. Да и сколько точек в клетке.

Anti_Killer: Да и когда я использую сетпозишн то объект туда телепортируется, а не едет.вообщет так и работает команда setposition. Анимацию можно создать скриптами. Примеры есть в test.lua Другие кирпичи двигает а эти нет какая разница между ними? При каких условиях выкидывает из игры. Попробуй достичь креша игры в отдельном скрипте используя setposition в таких же условиях и найди что на это влияет. Мне так не понятно.

slava98: вообщет так и работает команда setposition Я пытался ему это объяснить, но он, наверное, не понял. function user.moveObjectsOneIteration(x,y,nameobj,sti,endi,tox,toy) local iter = 0 for z = sti,endi do -- kill(nameobj .. z) -- Нам убирать объект тепрь не нужно. -- actor("wall_concrete",x+tox*32*iter,y+toy*32*iter,{name=nameobj .. z}) -- Функция устарела. Нужно её переделать с помощью setposition. (Sl@v@98, 10.11.10) setposition(nameobj .. z, x+tox*32*iter,y+toy*32*iter) -- И теперь мы пробуем. iter = iter + 1 end end -- Передвижение объектов по горизонтали tox - +1 если слева на право, -1 наоборот function user.moveObjectsX(stx,sty,endx,name,sti,endi,tox,toy,speed) local numi = (endx - stx) * 16 toy = toy or 0 speed = speed or 1 stx = ((stx - 1) * 32) + 16 sty = ((sty - 1) * 32) + 16 endx = ((endx - 1) * 32) + 16 numi = math.abs(numi) / speed local intx = (endx-stx)/numi for i = 1,numi do pushcmd(function ()user.moveObjectsOneIteration(stx+intx*i,sty,name,sti,endi,tox,toy) end,i/16) end --аналогично по вертикали. toy - +1 если сверху вниз, -1 наоборот function user.moveObjectsY(stx,sty,endy,name,sti,endi,toy,tox,speed) local numi = (endy - sty) * 16 tox = tox or 0 speed = speed or 1 stx = ((stx - 1) * 32) + 16 sty = ((sty - 1) * 32) + 16 endy = ((endy - 1) * 32) + 16 numi = math.abs(numi) / speed local inty = (endy-sty)/numi for i = 1,numi do pushcmd(function ()user.moveObjectsOneIteration(stx,sty+inty*i,name,sti,endi,tox,toy) end,i/16) end Я тут просто отредактировал скрипт Морза под setposition. pushcmd( function() setposition("br1", 31, 17) setposition("br2", 31, 18) end, 2) pushcmd( function()setposition("br1", 31, 14) setposition("br2", 31, 21) end, 2) Применяю скрипт. Кубики диагональные. Они едут на следующии клетки, а потом игра вылетает. Как всегда, лог ошибок пуст .

VIRUS: VIRUS пишет: У меня несколько вопросов: • Чем локальные переменные отличаются от глобальных? Мне кто-то ответит?

Anti_Killer: Мне кто-то ответит? К глобальным функция и переменным можно обратиться с любого скрипта, локальные переменные же действуют только в пределах одной функции\скрипта. Для скриптов нужно использовать именно локальные переменные\функции чтобы корректно работали сейвы и игра в них не лезла

VIRUS: Помогите найти ошибку в данном скрипте который должен выполнять функцию attacker которой нет на данный момент. [pre]local damagesourvarriors = 0 local nameofattacker = 0 ... ... service ("ai", {name="ourwarrior1", vehname="e1", nick="Поселенец", class="ekivator1", skin="ekivatorl", team=3, on_die="user.M1OnDieBot1()", on_damage="nameofatacker = who.name; user.DamageOurvarrior()", active=0}) ... service ("ai", {name="ourwarrior2", vehname="e2", nick="Поселенец", class="ekivator1", skin="ekivatorl", team=3, on_die="user.M1OnDieBot2()", on_damage="nameofatacker = who.name; user.DamageOurvarrior()", active=1}) ... ... function user.DamageOurvarrior() if nameofatacker == ourplayer then damagesourvarriors = damagesourvarriors + 1 if damagesourvarriors == 1 then message("Поселенец: Эй! Не стреляй по своим!!") elseif damagesourvarriors == 2 then message("Поселенец: Ты что не понял?! Не стреляй по поселенцем!!!") esleif damagesourvarriors == 3 then message("Поселенец: Последнее предупреждение! Хватит стрелять по своим!!!") elseif damagesourvarriors == 4 then message("Командир поселенцев: Он предатель, бей его!") pset("ourplayer", "team", 2) pset("ourvarrior3", "active", 1) user.EnemyAttack end еnd end[/pre] В консоле странная ошибка которою я не могу исправить да и тут наверняка еще их полно. Заранее спасибо.

slava98: По-моему, всё в порядке, только пиши в "Вопросы по скриптам".

slava98: Попробуй не name, а vehname. Ну в общем методом тыка. Может заработает.



полная версия страницы