Отправлено: 20.08.10 11:08. Заголовок: function user.Start(..
function user.Start() if levelid=="mapa1" then user.LoadLevel1() elseif levelid=="mapa2" then user.LoadLevel2() elseif levelid=="mapa3" then user.LoadLevel3() elseif levelid=="mapa4" then user.LoadLevel4() elseif levelid=="mapa5" then user.LoadLevel5() end end ----------------------------------------------
--функции игры--
function user.LoadLevel1() pushcmd( function() loadmap ("campaign/Snake/maps/Snake_1.map") end, 1) pushcmd( function() service ("player_local", {name="snake1", nick="Змея", class="user.Class"}) end, 1) end
Никакой ошибки нет, но при нажатии на старт ничег не работает
Отправлено: 01.11.10 12:18. Заголовок: function pda() if us..
цитата:
function pda() if user.pda == 1 then user.msg=Проверка КПК. Сообщение 1 elseif user.pda == 2 then user.msg=Проверка КПК. Сообщение 2 elseif user.pda == 3 then user.msg=Проверка КПК. Сообщение 3 end end end end
Это моя попытка сделать ПДА, как в Doom 3.
цитата:
function user.pdabox(n) botreduce = botreduce or 0 if n==1 then botreduce=botreduce-1 elseif n==2 then botreduce=botreduce+1 end end pda() if botreduce==0 then botreduce=botreduce+1 elseif botreduce==1 then user.pda=1 elseif botreduce==2 then user.pda=2 elseif botreduce==3 then user.pda=3 elseif botreduce==4 then botreduce=botreduce-1 end service("msgbox", {text="[..user.msg..]",on_select="user.pdabox(n)",option1=">",option2="<",option3="Закрыть"})
Это тоже. Только другой отрывок.
цитата:
--*Мы загружаем PDA. Пока в тестовом режиме. user.pda=1 -- Нам нужно 1-ое сообщение... pda() -- ...и мы его загружаем.. user.pdabox() -- ...и высвечиваем.
А это я пробую его вызывать.
цитата:
runtime error: data/campaign/War System/scripts/level1.lua:6: attempt to call global 'pda' (a nil value)
А это ошибка. Объясните, что не так. И ещё:
цитата:
function user.shockin() kill("shoker1") pushcmd(function() message("Это электро-взрывчатка! Она поможет достать бустер!") end, 1) actor("user_sprite", 470, 695, { name="shocksprite", texture="user/ekivator", layer=11 }) actor("trigger", 480, 695, { name="shocktrig", on_enter="user.shockout()" }) end
Отправлено: 07.11.10 14:30. Заголовок: А это ошибка. Объяс..
цитата:
А это ошибка. Объясните, что не так.
функция у тебя user.pda() а зовешь просто pda() которой не существует. (это я тебе просто перевел сообщение ошибки. Внимательно читай еррор месаги, в них почти всегда вся соль)
цитата:
Тут всё правильно? И как сделать так, чтобы объект появился на 48, а не на 4,8 и не на 480?
если лень каждый раз выщитывать то вместо числа - кординаты пиши get32(кордината) предварительно вставив в свой скрипт сверху функцию
цитата:
local function get32(num) return ((num-1) * 32) + 16; end
она будет пересчитывать твои "клетки" из редактора в пиксели
Отправлено: 07.11.10 19:02. Заголовок: если лень каждый раз..
цитата:
если лень каждый раз выщитывать то вместо числа - кординаты пиши get32(кордината) предварительно вставив в свой скрипт сверху функцию
СПС, попробую. А сеёчас у меня совсем другой скрипт.
цитата:
function user.mailbox(n) if n==nil then if n==1 then botreduce=botreduce-1 elseif n==2 then botreduce=botreduce+1 end end if botreduce==0 then botreduce=botreduce+1 elseif botreduce==1 then mailnum=1 elseif botreduce==2 then mailnum=2 elseif botreduce==3 then mailnum=3 elseif botreduce==4 then mailnum=4 elseif botreduce==5 then botreduce=botreduce-1 end mail(mailnum) service("msgbox", {text=user.msg,on_select="user.mailbox(n)",option1="Назад",option2="Вперёд",option3="Закрыть"}) end else if n==3 then end end
function mail(message) if message == 1 then user.msg="Добро пожаловать в наше боевое поселение Экиваторов!" elseif message == 2 then user.msg="Проверка КПК. Сообщение 2" elseif message == 3 then user.msg="Проверка КПК. Сообщение 3" elseif message == 4 then user.msg="4" end end
Всё работает, кроме кнопки "Закрыть". Ошибок нет. П.С. Я имел ввиду, что игра не ругается.
Отправлено: 13.11.10 18:29. Заголовок: Не работает :( funct..
Не работает :( function user.WaterFire() local lifeobj lifeobj = pget("obj_water", "health") if lifeobj == 2000 then pset("dec_water", "texture", "user/water1") elseif lifeobj == 1500 then pset("dec_water", "texture", "user/water2") elseif lifeobj == 1000 then pset("dec_water", "texture", "user/water3") elseif lifeobj == 500 then pset("dec_water", "texture", "user/water4") elseif lifeobj == 100 then pset("dec_water", "texture", "user/waterfinal") elseif lifeobj == 1 then kill("obj_water") elseif lifeobj == 1 then kill("dec_water") end end
Отправлено: 15.11.10 07:13. Заголовок: А как задать? хп объ..
цитата:
А как задать? хп объекта
pset и pget надо использовать редко. С тех пор как Insert ввел функцию object они ушли на второй план
цитата:
function user.WaterFire() local lifeobj lifeobj = pget("obj_water", "health") if lifeobj == 2000 then pset("dec_water", "texture", "user/water1") elseif lifeobj == 1500 then pset("dec_water", "texture", "user/water2") elseif lifeobj == 1000 then pset("dec_water", "texture", "user/water3") elseif lifeobj == 500 then pset("dec_water", "texture", "user/water4") elseif lifeobj == 100 then pset("dec_water", "texture", "user/waterfinal") elseif lifeobj == 1 then kill("obj_water") elseif lifeobj == 1 then kill("dec_water") end end
можно записать как
цитата:
function user.WaterFire() local obj1=object("obj_water"),obj2=object("dec_water") if obj1.health == 2000 then obj2.texture="user/water1" elseif obj1.health == 1500 then obj2.texture="user/water2" elseif obj1.health == 1000 then obj2.texture="user/water3" elseif obj1.health == 500 then obj2.texture="user/water4" elseif obj1.health == 100 then obj2.texture="user/waterfinal" else then kill("obj_water") kill("dec_water") -- и вот это не правильно все равно. Если хочешь чтоб при смерти одного объекта умер и второй, добавь событие в on_die или в on_destroy объекта при убийстве которого надо убивать второй end end
соответственно задать хп объекта можно просто приравняв obj1.health = 100
Anti_Killer спасибо. Но второй объект и не должен умирать. Но у меня есть тоже вопрос: - Как взять хп с помощью pget у сервиса player? Создаётся танк и сервис, а имя только у сервиса. А мне нужно взять хп у танка. (с помощью функции pget) И ещё один (мы с Вирусом закидываем вопросами , но это потому что я не знал новинки новой версии, и они в Танкопедии не записаны ): - Я знаю, что можно загрузить какой-нибудь файл в скриптах. Так игра сохранялась и загржалась в The Race. А можно сделать так, чтобы игра запускала файл lang.cfg с помощью скриптов из указанного места?
Отправлено: 15.11.10 13:18. Заголовок: Как взять хп с помо..
цитата:
Как взять хп с помощью pget у сервиса player?
vehname и есть объект танк. Проверяй хп у танка . вот и все.
цитата:
Создаётся танк и сервис, а имя только у сервиса. А мне нужно взять хп у танка. (с помощью функции pget)
не вижу проблемы в задании параметра vehname у player_local
цитата:
- Я знаю, что можно загрузить какой-нибудь файл в скриптах. Так игра сохранялась и загржалась в The Race. А можно сделать так, чтобы игра запускала файл lang.cfg с помощью скриптов из указанного места?
нет. Скрипты и игровые файлы вроде lang.cfg никак не связаны. lang.cfg обрабатывается при запуске игры
Все даты в формате GMT
3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет