Результаты поиска
|
|
Сообщений: 1240
|
Опубликовано: 21.02.2009, 11:52:12
смотри как это можно решить. Вообще, как работает lua. Он загружает все скрипты в один текст, то есть к примеру идёт так: текст из stdlib.lua текст из stdvs.lua текст из других файлов потом полученный текст выполняется последовательно. В lua код не обязательно находится в теле функции, к примеру(это псевдокод, подразумевается, что DisplayComment выводит на экран текст): Code DisplayComment("Вне функции")
function a() DisplayComment("В функции") end
a() DisplayComment("Ещё раз вне функции") Этот код выведет: Code Вне функции В функции Ещё раз вне функции В lua можно переопределять функции: Code function a() DisplayComment("1") end
function a() DisplayComment("2") end
a() тут вызовется не первая, а вторая функция(на экран выведется 2). В lua есть несколько типов данных: строки(текст), числа, таблицы, функции. То есть мы можем хранить ссылку на функцию в переменной, поэтому можно написать такой код: Code function a() DisplayComment("1") end
OldAFunction=a
function a() DisplayComment("2") end
a() OldAFunction() тут на экран выведется 2 1. При этом строку: надо писать до переопределения функции. Теперь ближе к червям. В stdvs к примеру есть функция Code function Initialise() StartedSuddenDeath = false SetupScheme()
lib_SetupMultiplayerWormsAndTeams() SendMessage("WormManager.Reinitialise")
lib_SetupMinesAndOildrums() -- do this after worms are set up to get correct worm collision
local scheme = QueryContainer("GM.SchemeData") if scheme.RoundTime == 0 then StartSuddenDeath() -- do this after worms are set up to readjust health local GameOver = GetData("FCS.GameOver") -- do no further processing if sudden death drew the game if GameOver ~= 0 then return end end if scheme.MineFactoryOn == true then SendMessage("GameLogic.CreateRandMineFactory") end if scheme.TelepadsOn == true then SendMessage("GameLogic.PlaceTelepads") end SetData("Camera.StartOfTurnCamera","Default") SetWormpotModes()
WaitingForStartFirstTurn = false StartFirstTurn() end В своём скрипте фактически можно написать так: Code OldInitialize=Initialize function Initialise() -- тут проводим свою инициализацию OldInitialize() --когда необходимо вызываем старый обработчик -- продолжаем свою инициализацию end Про подключение сриптов я тоже не супер разобрался...
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 21.02.2009, 12:08:10
а, на вопрос то толком не ответил) короче можешь написать MyScript.lua, в котором будет такой текст: Code OldInitialise=Initialise function Initialise() OldInitialise() end
OldSetSpecialWeapon=SetSpecialWeapon function SetSpecialWeapon(TeamIndex, WeaponName) OldSetSpecialWeapon(TeamIndex, WeaponName) end
OldDoOncePerTurnFunctions=DoOncePerTurnFunctions function DoOncePerTurnFunctions() OldDoOncePerTurnFunctions() end
OldSetupScheme=SetupScheme function SetupScheme() OldSetupScheme() end
OldSetupInventoriesAndDelays=SetupInventoriesAndDelays function SetupInventoriesAndDelays() OldSetupInventoriesAndDelays() end
OldIncrementAlliedInventory=IncrementAlliedInventory function IncrementAlliedInventory(AlliedGroup, Weapon) OldIncrementAlliedInventory(AlliedGroup, Weapon) end
OldStockpile=Stockpile function Stockpile() OldStockpile() end
OldRoundOver=RoundOver function RoundOver() OldRoundOver() end
OldTurnStarted=TurnStarted function TurnStarted() OldTurnStarted() end
OldSetupTeleportIn=SetupTeleportIn function SetupTeleportIn() OldSetupTeleportIn() end
OldTeleportIn=TeleportIn function TeleportIn() OldTeleportIn() end
OldTimer_GameTimedOut=Timer_GameTimedOut function Timer_GameTimedOut() OldTimer_GameTimedOut() end
OldCheckSuddenDeath=CheckSuddenDeath function CheckSuddenDeath() OldCheckSuddenDeath() end
OldStartSuddenDeath=StartSuddenDeath function StartSuddenDeath() OldStartSuddenDeath() end
OldGameLogic_NoActivity=GameLogic_NoActivity function GameLogic_NoActivity() OldGameLogic_NoActivity() end
OldWorm_Died=Worm_Died function Worm_Died() OldWorm_Died() end
----
OldStartFirstTurn=StartFirstTurn function StartFirstTurn() OldStartFirstTurn() end
OldStartTurn=StartTurn function StartTurn() OldStartTurn() end
OldRunAILogic=RunAILogic function RunAILogic() OldRunAILogic() end
OldTimer_HotSeatTimedOut=Timer_HotSeatTimedOut function Timer_HotSeatTimedOut() OldTimer_HotSeatTimedOut() end
OldGameLogic_EndTurn_Immediate=GameLogic_EndTurn_Immediate function GameLogic_EndTurn_Immediate() OldGameLogic_EndTurn_Immediate() end
OldTimer_RetreatTimedOut=Timer_RetreatTimedOut function Timer_RetreatTimedOut() OldTimer_RetreatTimedOut() end
OldWorm_Damaged_Current=Worm_Damaged_Current function Worm_Damaged_Current() OldWorm_Damaged_Current() end
OldTimer_TurnTimedOut=Timer_TurnTimedOut function Timer_TurnTimedOut() OldTimer_TurnTimedOut() end
OldTimer_PostActivityTimedOut=Timer_PostActivityTimedOut function Timer_PostActivityTimedOut() OldTimer_PostActivityTimedOut() end OldCheckActivity=CheckActivity function CheckActivity() OldCheckActivity() end
OldDoPostActivity=DoPostActivity function DoPostActivity() OldDoPostActivity() end
OldTurnEnded=TurnEnded function TurnEnded() OldTurnEnded() end
OldCheckOneTeamVictory=CheckOneTeamVictory function CheckOneTeamVictory() OldCheckOneTeamVictory() end
OldEndTurn=EndTurn function EndTurn() OldEndTurn() end
OldSetWind=SetWind function SetWind() OldSetWind() end
OldSelectRandomWind=SelectRandomWind function SelectRandomWind() OldSelectRandomWind() end
OldSetWormpotModes=SetWormpotModes function SetWormpotModes() OldSetWormpotModes() end
и если нужно в нужной функции меняй тело
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 21.02.2009, 13:36:31
хм.. если ты внимательно посмотришь в папку maps ты заметишь, что для каждой карты там есть файл xan и hmp, вот ты скопируй любой подходящий hmp файл туда и переименую на нужную карту
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 21.02.2009, 18:46:27
196
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 22.02.2009, 21:29:50
о, неплохо)
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 23.02.2009, 21:33:39
я вообще не понимаю, как ты это будешь реализовывать!
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 25.02.2009, 22:33:05
может ты сделал их прозрачными? они в игре как стены существуют? т.е. как препятствие
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 28.02.2009, 21:33:57
а где глюк?
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 28.02.2009, 21:35:34
а, внешние стены чтоли пропадают?
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 01.03.2009, 18:18:22
Пример изменения данного значения через lua: SetData("Jetpack.ThrustScale", 0.01)
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 01.03.2009, 18:19:50
ну вот(
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 05.03.2009, 23:54:13
Предлагаю медальки за число сообщений на форуме! ну например за 100, 500, 666(демоны форума=) ) и 1000
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 06.03.2009, 10:48:05
есть такой вариант, что float нельзя задавать, в чём я сомневаюсь... другой вариант в том, что эти контейнеры "заблокированы". кстати, что происходит при запуске скрипта? вылет, ничего или кручение карты?
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 06.03.2009, 10:49:40
медаль за 666 нужна) ну меняются медальки должны, конечно) тупо если будет у одного чела медали за 100 и 500 сразу
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 06.03.2009, 22:29:29
похоже физика проверяется только в начале хода) те наверно надо сбросить ход и всё заработает
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 07.03.2009, 19:58:29
да, как мы телепорт делали... наверно так же) короче гравитация меняется только при новом ходе, это я проверил
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 08.03.2009, 00:11:19
я считаю по чему мануал нужен, так это по реплайсеру! пиши!
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 08.03.2009, 16:25:04
так, вот это я не понял) вот мой код: Code
local GravityChanging=0
function GravityChanger() if GravityChanging==1 then SetData("Low.Gravity.GameDefault",lib_GetRandomFloat(0.01,2)) StartTimer("GravityChanger", 1000) end end
function TurnStarted() local scheme = QueryContainer("GM.SchemeData") if scheme.WormSelect == 1 then SendMessage("WormSelect.OptionSelected") end TeleportIn() GravityChanging=1 StartTimer("GravityChanger",1000) end
function TurnEnded() GravityChanging=0 CheckOneTeamVictory() end по сути он должен каждую секунду менять гравитацию, но он её меняет только после начала хода!
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 09.03.2009, 11:43:30
ты не понял) я хотел чтобы каждую секунду менялась гравитация, а GravityChanging я ввёл для безопасности. Проблема не в этом! значение гравитации реально меняется только после начала нового хода!(
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|
Сообщений: 1240
|
Опубликовано: 11.03.2009, 11:10:12
Браво)
________________________ __|____|____|____|____|__ |____|____|____|____|____| __|___бицца головой___|__ |____|____|сюда|____|____| __|____|____|____|____|__ |____|____|____|____|____|
|
|
|
|