Gubailovo
Well-Known Member
- Joined
- Dec 19, 2013
- Messages
- 407
- Solutions
- 2
- Reaction score
- 62
please help me with this event
data/actions/scripts/twdHammer.lua
data/movements/scripts/twdTile.lua
data/lib/compat/compat.lua
data/actions/scripts/twdHammer.lua
Lua:
dofile('data/libs/TWD/towerDefenseLib.lua')
function onUse(cid, item, fromPosition, target, toPosition, isHotkey)
local player = Player(cid)
if player:getStorageValue(playingGameStorage) ~= 1 then
return false
end
local tile = toPosition:getTile()
if tile then
if not tile:hasFlag(TILESTATE_PROTECTIONZONE) or tile:hasProperty(CONST_PROP_IMMOVABLEBLOCKSOLID) then
player:sendCancelMessage("You cannot place the turret here.")
return true
end
end
if target:isItem() then
local modalWindow = ModalWindow(100, "Build Turret", "Here you can select variations of turrets to build.")
local turret, cfgTable = turrets.allTurretsId
for i = 1, #turret do
turret = turrets.allTurretsId[i]
cfgTable = turrets[turret].cfg
modalWindow:addChoice(turret, string.format("%s [%s coins]", cfgTable.turretName, cfgTable[1].buildPrice))
end
modalWindow:addButton(0, "Build")
modalWindow:setDefaultEnterButton(0)
modalWindow:addButton(1, "Cancel")
modalWindow:setDefaultEscapeButton(1)
modalWindow:sendToPlayer(player)
turretPosition = toPosition
elseif target:isNpc() and target:getName() == "Turret" then
local table = turrets[target:getOutfit().lookType]
local lvl = target:getTurretLevel()
local cfg, cfgCombat = table.cfg[lvl], table.combat[lvl]
local turrentInfo = string.format("Turret Information\n----------------------------\nTurret Level: %s\nAttack Type: %s\nRange SQM: %sx%s\nTurret Damage: [%s - %s]\nAttack Speed: %s\nSell/Upgrade Price: [%s / %s]", lvl, string.upper(cfgCombat.attackType), cfg.rangeX, cfg.rangeY, cfgCombat.dmgValues[1], cfgCombat.dmgValues[2], cfg.attackSpeed, cfg.sellPrice, cfg.upgradePrice)
local playerInfo = string.format("Player Information\n----------------------------\nWave Level: %s\nYour Coins: %s", getWaveLevel(), player:getCoins())
local modalWindow = ModalWindow(101, "Information", string.format("%s\n\n%s", turrentInfo, playerInfo))
if lvl < 3 then
modalWindow:addChoice(0, "Upgrade")
end
modalWindow:addChoice(1, "Sell")
modalWindow:addButton(0, "Yes")
modalWindow:setDefaultEnterButton(0)
modalWindow:addButton(0x01, "Cancel")
modalWindow:setDefaultEscapeButton(1)
modalWindow:sendToPlayer(player)
targetTurret = target
end
return true
end
Lua:
dofile('data/libs/TWD/towerDefenseLib.lua')
function onStepIn(creature, item, position, fromPosition)
if item.uid == 3333 then
if not creature:isMonster() then
return false
end
local maxHealthDmg = creature:getMaxHealth()
doTargetCombatHealth(0, creature, COMBAT_PHYSICALDAMAGE, -maxHealthDmg, -maxHealthDmg, CONST_ME_FIREAREA)
local player = getPlayerInEvent(40, 40)
if not player then -- Make sure that the players exsist in the arena, to prevent errors
return true
end
if player:getCondition(CONDITION_MANASHIELD, CONDITIONID_COMBAT) then
player:removeCondition(CONDITION_MANASHIELD, CONDITIONID_COMBAT)
end
local calcHealthDmg = (player:getMaxHealth() * twdConfig.loseHealth) / 100
doTargetCombatHealth(0, player:getId(), COMBAT_PHYSICALDAMAGE, -calcHealthDmg, -calcHealthDmg, CONST_ME_DRAWBLOOD)
else
if not creature:isPlayer() then
return false
end
-- Let's make sure none is playing, before entrance
if getWaveLevel() > 0 then
creature:teleportTo(fromPosition, true)
fromPosition:sendMagicEffect(CONST_ME_TELEPORT)
creature:sendTextMessage(MESSAGE_INFO_DESCR, "There is someone already in the event.")
return true
end
-- Prepare Player
creature:teleportTo(eventRoomPosition)
creature:addHealth(creature:getMaxHealth())
creature:setStorageValue(playingGameStorage, 1)
creature:addCoins(twdConfig.startingCoins)
creature:addItem(2557, 1)
-- Setup Game
setWaveLevel(1)
startNextWave(1, twdConfig.eventStartTime)
Game.setStorageValue(totalMonsterKillCountGlobalStorage, 0)
-- Send Effects
eventRoomPosition:sendMagicEffect(CONST_ME_TELEPORT)
local pointingSummonPosition = summonMonsterPosition
Position(pointingSummonPosition.x + 1, pointingSummonPosition.y, pointingSummonPosition.z):sendMagicEffect(CONST_ME_TUTORIALARROW)
-- Send Messages
creature:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You have total ".. creature:getCoins() .." coins.")
creature:sendTextMessage(MESSAGE_INFO_DESCR, "Welcome to the Tower Defense Event. The first wave will start in ".. twdConfig.eventStartTime .." seconds. Please build your first turret.")
creature:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "The blue arrow, points where the monsters are comming from. Use the hammer, to build your first turret.")
-- Register Events
creature:registerEvent("TWDOnLose")
creature:registerEvent("TWDHealthChange")
creature:registerEvent("TWDBuildWindow")
creature:registerEvent("TWDOtherWindow")
end
return true
end
Attachments
-
compat.lua39.2 KB · Views: 1 · VirusTotal