|
Все вопросы типо "Памагите мне" пишем сюды.
|
|
Сообщений: 1740
|
Опубликовано: 10.07.2011, 14:27:44
Quote (Vorobey) Во время хода, даже если постаить 3000 хп у червя становится 100хп... Если червю нанесён урон, то после хода он регенится опять до 3000хп... Чё делать? Help!
|
| |
|
|
Сообщений: 1511
|
Опубликовано: 10.07.2011, 14:34:59
Vorobey, кусок кода, отвечающий за изменение здоровья, должен находиться до StartFirstTurn()
|
| |
|
|
Сообщений: 1740
|
Опубликовано: 10.07.2011, 17:33:58
4erveR, спасиб, попробую  Добавлено (10.07.2011, 17:33) --------------------------------------------- Куда примерно? Я пробовал вставить в function Initialise, но всё то-же что и раньше... Quote (Vorobey) Во время хода, даже если постаить 3000 хп у червя становится 100хп... Если червю нанесён урон, то после хода он регенится опять до 3000хп... Чё делать? ^_^
|
| |
|
|
Сообщений: 1511
|
Опубликовано: 10.07.2011, 17:35:36
Ты какой скрипт редактируешь?
|
| |
|
|
Сообщений: 1740
|
Опубликовано: 10.07.2011, 17:41:09
MultiplayerDestruction.lua
|
| |
|
|
Сообщений: 1740
|
Опубликовано: 10.07.2011, 17:43:02
Мне не охото Survivor изменять
Сообщение отредактировал Vorobey - ВС, 10.07.2011, 17:43:18
|
| |
|
|
Сообщений: 1511
|
Опубликовано: 10.07.2011, 17:56:25
Вставляешь ПЕРЕД StartFirstTurn()
|
| |
|
|
Сообщений: 1740
|
Опубликовано: 10.07.2011, 18:50:19
Перед? попробую  Добавлено (10.07.2011, 18:49) --------------------------------------------- 4erveR, я кстати так и сделал) function Initialise()
lib_SetupMultiplayer()
SendMessage("WormManager.Reinitialise") lib_SetupMinesAndOildrums() -- do this after worms are set up to get correct worm collision
g_nInitialLand = {0, 0, 0, 0} g_sIslandCode = {"TM00", "TM01", "TM02", "TM03"}
for team = 0,3 do local TeamContainer = QueryContainer(lib_GetTeamContainerName(team)) if TeamContainer.Active then SendStringMessage("Land.GetLandRemaining", g_sIslandCode[team+1] ) local Land = GetData("Land.LandRemaining") g_nInitialLand[team+1] = Land -- remap the spawn area for this team to be the centre of the map from now on SetData("SpawnVolume.CopyFrom", 4) SendIntMessage("SpawnVolume.Remap", team) end end SetData("DestructionTeamDied.0", 0) SetData("DestructionTeamDied.1", 0) SetData("DestructionTeamDied.2", 0) SetData("DestructionTeamDied.3", 0) -- SetData("HUD.Counter.Active", 1) -- SetData("HUD.Counter.Percent", 1) for WormIndex = 0 ,3 do local WormContainerName = lib_GetWormContainerName(WormIndex) local lock, worm = EditContainer(WormContainerName) worm.Energy = 100 CloseContainer(lock) end for WormIndex = 4 ,9 do local WormContainerName = lib_GetWormContainerName(WormIndex) local lock, worm = EditContainer(WormContainerName) worm.Energy = 200 CloseContainer(lock) end StartFirstTurn() end Добавлено (10.07.2011, 18:50) --------------------------------------------- Но фигня всё таже...
|
| |
|
|
Сообщений: 1511
|
Опубликовано: 11.07.2011, 09:50:50
Quote (Vorobey) Во время хода, даже если постаить 3000 хп у червя становится 100хп... Если червю нанесён урон, то после хода он регенится опять до 3000хп... Чё делать? ^_^ Quote (Vorobey) for WormIndex = 0 ,3 do local WormContainerName = lib_GetWormContainerName(WormIndex) local lock, worm = EditContainer(WormContainerName) worm.Energy = 100 CloseContainer(lock) end for WormIndex = 4 ,9 do local WormContainerName = lib_GetWormContainerName(WormIndex) local lock, worm = EditContainer(WormContainerName) worm.Energy = 200 CloseContainer(lock) end Не вижу логики: там 3000, тут 100 и 200.
Добавлено (11.07.2011, 09:49) --------------------------------------------- Как я понял, ты хотел поставить 100хп первым 4м червям (WormIndex от 0 до 3), а остальным 6 червям (WormIndex от 4 до 9) 200хп?
Добавлено (11.07.2011, 09:50) --------------------------------------------- Вдруг процитированный мной кусок кода находится в других частях скрипта?
Сообщение отредактировал 4erveR - ПН, 11.07.2011, 09:58:46
|
| |
|
|
Сообщений: 1740
|
Опубликовано: 11.07.2011, 10:23:37
Я тогда привёл пример.... А ставил я потом 100 и 200... Так вот, фигня эта осталась... Что делать?
|
| |
|
|
Сообщений: 1511
|
Опубликовано: 11.07.2011, 10:34:01
Quote (4erveR) Вдруг процитированный мной кусок кода находится в других частях скрипта? Это хоть проверял?
Сообщение отредактировал 4erveR - ПН, 11.07.2011, 11:18:06
|
| |
|
|
Сообщений: 1740
|
Опубликовано: 11.07.2011, 11:03:01
4erveR, вот кажется нашёл function DoOncePerTurnFunctions()
-- Make sure the land values are up to date UpdateCounter() -- kill off teams with low amount of land local bTeamDied = false for team = 0,3 do local teamAlreadyDead local resourceName = 'DestructionTeamDied.' .. team teamAlreadyDead = GetData(resourceName) if teamAlreadyDead == 0 and IsEnoughLandRemaining(team) == false then local WormIndex for WormIndex=0,15 do local worm = QueryContainer(lib_GetWormContainerName(WormIndex)) if worm.TeamIndex == team then SendIntMessage("WXWormManager.UnspawnWorm", WormIndex) end bTeamDied = true SetData(resourceName, 1) end end end
-- no crates if a team just died if bTeamDied == false then SendMessage("GameLogic.DropRandomCrate") end end
|
| |
|
|
Сообщений: 1511
|
Опубликовано: 11.07.2011, 11:17:25
Убери процитированный мной кода из функции DoOncePerTurnFunctions() т.к., судя по названию, эта функция выполняется 1 раз за ход.
Сообщение отредактировал 4erveR - ПН, 11.07.2011, 11:27:25
|
| |
|
|
Сообщений: 1740
|
Опубликовано: 11.07.2011, 11:37:58
Всё равно, если ставлю у червя 200 хп, то во время хода у него 100
|
| |
|
|
Сообщений: 1740
|
Опубликовано: 11.07.2011, 16:45:57
Help
Сообщение отредактировал Vorobey - ПН, 11.07.2011, 16:46:12
|
| |
|
|
Сообщений: 1017
|
Опубликовано: 11.07.2011, 20:02:03
Quote function DoOncePerTurnFunctions()
-- Make sure the land values are up to date UpdateCounter() -- kill off teams with low amount of land local bTeamDied = false for team = 0,3 do local teamAlreadyDead local resourceName = 'DestructionTeamDied.' .. team teamAlreadyDead = GetData(resourceName)
if teamAlreadyDead == 0 and IsEnoughLandRemaining(team) == false then local WormIndex for WormIndex=0,15 do local worm = QueryContainer(lib_GetWormContainerName(WormIndex)) if worm.TeamIndex == team then SendIntMessage("WXWormManager.UnspawnWorm", WormIndex) end bTeamDied = true SetData(resourceName, 1) end end end
-- no crates if a team just died if bTeamDied == false then SendMessage("GameLogic.DropRandomCrate") end end Вы вообще это читали? Здесь прописан проигрыш команды, у которой не осталось земли. Сейчас попробуй сам поскриптить)Добавлено (11.07.2011, 20:02) --------------------------------------------- Vorobey, когда в правом верхнем углу видишь цифру 100, это кол-во целой земли (все-таки режим Разрушение). Я вставлял скрипт изменения здоровья после строки Code SendMessage("WormManager.Reinitialise") Все работало. P.S. К сведению, после смерти червь появится в центре карты с 250 единицами здоровья. Пиши, если надо это исправить

|
| |
|
|
Сообщений: 1740
|
Опубликовано: 11.07.2011, 20:52:03
PROFILE, не... Я в скрипте уже получше шарю... Эффект воскрешения убрал)Добавлено (11.07.2011, 20:52) --------------------------------------------- PROFILE, ты прав))) Это жизнь земли(замка)... А как сделать, чтоб показывалось здоровье червя?
|
| |
|
|
Сообщений: 1017
|
Опубликовано: 11.07.2011, 21:23:07
Quote (Vorobey) А как сделать, чтоб показывалось здоровье червя? Если тебе не нужно разрушать землю, перепиши скрипт с нуля. Сделаешь там все, что захочешь

Сообщение отредактировал PROFILE - ПН, 11.07.2011, 21:23:51
|
| |
|
|
Сообщений: 1740
|
Опубликовано: 11.07.2011, 23:29:27
Ясн))) Придётся быть потным))) З.Ы. Кул ава  Добавлено (11.07.2011, 23:29) --------------------------------------------- А как называется скрипт отвечающий за "дом родной"? Я возьму оттуда куски скрипта 
|
| |
|
|
Сообщений: 1017
|
Опубликовано: 11.07.2011, 23:37:27
Quote (Vorobey) А как называется скрипт отвечающий за "дом родной"? Не знаю. А что ты хотел оттуда взять?

|
| |
|
|