(обновление от 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 то игра будет использовать класс танка, а не игрока. - Исправлен Объект Танк
Компания 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 и прочее
Отправлено: 15.11.10 07:05. Заголовок: Вопрос: КАК ЗАКРЫТЬ ..
цитата:
Вопрос: КАК ЗАКРЫТЬ ЭТО ЧЁРТОВО МЕНЮ С ПОМОЩЬЮ СКРИПТА?!
цитата:
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 , так что делай проверку
И понял что меню при выполнении 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
Получается при запуске уровня меню уничтожалось как таковой сервис и пришлось его заново создать. Главное все работает...
Отправлено: 15.11.10 18:31. Заголовок: Ну вот у меня так на..
Ну вот у меня так написано:
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
Отправлено: 16.11.10 08:34. Заголовок: Anti_Killer Другие к..
Anti_Killer Другие кирпичи двигает а эти нет. Всеми способами. Да и когда я использую сетпозишн то объект туда телепортируется, а не едет. Да и сколько точек в клетке.
Отправлено: 16.11.10 15:44. Заголовок: Да и когда я использ..
цитата:
Да и когда я использую сетпозишн то объект туда телепортируется, а не едет.
вообщет так и работает команда setposition. Анимацию можно создать скриптами. Примеры есть в test.lua
цитата:
Другие кирпичи двигает а эти нет
какая разница между ними? При каких условиях выкидывает из игры. Попробуй достичь креша игры в отдельном скрипте используя setposition в таких же условиях и найди что на это влияет. Мне так не понятно.
Отправлено: 16.11.10 16:38. Заголовок: вообщет так и работа..
цитата:
вообщет так и работает команда 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.
Отправлено: 17.11.10 01:20. Заголовок: Мне кто-то ответит? ..
цитата:
Мне кто-то ответит?
К глобальным функция и переменным можно обратиться с любого скрипта, локальные переменные же действуют только в пределах одной функции\скрипта. Для скриптов нужно использовать именно локальные переменные\функции чтобы корректно работали сейвы и игра в них не лезла
Отправлено: 28.02.11 17:51. Заголовок: Помогите найти ошибк..
Помогите найти ошибку в данном скрипте который должен выполнять функцию attacker которой нет на данный момент.
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
В консоле странная ошибка которою я не могу исправить да и тут наверняка еще их полно. Заранее спасибо.
Все даты в формате GMT
3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет