On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 187
Рейтинг: 2
ссылка на сообщение  Отправлено: 07.06.08 07:27. Заголовок: Вопросы по скриптам


Задавайте вопросы по скриптовому языку ЗОД и ждите скорейшего ответа на них!

Смерть - это не повод уходить из жизни... Спасибо: 0 
Профиль Цитата Ответить
Ответов - 285 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


гранатомётчик со стажем




Пост N: 384
Рейтинг: 8
ссылка на сообщение  Отправлено: 20.08.10 10:43. Заголовок: LUA name"snake1&..


LUA
 цитата:
name"snake1"

как минимум на это накричит. Насчет функций без параметров не пробывал на LUA , но так часто применяют. Пробуй

...я здесь был... Спасибо: 0 
Профиль Цитата Ответить
постоянный участник




Пост N: 1827
Рейтинг: 4
ссылка на сообщение  Отправлено: 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

Никакой ошибки нет, но при нажатии на старт ничег не работает


Be quiet, be smart, be ready!
I go...
...and you will be deid!
Спасибо: 0 
Профиль Цитата Ответить
гранатомётчик со стажем




Пост N: 385
Рейтинг: 8
ссылка на сообщение  Отправлено: 20.08.10 11:21. Заголовок: Отлаживай. Проверяй ..


Отлаживай. Проверяй через message до куда доходит и что выдает. Передается ли levelid, выполняется ли user.start() и т.д.

...я здесь был... Спасибо: 0 
Профиль Цитата Ответить
постоянный участник




Пост N: 1829
Рейтинг: 4
ссылка на сообщение  Отправлено: 20.08.10 11:35. Заголовок: Доходит до user.star..


Доходит до user.start() а дальше гнет


Be quiet, be smart, be ready!
I go...
...and you will be deid!
Спасибо: 0 
Профиль Цитата Ответить
гранатомётчик со стажем




Пост N: 386
Рейтинг: 8
ссылка на сообщение  Отправлено: 20.08.10 13:54. Заголовок: проверяй дальше. У т..


проверяй дальше. У тебя levelid что выдает у тебя присваивается 1 2 3 4 5 , а проверяется на mapa1 mapa2 . просто цифрой везде пиши

...я здесь был... Спасибо: 0 
Профиль Цитата Ответить
постоянный участник




Пост N: 1830
Рейтинг: 4
ссылка на сообщение  Отправлено: 20.08.10 14:26. Заголовок: Anti_Killer пишет: ..


Anti_Killer пишет:

 цитата:
проверяй дальше. У тебя levelid что выдает у тебя присваивается 1 2 3 4 5 , а проверяется на mapa1 mapa2 . просто цифрой везде пиши


С этим все нормально


Be quiet, be smart, be ready!
I go...
...and you will be deid!
Спасибо: 0 
Профиль Цитата Ответить
moderator




Пост N: 2842
Рейтинг: 9
ссылка на сообщение  Отправлено: 21.08.10 10:13. Заголовок: А с картами всё норм..


А с картами всё нормально?




Если будешь ты курить,
Пиво, водку, коньяк пить,
То думать голова не будет,
Семья, друзья тебя забудут.
Будешь ты плохим,
Станешь ты таким -

NNNNNNN______N_______N____N_____N__N_____N
___N_________N_N______N____N_____N_N______
___N________NNNN______NNNNN_____NN_______
___N_______N____N_____N____N_____N_N______
___N______N______N____N____N_____N__N_____N
__________________________Зона смерти


<\/u><\/a>
<\/u><\/a>
<\/u><\/a>
<\/u><\/a>
Спасибо: 0 
Профиль Цитата Ответить
постоянный участник




Пост N: 1831
Рейтинг: 4
ссылка на сообщение  Отправлено: 21.08.10 14:25. Заголовок: slava98 естественно ..


slava98 естественно


Be quiet, be smart, be ready!
I go...
...and you will be deid!
Спасибо: 0 
Профиль Цитата Ответить
moderator




Пост N: 3112
Рейтинг: 10
ссылка на сообщение  Отправлено: 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

function user.shockout()
kill("shocksprite")
pset("shocktrig", "active", 0)
actor("pu_shock", 470, 695, { name="shocker2" })
pushcmd(function() message("Через десять секунд взрывчатка взорвётся.") end, 1)
pushcmd(function() message("5") end, 6)
pushcmd(function() message("4") end, 7)
pushcmd(function() message("3") end, 8)
pushcmd(function() message("2") end, 9)
pushcmd(function() message("1") end, 10)
pushcmd(function() kill("shocker2") explosion(47, 69) explosion(47, 70) kill("k1_v1") kill("k2_v1") end, 12)
end


