Все вопросы типо "Памагите мне" пишем сюды.
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
Quote (Vorobey)
Во время хода, даже если постаить 3000 хп у червя становится 100хп... Если червю нанесён урон, то после хода он регенится опять до 3000хп... Чё делать? ^_^

Help!
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Vorobey, кусок кода, отвечающий за изменение здоровья, должен находиться до StartFirstTurn()
 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
4erveR, спасиб, попробую :D

Добавлено (10.07.2011, 17:33)
---------------------------------------------
Куда примерно? Я пробовал вставить в function Initialise, но всё то-же что и раньше...

Quote (Vorobey)
Во время хода, даже если постаить 3000 хп у червя становится 100хп... Если червю нанесён урон, то после хода он регенится опять до 3000хп... Чё делать? ^_^
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Ты какой скрипт редактируешь?
 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
MultiplayerDestruction.lua
 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
Мне не охото Survivor изменять

Сообщение отредактировал Vorobey - ВС, 10.07.2011, 17:43:18
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Вставляешь ПЕРЕД StartFirstTurn()
 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
Перед? попробую :)

Добавлено (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)
---------------------------------------------
Но фигня всё таже...

 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
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
 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
Я тогда привёл пример.... А ставил я потом 100 и 200... Так вот, фигня эта осталась... Что делать?
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Quote (4erveR)
Вдруг процитированный мной кусок кода находится в других частях скрипта?

Это хоть проверял?


Сообщение отредактировал 4erveR - ПН, 11.07.2011, 11:18:06
 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
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
 
4erveR
Модераторы
Сообщений: 1511
Реп: 77 / Инв: 13
Убери процитированный мной кода из функции DoOncePerTurnFunctions() т.к., судя по названию, эта функция выполняется 1 раз за ход.

Сообщение отредактировал 4erveR - ПН, 11.07.2011, 11:27:25
 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
Всё равно, если ставлю у червя 200 хп, то во время хода у него 100 facepalm
 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
Help

Сообщение отредактировал Vorobey - ПН, 11.07.2011, 16:46:12
 
PROFILE
Модераторы
Сообщений: 1017
Реп: 107 / Инв: 7
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 единицами здоровья. Пиши, если надо это исправить


 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
PROFILE, не... Я в скрипте уже получше шарю... Эффект воскрешения убрал)

Добавлено (11.07.2011, 20:52)
---------------------------------------------
PROFILE, ты прав))) Это жизнь земли(замка)... А как сделать, чтоб показывалось здоровье червя?

 
PROFILE
Модераторы
Сообщений: 1017
Реп: 107 / Инв: 7
Quote (Vorobey)
А как сделать, чтоб показывалось здоровье червя?

Если тебе не нужно разрушать землю, перепиши скрипт с нуля. Сделаешь там все, что захочешь




Сообщение отредактировал PROFILE - ПН, 11.07.2011, 21:23:51
 
Vorobey
Модераторы
Сообщений: 1740
Реп: 101 / Инв: 11
Ясн))) Придётся быть потным)))
З.Ы. Кул ава

Добавлено (11.07.2011, 23:29)
---------------------------------------------
А как называется скрипт отвечающий за "дом родной"? Я возьму оттуда куски скрипта :)

 
PROFILE
Модераторы
Сообщений: 1017
Реп: 107 / Инв: 7
Quote (Vorobey)
А как называется скрипт отвечающий за "дом родной"?

Не знаю. А что ты хотел оттуда взять?


 
Поиск: