mkbrabsolute 134 Posted July 26, 2015 Report Share Posted July 26, 2015 O Evento Battlefield há para TFS 1.1, 1.2. Portanto, este é o ÚNICO E EXCLUSIVO evento para o TFS 1.0 que a maioria usa.O Que há nele?Neste tópico encontraremos os scripts do evento, mapa e arquivo da source.Há necessidade de alterar o arquivo game.cpp da source e recompilar o TFS para que o evento funcione perfeitamente. Vamos ao que interessa! Em data/creaturescripts/scripts crie um arquivo com o nome de BATTLEFIELD_creaturescript.lua com o conteúdo: dofile('data/lib/BATTLEFIELD_lib.lua') local function getWinnersBattle(storage) for _, online in ipairs(Game.getPlayers()) do if online:isPlayer() then if online:getStorageValue(storage) > 0 then online:teleportTo(online:getTown():getTemplePosition()) online:sendTextMessage(MESSAGE_INFO_DESCR, msg) online:setStorageValue(storage, 0) online:addItem(bf.rewardWin[1], bf.rewardWin[2]) online:unregisterEvent("BattleTeamLife") online:unregisterEvent("BattleTeamMana") online:unregisterEvent("BattleDeath") online:addHealth(online:getMaxHealth()) online:addMana(online:getMaxMana()) online:removeCondition(CONDITION_OUTFIT) if online:isPzLocked() then online:remove() end end end end if storage == bf.teamOne.storage then broadcastMessage("The BattleEvent is finish, team ".. bf.teamOne.name .." win.", MESSAGE_STATUS_WARNING) elseif storage == bf.teamTwo.storage then broadcastMessage("The BattleEvent is finish, team ".. bf.teamTwo.name .." win.", MESSAGE_STATUS_WARNING) end checkGate() print("> BattleField Event was finished.") end function onLogin(cid) local player = Player(cid) if player:getStorageValue(bf.teamOne.storage) > 0 or player:getStorageValue(bf.teamTwo.storage) > 0 then player:setStorageValue(bf.teamOne.storage, 0) player:setStorageValue(bf.teamTwo.storage, 0) player:removeCondition(CONDITION_OUTFIT) player:teleportTo(player:getTown():getTemplePosition()) player:unregisterEvent("BattleTeamLife") player:unregisterEvent("BattleTeamMana") player:unregisterEvent("BattleDeath") end return true end function onLogout(cid) local player = Player(cid) if player:getStorageValue(bf.teamOne.storage) > 0 or player:getStorageValue(bf.teamTwo.storage) > 0 then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You can not logout now.") return false end return true end function onChangeHealth(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType) local player = Player(creature) local enemy = Player(attacker) if enemy then if (player:getStorageValue(bf.teamOne.storage) > 0 and enemy:getStorageValue(bf.teamOne.storage) > 0) or (player:getStorageValue(bf.teamTwo.storage) > 0 and enemy:getStorageValue(bf.teamTwo.storage) > 0) or (enemy:isMonster()) and (primaryDamage > 0) then return false end end return primaryDamage, primaryType, secondaryDamage, secondaryType end function onChangeMana(cid, attacker, manaChange) local player = Player(cid) local enemy = Player(attacker) if enemy then player:sendTextMessage(MESSAGE_INFO_DESCR, enemy) if (player:getStorageValue(bf.teamOne.storage) > 0 and enemy:getStorageValue(bf.teamOne.storage) > 0) or (player:getStorageValue(bf.teamTwo.storage) > 0 and enemy:getStorageValue(bf.teamTwo.storage) > 0) or (enemy:isMonster()) then return false end end return manaChange end function onPrepareDeath(cid, killer) local creature = Player(cid) if creature:getStorageValue(bf.teamOne.storage) > 0 then creature:removeCondition(CONDITION_OUTFIT) creature:sendTextMessage(MESSAGE_INFO_DESCR, "You are dead!") creature:teleportTo(creature:getTown():getTemplePosition()) creature:addHealth(creature:getMaxHealth()) creature:addMana(creature:getMaxMana()) creature:unregisterEvent("BattleTeamLife") creature:unregisterEvent("BattleTeamMana") creature:unregisterEvent("BattleDeath") Game.setStorageValue(bf.teamOne.storage, Game.getStorageValue(bf.teamOne.storage) - 1) creature:setStorageValue(bf.teamOne.storage, 0) elseif creature:getStorageValue(bf.teamTwo.storage) > 0 then creature:removeCondition(CONDITION_OUTFIT) creature:sendTextMessage(MESSAGE_INFO_DESCR, "You are dead!") creature:teleportTo(creature:getTown():getTemplePosition()) creature:addHealth(creature:getMaxHealth()) creature:addMana(creature:getMaxMana()) creature:unregisterEvent("BattleTeamLife") creature:unregisterEvent("BattleTeamMana") creature:unregisterEvent("BattleDeath") Game.setStorageValue(bf.teamTwo.storage, Game.getStorageValue(bf.teamTwo.storage) - 1) creature:setStorageValue(bf.teamTwo.storage, 0) end if Game.getStorageValue(bf.teamOne.storage) == 0 then getWinnersBattle(bf.teamTwo.storage) elseif Game.getStorageValue(bf.teamTwo.storage) == 0 then getWinnersBattle(bf.teamOne.storage) end if Game.getStorageValue(bf.teamOne.storage) > 0 and Game.getStorageValue(bf.teamTwo.storage) > 0 then doMsgBattlefield("[BattleField] "..bf.teamOne.name.." "..Game.getStorageValue(bf.teamOne.storage).." VS "..Game.getStorageValue(bf.teamTwo.storage).." " ..bf.teamTwo.name) end if creature:isPzLocked() then creature:remove() end return false end Em data/creaturescripts/creaturescripts.xml adicione as seguintes linhas: <event type="login" name="BattleLogin" script="BATTLEFIELD_creaturescript.lua"/> <event type="logout" name="BattleLogout" script="BATTLEFIELD_creaturescript.lua"/> <event type="preparedeath" name="BattleDeath" script="BATTLEFIELD_creaturescript.lua"/> <event type="changehealth" name="BattleTeamLife" script="BATTLEFIELD_creaturescript.lua"/> <event type="changemana" name="BattleTeamMana" script="BATTLEFIELD_creaturescript.lua"/> Em data/globalevents/script, crie um arquivo com o nome de BATTLEFIELD_globalevents.lua e adicione o conteúdo: dofile('data/lib/BATTLEFIELD_lib.lua') local function teleportCheck() local tile = Tile(bf.teleportPosition) if tile then local item = tile:getItemById(1387) if item then item:remove() broadcastMessage("The BattleField Event was start in ".. bf.timeOpenGate .." minutes.", MESSAGE_STATUS_WARNING) local team1 = Game.getStorageValue(bf.teamOne.storage) local team2 = Game.getStorageValue(bf.teamTwo.storage) if (team1 + team2) % 2 ~= 0 then local playerLeave = Player(Game.getStorageValue(bf.namePlayer)) playerLeave:teleportTo(playerLeave:getTown():getTemplePosition()) playerLeave:removeCondition(CONDITION_OUTFIT) playerLeave:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You are dead!") playerLeave:addHealth(playerLeave:getMaxHealth()) playerLeave:addMana(playerLeave:getMaxMana()) playerLeave:unregisterEvent("BattleTeamLife") playerLeave:unregisterEvent("BattleTeamMana") playerLeave:unregisterEvent("BattleDeath") Game.setStorageValue(bf.teamTwo.storage, Game.getStorageValue(bf.teamTwo.storage) - 1) playerLeave:setStorageValue(bf.teamTwo.storage, 0) end addEvent(checkGate, bf.timeOpenGate * 60 * 1000) else broadcastMessage("The BattleField Event was opened and will close in ".. bf.timeCloseTeleport .." minutes.", MESSAGE_STATUS_WARNING) Game.setStorageValue(bf.teamOne.storage, 0) Game.setStorageValue(bf.teamTwo.storage, 0) Game.setStorageValue(bf.namePlayer, 0) print("> BattleField Event was opened.") local teleport = Game.createItem(1387, 1, bf.teleportPosition) if teleport then teleport:setActionId(47000) end end end end function onTime(interval) teleportCheck() addEvent(teleportCheck, bf.timeCloseTeleport * 60 * 1000) return true end Em data/globalevents/globalevents.xml adicione: <globalevent name="BattleField" time="20:55:00" script="BATTLEFIELD_globalevents.lua" /> Em data/libs crie um arquivo com o nome de BATTLEFIELD_lib com o conteúdo: - -[[ LIB BATTLEFIELD TFS 1.0 Arquivos além desta lib: - BATTLEFIELD_globalevents.lua - BATTLEFIELD_movements.lua - BATTLEFIELD_creaturescript.lua - spell invisible.lua -- alterar UTANA VID e STEALTH RING ]]-- bf = { rewardWin = {2160, 10}, teamOne = {name = "Black Assassins", storage = 140120, pos = {x=1006,y=994,z=6}}, teamTwo = {name = "Red Barbarians", storage = 140121, pos = {x=1032,y=994,z=6}}, timeCloseTeleport = 1, timeOpenGate = 1, teleportPosition = {x=1019, y=1016, z=7}, namePlayer = 18400, levelToEvent = 7, itemGate = 3517 } function checkGate() local wall = { {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, } broadcastMessage("The BattleEvent Event will begin now!", MESSAGE_STATUS_WARNING) doMsgBattlefield("[BattleField] "..bf.teamOne.name.." "..Game.getStorageValue(bf.teamOne.storage).." VS "..Game.getStorageValue(bf.teamTwo.storage).." " ..bf.teamTwo.name) print("> BattleField Event will begin now.") for i = 1, #wall do local tile = Tile(wall[i]) if tile then local item = tile:getItemById(bf.itemGate) if item then item:remove() else Game.createItem(bf.itemGate, 1, wall[i]) end end end end function doMsgBattlefield(msg) for _, online in ipairs(Game.getPlayers()) do if online:isPlayer() then if online:getStorageValue(bf.teamOne.storage) > 0 or online:getStorageValue(bf.teamTwo.storage) > 0 then online:sendTextMessage(MESSAGE_INFO_DESCR, msg) end end end end Em data/movements/scripts crie um arquivo com o nome de BATTLEFIELD_movements com o conteúdo: dofile('data/lib/BATTLEFIELD_lib.lua') local conditionBlack = Condition(CONDITION_OUTFIT) conditionBlack:setTicks(120 * 60 * 1000) conditionBlack:addOutfit({lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114}) local conditionRed = Condition(CONDITION_OUTFIT) conditionRed:setTicks(120 * 60 * 1000) conditionRed:addOutfit({lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}) function onStepIn(cid, item, position, fromPosition) local player = Player(cid) if player:getLevel() < bf.levelToEvent then player:sendTextMessage(MESSAGE_INFO_DESCR, "You need level " .. bf.levelToEvent .. " to enter in event.") player:teleportTo(fromPosition) return false end if player:getItemCount(2165) >= 1 then player:sendTextMessage(MESSAGE_INFO_DESCR, "You can not enter stealth ring in the event.") player:teleportTo(fromPosition) return false end if Game.getStorageValue(bf.teamOne.storage) < Game.getStorageValue(bf.teamTwo.storage) then Game.setStorageValue(bf.teamOne.storage, Game.getStorageValue(bf.teamOne.storage) + 1) player:addCondition(conditionBlack) player:setStorageValue(bf.teamOne.storage, 1) player:setStorageValue(bf.teamTwo.storage, 0) player:teleportTo(bf.teamOne.pos) player:sendTextMessage(MESSAGE_INFO_DESCR, "You will join the team " .. bf.teamOne.name .. ".") else Game.setStorageValue(bf.teamTwo.storage, Game.getStorageValue(bf.teamTwo.storage) + 1) player:addCondition(conditionRed) player:setStorageValue(bf.teamTwo.storage, 1) player:setStorageValue(bf.teamOne.storage, 0) player:teleportTo(bf.teamTwo.pos) player:sendTextMessage(MESSAGE_INFO_DESCR, "You will join the team " .. bf.teamTwo.name .. ".") Game.setStorageValue(bf.namePlayer, cid) end player:addHealth(player:getMaxHealth()) player:addMana(player:getMaxMana()) player:registerEvent("BattleTeamLife") player:registerEvent("BattleTeamMana") player:registerEvent("BattleDeath") return true end Em data/movements/movements.xml adicione: <movevent event="StepIn" actionid="47000" script="BATTLEFIELD_movements.lua"/> Em data/spells/scripts/support abra o arquivo invisible.lua, apague tudo e coloque: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) dofile('data/lib/BATTLEFIELD_lib.lua') function onCastSpell(cid, var) local player = Player(cid) if player:getStorageValue(bf.teamOne.storage) > 0 or player:getStorageValue(bf.teamTwo.storage) > 0 then return false else return doCombat(cid, combat, var) end end Conforme avisado, no TFS 1.0 há necessidade de alterar alguns códigos nas fontes, portanto estou disponibilizando o arquivo game.cpp, basta substituir em sua basta e recompila-lo. Download game.cpp: https://www.sendspace.com/file/vqs5u4Download Map tradicional: https://www.sendspace.com/file/f5tjhg Imagem do mapa: Para configurar, basta ver os arquivos e configurar horário, dias e posições do mapa!SCRIPT 100% TESTADO, O MESMO É VENDIDO PELO MODERADOR DO OUTRO FÓRUM! PORTANTO SEM ESSA, MODIFICAMOS E, IT'S FREEEEEEEE! Créditos: AbsoluteVodkart Luan LucianoMarkin Bom Proveito a todos, até o próximo! FAVOR MOVER O TÓPICO PRA SEÇÃO SCRIPTING > SISTEMAS E MODS, QUE TÁ FOD* CRIAR LÁ.... Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/ Share on other sites More sharing options...
DeCarvalho 65 Posted July 26, 2015 Report Share Posted July 26, 2015 Parabéns pela iniciativa .. acabar com issod e vendas de sistemas/scripts/ots Sabe onde posso conseguir para 1.2? Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1662415 Share on other sites More sharing options...
Vodkart 1515 Posted July 26, 2015 Report Share Posted July 26, 2015 Parabéns pela iniciativa .. acabar com issod e vendas de sistemas/scripts/ots Sabe onde posso conseguir para 1.2? tenta esse http://www.xtibia.com/forum/topic/235694-battlefield-tfs-11/ @TÓPIC parabéns pelo conteúdo! vejo ue conseguiu fazer, obrigado por contribuir Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1662419 Share on other sites More sharing options...
DeCarvalho 65 Posted July 26, 2015 Report Share Posted July 26, 2015 tenta esse http://www.xtibia.com/forum/topic/235694-battlefield-tfs-11/ @TÓPIC parabéns pelo conteúdo! vejo ue conseguiu fazer, obrigado por contribuir Vou testar.. obrigado Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1662421 Share on other sites More sharing options...
luanluciano93 38 Posted July 28, 2015 Report Share Posted July 28, 2015 (edited) @TÓPIC parabéns pelo conteúdo! vejo ue conseguiu fazer, obrigado por contribuir os creditos que ele colocou o nome dele são por postar, kkk, até parece que ele consegue fazer algo que não seja roubar. Edited July 28, 2015 by luanluciano93 Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1662616 Share on other sites More sharing options...
DeCarvalho 65 Posted July 28, 2015 Report Share Posted July 28, 2015 os creditos que ele colocou o nome dele são por postar, kkk, até parece que ele consegue fazer algo que não seja roubar. Eu acho que ao invés de mimim quem fala deveria fazer melhor .. Se foi ou não foi pelo menos fez #Recalque Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1662617 Share on other sites More sharing options...
luanluciano93 38 Posted July 28, 2015 Report Share Posted July 28, 2015 (edited) Quem fez esse sistema foi eu senhor Mimimi, alias, uma versão bem antiga. Edited July 28, 2015 by luanluciano93 Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1662618 Share on other sites More sharing options...
RigBy 285 Posted July 28, 2015 Report Share Posted July 28, 2015 Tópico movido a área correta. Belo sistema, obrigado por compartilhar. Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1662695 Share on other sites More sharing options...
Askov 0 Posted October 3, 2015 Report Share Posted October 3, 2015 Tentei por no meu ot tfs 1.0 e não funcionou! Tem certeza que funciona em 1.0? Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1670930 Share on other sites More sharing options...
Auspicioso 0 Posted October 6, 2015 Report Share Posted October 6, 2015 não consigo importar o mapa... esse mapa é para qual versao? to usando tfs 1.0 na 10.76~10.78 alguem? Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1671329 Share on other sites More sharing options...
Danihcv 335 Posted April 20, 2016 Report Share Posted April 20, 2016 Tópico com links, para conteúdo essencial, quebrados. Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1691737 Share on other sites More sharing options...
Danihcv 335 Posted April 21, 2016 Report Share Posted April 21, 2016 Tópico movido para lixeira, qualquer dúvida entre em contato com qualquer membro da equipe. Link to comment https://xtibia.com/forum/topic/235773-tfs-10-battlefield-event-new-100/#findComment-1691738 Share on other sites More sharing options...
Recommended Posts