Тут всё правильно? И как сделать так, чтобы объект появился на 48, а не на 4,8 и не на 480?



К счастью подковы нашёл у корыта,
Не стоит так радоваться - кто-то откинул копыта.

NNNNNNN______N_______N____N_____N__N_____N
___N_________N_N______N____N_____N_N______
___N________NNNN______NNNNN_____NN_______
___N_______N____N_____N____N_____N_N______
___N______N______N____N____N_____N__N_____N
__________________________Зона смерти


<\/u><\/a>
<\/u><\/a>
<\/u><\/a>
<\/u><\/a>


Спасибо: 0 
Профиль Цитата Ответить
гранатомётчик со стажем




Пост N: 395
Рейтинг: 9
ссылка на сообщение  Отправлено: 07.11.10 14:30. Заголовок: А это ошибка. Объяс..



 цитата:
А это ошибка.
Объясните, что не так.

функция у тебя user.pda() а зовешь просто pda() которой не существует. (это я тебе просто перевел сообщение ошибки. Внимательно читай еррор месаги, в них почти всегда вся соль)

 цитата:
Тут всё правильно? И как сделать так, чтобы объект появился на 48, а не на 4,8 и не на 480?


если лень каждый раз выщитывать то вместо числа - кординаты пиши get32(кордината) предварительно вставив в свой скрипт сверху функцию

 цитата:
local function get32(num)
return ((num-1) * 32) + 16;
end


она будет пересчитывать твои "клетки" из редактора в пиксели

...я здесь был... Спасибо: 0 
Профиль Цитата Ответить
moderator




Пост N: 3132
Рейтинг: 10
ссылка на сообщение  Отправлено: 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


Всё работает, кроме кнопки "Закрыть". Ошибок нет.
П.С. Я имел ввиду, что игра не ругается.



К счастью подковы нашёл у корыта,
Не стоит так радоваться - кто-то откинул копыта.

NNNNNNN______N_______N____N_____N__N_____N
___N_________N_N______N____N_____N_N______
___N________NNNN______NNNNN_____NN_______
___N_______N____N_____N____N_____N_N______
___N______N______N____N____N_____N__N_____N
__________________________Зона смерти


<\/u><\/a>
<\/u><\/a>
<\/u><\/a>
<\/u><\/a>


Спасибо: 0 
Профиль Цитата Ответить
гранатомётчик со стажем




Пост N: 401
Рейтинг: 9
ссылка на сообщение  Отправлено: 08.11.10 02:43. Заголовок: else if n==3 then ..



 цитата:
else
if n==3 then
end

это вообще не обязательно было писать , а в on_select исправить
 цитата:
on_select="if n ~= 3 then user.mailbox(n) end "



...я здесь был... Спасибо: 0 
Профиль Цитата Ответить
moderator




Пост N: 3138
Рейтинг: 10
ссылка на сообщение  Отправлено: 08.11.10 21:31. Заголовок: Спасибо, громадное! ..


Спасибо, громадное! А то, не успел я изучить функцию, появился сервис. Теперь кампания поедет дальше .



К счастью подковы нашёл у корыта,
Не стоит так радоваться - кто-то откинул копыта.

NNNNNNN______N_______N____N_____N__N_____N
___N_________N_N______N____N_____N_N______
___N________NNNN______NNNNN_____NN_______
___N_______N____N_____N____N_____N_N______
___N______N______N____N____N_____N__N_____N
__________________________Зона смерти


<\/u><\/a>
<\/u><\/a>
<\/u><\/a>
<\/u><\/a>


Спасибо: 0 
Профиль Цитата Ответить
moderator




Пост N: 3144
Рейтинг: 10
ссылка на сообщение  Отправлено: 13.11.10 18:14. Заголовок: function user.shocki..



 цитата:
function user.shockin()
kill("shoker1")
pushcmd(function() message("Это электро-взрывчатка! Она поможет достать бустер!") end, 1)
actor("user_sprite", get32(47), get32(69.5), { name="shocksprite", texture="user/ekivator", layer=11 })
actor("trigger", get32(48), get32(69.6), { name="shocktrig", on_enter="user.shockout()" })
end

function user.shockout()
kill("shocksprite")
pset("shocktrig", "active", 0)
actor("pu_shock", get32(47), get32(69.5), { name="shocker2" })
pushcmd(function() message("Через десять секунд взрывчатка взорвётся.") end, 1)
pushcmd(function() message("5") end, 6)
pushcmd(function() message("4") end, 7)
pushcmd(function() message("3") end, 8)
pushcmd(function() message("2") end, 9)
pushcmd(function() message("1") end, 10)
pushcmd(function() kill("shocker2") explosion(47, 69) explosion(47, 70) kill("k1_v1") kill("k2_v1") end, 12)
end


Так можно.



К счастью подковы нашёл у корыта,
Не стоит так радоваться - кто-то откинул копыта.

NNNNNNN______N_______N____N_____N__N_____N
___N_________N_N______N____N_____N_N______
___N________NNNN______NNNNN_____NN_______
___N_______N____N_____N____N_____N_N______
___N______N______N____N____N_____N__N_____N
__________________________Зона смерти


<\/u><\/a>
<\/u><\/a>
<\/u><\/a>
<\/u><\/a>


Спасибо: 0 
Профиль Цитата Ответить
постоянный участник




Пост N: 2029
Рейтинг: 4
ссылка на сообщение  Отправлено: 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


<\/u><\/a>
Be quiet, be smart, be ready!
I go...
...and you will be deid!
Спасибо: 0 
Профиль Цитата Ответить
moderator




Пост N: 3146
Рейтинг: 10
ссылка на сообщение  Отправлено: 13.11.10 20:21. Заголовок: lifeobj = nill И неч..


lifeobj = nill
И нечего не происходит!
Он вообще не задаётся.



К счастью подковы нашёл у корыта,
Не стоит так радоваться - кто-то откинул копыта.

NNNNNNN______N_______N____N_____N__N_____N
___N_________N_N______N____N_____N_N______
___N________NNNN______NNNNN_____NN_______
___N_______N____N_____N____N_____N_N______
___N______N______N____N____N_____N__N_____N
__________________________Зона смерти


<\/u><\/a>
<\/u><\/a>
<\/u><\/a>
<\/u><\/a>


Спасибо: 0 
Профиль Цитата Ответить
постоянный участник




Пост N: 2032
Рейтинг: 4
ссылка на сообщение  Отправлено: 13.11.10 20:38. Заголовок: А как задать? хп объ..


А как задать? хп объекта


<\/u><\/a>
Be quiet, be smart, be ready!
I go...
...and you will be deid!
Спасибо: 0 
Профиль Цитата Ответить
гранатомётчик со стажем




Пост N: 404
Рейтинг: 9
ссылка на сообщение  Отправлено: 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

...я здесь был... Спасибо: 0 
Профиль Цитата Ответить
moderator




Пост N: 3151
Рейтинг: 10
ссылка на сообщение  Отправлено: 15.11.10 10:35. Заголовок: Anti_Killer спасибо...


Anti_Killer спасибо. Но второй объект и не должен умирать. Но у меня есть тоже вопрос:
- Как взять хп с помощью pget у сервиса player?
Создаётся танк и сервис, а имя только у сервиса. А мне нужно взять хп у танка. (с помощью функции pget)
И ещё один (мы с Вирусом закидываем вопросами , но это потому что я не знал новинки новой версии, и они в Танкопедии не записаны ):
- Я знаю, что можно загрузить какой-нибудь файл в скриптах. Так игра сохранялась и загржалась в The Race. А можно сделать так, чтобы игра запускала файл lang.cfg с помощью скриптов из указанного места?



К счастью подковы нашёл у корыта,
Не стоит так радоваться - кто-то откинул копыта.

NNNNNNN______N_______N____N_____N__N_____N
___N_________N_N______N____N_____N_N______
___N________NNNN______NNNNN_____NN_______
___N_______N____N_____N____N_____N_N______
___N______N______N____N____N_____N__N_____N
__________________________Зона смерти


<\/u><\/a>
<\/u><\/a>
<\/u><\/a>
<\/u><\/a>


Спасибо: 0 
Профиль Цитата Ответить
гранатомётчик со стажем




Пост N: 406
Рейтинг: 9
ссылка на сообщение  Отправлено: 15.11.10 13:18. Заголовок: Как взять хп с помо..



 цитата:
Как взять хп с помощью pget у сервиса player?

vehname и есть объект танк. Проверяй хп у танка . вот и все.

 цитата:
Создаётся танк и сервис, а имя только у сервиса. А мне нужно взять хп у танка. (с помощью функции pget)

не вижу проблемы в задании параметра vehname у player_local

 цитата:
- Я знаю, что можно загрузить какой-нибудь файл в скриптах. Так игра сохранялась и загржалась в The Race. А можно сделать так, чтобы игра запускала файл lang.cfg с помощью скриптов из указанного места?

нет. Скрипты и игровые файлы вроде lang.cfg никак не связаны. lang.cfg обрабатывается при запуске игры

...я здесь был... Спасибо: 0 
Профиль Цитата Ответить
Ответов - 285 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет