Fala ae pessoal!
Bom, vou escrever tudo bem detalhado, para que vocês entendam o que eu quero, e o que eu tenho.
Começando com o meu Server. Bom, eu baixei o server Rookwar, que está disponibilizado na área de download do XTibia, e ele é 8.6.
É o seguinte: Sabe o server "X-DREAM"? Se sim, ótimo. Se não, o X-DREAM é um servidor de war, onde tem 2 times (Green e Red) e eles se enfrentam durante 30 minutos em um mapa, depois existe um sistema que muda de mapa, e todos os players são movidos para os templos de acordo com seu time, e assim vai...
Pois bem, eu tenho um Server e está praticamente pronto. Só falta 2 coisas. Mas o mais importante mesmo e o que eu estou pedindo, é o que eu disse logo acima "existe um sistema que muda de mapa."
Calma! Não saia do tópico ainda! Só preciso de toquezinho no script que eu "acho" que é o script que faz mudar de mapa que eu achei na pasta do X-DREAM.
Bom, como eu disse antes, meu Server está pronto. Portanto, eu já tenho todos os mapas (eu que fiz. Portanto, não está dando nenhum erro no launcher, que é o que não acontece quando alguém apenas copia o mapa de alguém, e dá aqueles erros todos com uniqueid, e etc..).
Eu falei logo acima que eu acho que é o script que faz mudar de mapa. Pois bem, aqui está o script:
Em data/creaturescript/script tem uma pasta chamada "mine". Dentro dela, tem 5 arquivos.lua que são:
attack.lua:
function onCombat(cid, target)
return onPlayerAttack(cid, target)
end
items.lua:
function onLogin(cid)
return doPlayerAddEquipment(cid)
end
look.lua:
function onLook(cid, thing, position, lookDistance)
return doPlayerShowFragsCount(cid, thing, position, lookDistance)
end
main.lua:
function onLogin(cid)
registerCreatureEvent(cid, "WarProtect")
registerCreatureEvent(cid, "WarLook")
registerCreatureEvent(cid, "WarAttack")
return doPlayerSetTeam.login(cid)
end
function onLogout(cid)
return doPlayerSetTeam.logout(cid)
end
protect.lua
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)
return onKillPlayer(cid, lastHitKiller, mostDamageKiller)
end
Agora no creaturescripts.xml está escrito isso:
<?xml version="1.0" encoding="UTF-8"?>
<creaturescripts>
<event type="login" name="PlayerLogin" event="script" value="login.lua"/>
<event type="death" name="PlayerDeath" event="script" value="playerdeath.lua"/>
<event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/>
<event type="receivemail" name="Mail" event="script" value="mail.lua"/>
<event type="preparedeath" name="WarProtect" event="script" value="mine/protect.lua"/>
<event type="login" name="WarLogin" event="script" value="mine/main.lua"/>
<event type="logout" name="WarLogout" event="script" value="mine/main.lua"/>
<event type="look" name="WarLook" event="script" value="mine/look.lua"/>
<event type="login" name="Wellcome" event="script" value="wellcome.lua"/>
<event type="death" name="DeathBroadcast" script="deathBroadcast.lua"/>
<!--<event type="login" name="check" event="script" value="check.lua"/>-->
</creaturescripts>
Perceba que não tem o arquivo FirstItems, pois já falo o porque.
Agora em data/globalevents/scripts tem outra pasta chamada "mine" e dentro tem 2 arquivos .lua. que são:
changeArea
function ChangeMap(clean, save)
doChangeMap(TRUE, TRUE)
doPlayerPopupFYI(cid, "Map has been changed. New area is ".. map.towns[map.get()][1] ..". You can now login.")
return TRUE
end
function onThink1(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 1 second.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(ChangeMap, 1000)
return TRUE
end
function onThink2(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 2 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink1, 1000)
return TRUE
end
function onThink3(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 3 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink2, 1000)
return TRUE
end
function onThink4(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 4 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink3, 1000)
return TRUE
end
function onThink5(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 5 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink4, 1000)
return TRUE
end
function onThink6(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 6 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink5, 1000)
return TRUE
end
function onThink7(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 7 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink6, 1000)
return TRUE
end
function onThink8(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 8 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink7, 1000)
return TRUE
end
function onThink9(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 9 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink8, 1000)
return TRUE
end
function onThink10(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 10 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink9, 1000)
return TRUE
end
function onThink11(interval, lastExecution)
broadcastMessage("Auto-Kick for Map change in 30 seconds.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink10, 25000)
return TRUE
end
function onThink12(interval, lastExecution)
broadcastMessage("Map will change in 1 minute.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink11, 30000)
return TRUE
end
function onThink(interval, lastExecution)
broadcastMessage("Map will change in 5 minutes.", MESSAGE_STATUS_CONSOLE_BLUE)
addEvent(onThink12, 210000)
end
temple:
function onThink(clean, save)
doChangeMap(TRUE, FALSE)
doPlayerChangeTemple(cid)
broadcastMessage("Map has been changed to ".. MAP_NAME[areaId.get()] ..".", MESSAGE_EVENT_ADVANCE)
return TRUE
end
Daí no arquivo glovalevents.xml tem isso:
globalevents.xml
<globalevent name="changeArea" interval="1500" event="script" value="mine/changeArea.lua"/>
Agora em lib, tem um arquivo .lua chamado "mine" e dentro dele tem isso:
mine.lua:
--The War Server v1.2 (Crying lef)---------------------------------------------------
--by Keraxel-------------------------------------------------------------------------
--for otcentrum.pl && otland.net-----------------------------------------------------
--Thanks to: TFS Developers (TFS), Masiar (awesome blowjobs)-------------------------
--do not remove this comments!-------------------------------------------------------
-------------------------------------------------------------------------------------
--based on The Forgotten Server 0.3.4pl2---------------------------------------------
--ALL done in lua!-------------------------------------------------------------------
-------------------------------------------------------------------------------------
--If you found any bug report it on a site(s) bellow:--------------------------------
--http://otland.net.pl/dystrybucje/38-8-42-war-server-v1-1-crying-lef.html-----------
--http://otland.net/f18/8-4-war-server-v1-0-a-25886/---------------------------------
-------------------------------------------------------------------------------------
--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--
--[[
TEAM #1,
TEAM #2
]]
TEAMS_OUTFITS = {
{ colors = {114, 113, 132, 95}, addons = 3 },
{ colors = {0, 82, 119, 120}, addons = 3 }
}
RUNES = {} --[[##do not touch it!##]]
-- {antibot, normal}
RUNES.UH = {2275, 2273}
RUNES.SD = {2263, 2268}
RUNES.EXPLO = {2312, 2313}
RUNES.HMM = {2314, 2311}
RUNES.GFB = {2307, 2304}
RUNES.PBOMB = {2270, 2286}
RUNES.EBOMB = {2282, 2262}
RUNES.FBOMB = {2306, 2305}
RUNES.MW = {2294, 2293}
GLOBAL_RUNE_TYPE = 2
if ANTIBOT_RUNES then
GLOBAL_RUNE_TYPE = 1
end
ITEMS = {} --[[##do not touch it!##]]
--for empty slot use nil or false
--[[sorcerer]] ITEMS[5] = {
9778, --1 // head // yalahari mask
2200, --2 // necakle // protection amulet
2000, --3 // backpack // red backpack
8890, --4 // armor // robe of the underworld
8922, --5 // right hand // wand of voodoo
8918, --6 // left hand // spellbook of dark mysteries
7730, --7 // legs // blue legs
6132, --8 // feet // soft boots
2214, --9 // ring // ring of healing
nil, --10 // ammo slot // EMPTY
----
--items to a backpack -- {id, inBackpack[, count/subtype]}
----
{RUNES.UH[GLOBAL_RUNE_TYPE], false, 2}, --UH
{RUNES.SD[GLOBAL_RUNE_TYPE], false}, --SD
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{RUNES.HMM[GLOBAL_RUNE_TYPE], false}, --HMM
{2274, false}, --avalanche rune
{RUNES.GFB[GLOBAL_RUNE_TYPE], false}, --GFB
{2261, false}, --destroy field rune
{RUNES.PBOMB[GLOBAL_RUNE_TYPE], false}, --poison bomb rune
{RUNES.FBOMB[GLOBAL_RUNE_TYPE], false}, --firebomb rune
{RUNES.EBOMB[GLOBAL_RUNE_TYPE], false}, --energy bomb rune
{7590, true}, --GMP
{RUNES.MW[GLOBAL_RUNE_TYPE], false} --magic wall rune
}
--[[druid]] ITEMS[6] = {
9778, --1 // head // yalahari mask
2200, --2 // necakle // protection amulet
2002, --3 // backpack // blue backpack
8866, --4 // armor // serpent coat
8910, --5 // right hand // underworld rod
8918, --6 // left hand // spellbook of dark mysteries
7730, --7 // legs // blue legs
6132, --8 // feet // soft boots
2214, --9 // ring // ring of healing
nil, --10 // ammo slot // EMPTY
----
--items to a backpack -- {id, inBackpack[, count/subtype]}
----
{RUNES.UH[GLOBAL_RUNE_TYPE], false, 2}, --UH
{RUNES.SD[GLOBAL_RUNE_TYPE], false}, --SD
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{2274, false}, --avalanche rune
{RUNES.GFB[GLOBAL_RUNE_TYPE], false}, --GFB
{2261, false}, --destroy field rune
{RUNES.PBOMB[GLOBAL_RUNE_TYPE], false}, --poison bomb rune
{RUNES.FBOMB[GLOBAL_RUNE_TYPE], false}, --firebomb rune
{RUNES.EBOMB[GLOBAL_RUNE_TYPE], false}, --energy bomb rune
{7590, true}, --GMP
{RUNES.MW[GLOBAL_RUNE_TYPE], false} --magic wall rune
}
--[[paladin]] ITEMS[7] = {
2493, --1 // head // demon helmet
2200, --2 // necakle // protection amulet
2003, --3 // backpack // grey backpack
8888, --4 // armor // master archer's armor
8850, --5 // right hand // chain bolter
nil, --6 // left hand // EMPTY
9777, --7 // legs // yalahari leg piece
6132, --8 // feet // soft boots
2214, --9 // ring // ring of healing
6529, --10 // ammo slot // infernal bolts
----
--items to a backpack -- {id, inBackpack[, count/subtype]}
----
{RUNES.UH[GLOBAL_RUNE_TYPE], false, 2}, --UH
{RUNES.SD[GLOBAL_RUNE_TYPE], false}, --SD
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{2274, false}, --avalanche rune
{RUNES.GFB[GLOBAL_RUNE_TYPE], false}, --GFB
{2261, false}, --destroy field rune
{RUNES.PBOMB[GLOBAL_RUNE_TYPE], false}, --poison bomb rune
{RUNES.FBOMB[GLOBAL_RUNE_TYPE], false}, --firebomb rune
{RUNES.EBOMB[GLOBAL_RUNE_TYPE], false}, --energy bomb rune
{8472, true}, --GSP
{RUNES.MW[GLOBAL_RUNE_TYPE], false} --magic wall rune
}
--[[knight]] ITEMS[8] = {
2493, --1 // head // demon helmet
2200, --2 // necakle // protection amulet
1999, --3 // backpack // yellow backpack
9776, --4 // armor // yalahari armor
2431, --5 // right hand // stonecutter axe
6433, --6 // left hand // necromancer shield
2470, --7 // legs // golden legs
6132, --8 // feet // soft boots
2214, --9 // ring // ring of healing
nil, --10 // ammo slot // EMPTY
----
--items to a backpack -- {id, inBackpack[, count/subtype]}
----
{RUNES.UH[GLOBAL_RUNE_TYPE], false, 2}, --UH
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{2274, false}, --avalanche rune
{RUNES.GFB[GLOBAL_RUNE_TYPE], false}, --GFB
{2261, false}, --destroy field rune
{RUNES.PBOMB[GLOBAL_RUNE_TYPE], false}, --poison bomb rune
{RUNES.FBOMB[GLOBAL_RUNE_TYPE], false}, --firebomb rune
{RUNES.EBOMB[GLOBAL_RUNE_TYPE], false}, --energy bomb rune
{7591, true}, --GHP
{7620, true} --mana potion
}
ITEMS[1], ITEMS[2], ITEMS[3], ITEMS[4] = ITEMS[5], ITEMS[6], ITEMS[7], ITEMS[8]
ITEMS[0] = ITEMS[1] --prevents debugs
STORAGE = {
PLAYER = {
TEAM_INFO = 40000
},
GLOBAL = {
TEAMS = {40001, 40002},
TEAMS_COUNT = {40011, 40012},
AREA_ID = 40020
}
}
--[[ ##do not change anything below this line!## ]]
BAG_OF_SSA = getBooleanFromString(getConfigValue("addBagOfSSA"))
ANTIBOT_RUNES = getBooleanFromString(getConfigValue("antibotRunes"))
LEVEL_GAIN_FOR_KILL = tonumber(getConfigValue("levelGainForKill"))
ANTI_RELOG_TIME = tonumber(getConfigValue("antiRelogTime"))
DEFAULT_LEVEL = tonumber(getConfigValue("defaultLevel"))
MAXIMUM_LEVEL = tonumber(getConfigValue("maximumLevel"))
INITIALIZED = false
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
map = {
towns = {
{"Fibula", {2, 3}},
{"Thais", {11, 12}},
{"X-Dream", {14, 15}},
{"Dream", {17, 18}},
{"Rookwar", {34, 35}},
{"Forgotten Land", {37, 38}},
},
get = function ()
return getGlobalStorageValue(STORAGE.GLOBAL.AREA_ID)
end,
removeIssue = function ()
if map.get() < 1 or map.get() > #map.towns then
print("map.removeIssue: issue has been removed map was ".. map.get())
return setGlobalStorageValue(STORAGE.GLOBAL.AREA_ID, 1)
end
return FALSE
end,
set = function ()
map.removeIssue()
return setGlobalStorageValue(STORAGE.GLOBAL.AREA_ID, (map.get() % #map.towns) + 1)
end
}
playerTeam = {
get = function (cid)
return ((getPlayerStorageValue(cid, STORAGE.PLAYER.TEAM_INFO) == STORAGE.GLOBAL.TEAMS[1]) and 1) or 2
end,
set = function (cid, id)
return setPlayerStorageValue(cid, STORAGE.PLAYER.TEAM_INFO, id)
end
}
teamCount = {
get = function (teamId)
return getGlobalStorageValue(STORAGE.GLOBAL.TEAMS_COUNT[teamId])
end,
add = function (teamId, count)
return setGlobalStorageValue(STORAGE.GLOBAL.TEAMS_COUNT[teamId], teamCount.get(teamId) + count)
end,
rem = function (teamId, count)
return teamCount.add(teamId, -count)
end
}
doPlayerSetTeam = {
login = function (cid)
-- print("getSmallestTeam(): "..getSmallestTeam())
if getPlayerAccess(cid) < 3 then
local time = ANTI_RELOG_TIME or 2000
local team = getSmallestTeam()
playerTeam.set(cid, STORAGE.GLOBAL.TEAMS[team])
-- print(type(TEAMS_OUTFITS[team].colors) .."\n".. type(TEAMS_OUTFITS[team].addons))
doWarCreatureChangeOutfit(cid, TEAMS_OUTFITS[team].colors, TEAMS_OUTFITS[team].addons)
doPlayerSetTown(cid, map.towns[map.get()][2][playerTeam.get(cid)])
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
teamCount.add(team, 1)
doPlayerAddSoul(cid, -getPlayerSoul(cid))
doSendMagicEffect(getCreaturePosition(cid), 37)
end
-- print("Team 1 count: "..teamCount.get(1).."\nTeam 2 count: "..teamCount.get(2))
return TRUE
end,
logout = function (cid)
if getPlayerAccess(cid) < 3 then
local team = playerTeam.get(cid)
-- print("playerTeam.get(cid): "..team)
teamCount.rem(team, 1)
playerTeam.set(cid, FALSE)
-- print("Team 1 count: "..teamCount.get(1).."\nTeam 2 count: "..teamCount.get(2))
end
return TRUE
end
}
function doWarCreatureChangeOutfit(cid, colors, addons)
local outfit = getCreatureOutfit(cid)
if type(colors) == "number" then
colors = {colors, colors, colors, colors}
end
outfit.lookHead, outfit.lookBody, outfit.lookLegs, outfit.lookFeet = unpack(colors)
outfit.addons = addons or 3
doCreatureChangeOutfit(cid, outfit)
return true
end
function doChangeMap(clean, save)
map.set()
for _, pid in ipairs(getPlayersOnline()) do
if getPlayerAccess(pid) < 3 then
local temple = map.towns[map.get()][2][playerTeam.get(cid)]
local oldPosition = getCreaturePosition(pid)
doPlayerPopupFYI(pid, "Map has been changed. New area is ".. map.towns[map.get()][1] ..". You can now login.")
doRemoveCreature(pid)
end
end
if clean then
doCleanMap()
end
if save then
doSaveServer()
end
doBroadcastMessage("Map has been changed. New area is ".. map.towns[map.get()][1] ..".", MESSAGE_STATUS_CONSOLE_BLUE)
print(">> ".. os.date() .." Map has been changed. New area is ".. map.towns[map.get()][1] ..".")
return TRUE
end
function getSmallestTeam()
return (teamCount.get(1) > teamCount.get(2) and 2) or 1
end
function doPlayerSetLevel(cid, level)
return doPlayerAddExperience(cid, (getExperienceForLevel(level) - getPlayerExperience(cid)))
end
function doPlayerAddLevel(cid, amount)
return doPlayerAddExperience(cid, getExperienceForLevel(getPlayerLevel(cid) + amount) - getPlayerExperience(cid))
end
function doResetTeams(teams)
for team = 1, #teams do
setGlobalStorageValue(teams[team], 0)
end
return true
end
function doInitializeServer()
doResetTeams(STORAGE.GLOBAL.TEAMS_COUNT)
INIT = true
return print(">> X-Dream War has been initialized <<")
end
if not(INIT) then
addEvent(doInitializeServer, 500)
end
function onKillPlayer(cid, lastHitKiller, mostDamageKiller)
if isPlayer(cid) then
if isPlayer(lastHitKiller) then
doPlayerAddSoul(lastHitKiller, 1)
doSendAnimatedText(getCreaturePosition(lastHitKiller), "FRAG!", 144, lastHitKiller)
if isPlayer(mostDamageKiller) and mostDamageKiller ~= lastHitKiller then
doPlayerAddSoul(mostDamageKiller, 1)
doSendAnimatedText(getCreaturePosition(mostDamageKiller), "FRAG!", 150, mostDamageKiller)
end
if getBooleanFromString(getConfigValue("experienceByKillingPlayers")) and lastHitKiller ~= cid then
if BAG_OF_SSA and lastHitKiller ~= cid then
doPlayerBuyItemContainer(lastHitKiller, 1996, 2197, 1, 0, 5)
if mostDamageKiller ~= lastHitKiller then
doPlayerBuyItemContainer(mostDamageKiller, 1996, 2197, 1, 0, 5)
end
end
local gainLevel = LEVEL_GAIN_FOR_KILL
if tonumber(gainLevel) == nil then
gainLevel = math.floor(getPlayerLevel(cid) * 20000.00) --Aqui você muda a quantidade de experiencia que vai ser adicionado nos Killers
local gold = (math.random (getPlayerLevel(cid)/50, getPlayerLevel(cid)/10))
doPlayerAddItem(mostDamageKiller, 2148, gold)
end
--print("lastHitKiller: ".. lastHitKiller) print("mostDamageKiller: ".. mostDamageKiller) print("cid: ".. cid) print("MAXIMUM_LEVEL:") print(MAXIMUM_LEVEL)
--print("\n\n\n") print(lastHitKiller ~= cid) print(MAXIMUM_LEVEL == nil) print(getPlayerLevel(mostDamageKiller) < MAXIMUM_LEVEL)
if (lastHitKiller ~= cid) and ((MAXIMUM_LEVEL == nil) or (getPlayerLevel(lastHitKiller) < MAXIMUM_LEVEL)) then
doPlayerAddExperience(lastHitKiller, gainLevel)
end
if ((mostDamageKiller ~= lastHitKiller) and (mostDamageKiller ~= cid)) and ((MAXIMUM_LEVEL == nil) or (getPlayerLevel(mostDamageKiller) < MAXIMUM_LEVEL)) then
doPlayerAddExperience(mostDamageKiller, gainLevel)
doPlayerAddItem(mostDamageKiller, 2148, gold)
end
end
end
if tonumber(DEFAULT_LEVEL) ~= nil then
doPlayerSetLevel(cid, DEFAULT_LEVEL)
end
local oldPosition = getCreaturePosition(cid)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
doCreatureAddHealth(cid, getCreatureMaxHealth(cid), TRUE)
doCreatureAddMana(cid, (getCreatureMaxMana(cid) - getCreatureMana(cid)))
doSendMagicEffect(getCreaturePosition(cid), 37)
doSendMagicEffect(oldPosition, 2)
doRemoveConditions(cid, FALSE)
doPlayerAddSoul(cid, -getPlayerSoul(cid))
return FALSE
end
return TRUE
end
function doPlayerShowFragsCount(cid, thing, position, lookDistance)
if isPlayer(thing.uid) and getPlayerAccess(thing.uid) < 3 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Frags: " .. getPlayerSoul(thing.uid))
end
return TRUE
end
function doPlayerAddEquipment(cid)
if getPlayerAccess(cid) < 3 then
local vocItems = ITEMS[getPlayerVocation(cid)]
for i = CONST_SLOT_HEAD, CONST_SLOT_AMMO do
local slotItem = getPlayerSlotItem(cid, i)
if slotItem.itemid > 0 then
doRemoveItem(slotItem.uid)
end
if vocItems and vocItems ~= nil and i ~= CONST_SLOT_BACKPACK then
if i == CONST_SLOT_AMMO then
doPlayerAddItem(cid, vocItems, 100)
else
doPlayerAddItem(cid, vocItems)
end
end
end
local backpack = doPlayerAddItem(cid, vocItems[CONST_SLOT_BACKPACK], 1)
for b = 11, #vocItems do
if vocItems and vocItems ~= nil then
if vocItems[2] then
vocItems[3] = vocItems[3] or 1
doPlayerBuyItemContainer(cid, 2000, vocItems[1], 1, 0, vocItems[3])
else
doAddContainerItem(backpack, vocItems[1], vocItems[3])
end
end
end
end
return TRUE
end
function onPlayerAttack(cid, target)
if cid ~= target and isPlayer(cid) and isPlayer(target) and playerTeam.get(cid) == playerTeam.get(target) then
doPlayerSendCancel(cid, "You cannot attack your teammates.")
return FALSE
end
return TRUE
end
Começando com esse script (só lembrando que esse script é o da pasta do X-DREAM e não do meu! Portanto, as cores dos times, os items, os mapas são do X-DREAM. O meu eu mudei algumas coisas. Já explico).
As cores do time:
TEAMS_OUTFITS = {
{ colors = {114, 113, 132, 95}, addons = 3 },
{ colors = {0, 82, 119, 120}, addons = 3 }
}
eu coloquei as cores que eu queria (isso eu sei mexer)
Agora vem o que eu não queria. Os items. Lá no começo do tópico, tem um trecho em vermelho (lá no creaturescript.xml) Eu falei que não tem o arquivo Firstitems (script que dá os items quando entra pela primeira vez.) Isso porque tem o arquivo em data/actions/quest chamado questinicial. É um baú que fica em todos os templos (no X-DREAM), e ele dá os items de acordo com a vocação. E aqui está o script dos items
Items no arquivo mine.lua
RUNES = {} --[[##do not touch it!##]]
-- {antibot, normal}
RUNES.UH = {2275, 2273}
RUNES.SD = {2263, 2268}
RUNES.EXPLO = {2312, 2313}
RUNES.HMM = {2314, 2311}
RUNES.GFB = {2307, 2304}
RUNES.PBOMB = {2270, 2286}
RUNES.EBOMB = {2282, 2262}
RUNES.FBOMB = {2306, 2305}
RUNES.MW = {2294, 2293}
GLOBAL_RUNE_TYPE = 2
if ANTIBOT_RUNES then
GLOBAL_RUNE_TYPE = 1
end
ITEMS = {} --[[##do not touch it!##]]
--for empty slot use nil or false
--[[sorcerer]] ITEMS[5] = {
9778, --1 // head // yalahari mask
2200, --2 // necakle // protection amulet
2000, --3 // backpack // red backpack
8890, --4 // armor // robe of the underworld
8922, --5 // right hand // wand of voodoo
8918, --6 // left hand // spellbook of dark mysteries
7730, --7 // legs // blue legs
6132, --8 // feet // soft boots
2214, --9 // ring // ring of healing
nil, --10 // ammo slot // EMPTY
----
--items to a backpack -- {id, inBackpack[, count/subtype]}
----
{RUNES.UH[GLOBAL_RUNE_TYPE], false, 2}, --UH
{RUNES.SD[GLOBAL_RUNE_TYPE], false}, --SD
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{RUNES.HMM[GLOBAL_RUNE_TYPE], false}, --HMM
{2274, false}, --avalanche rune
{RUNES.GFB[GLOBAL_RUNE_TYPE], false}, --GFB
{2261, false}, --destroy field rune
{RUNES.PBOMB[GLOBAL_RUNE_TYPE], false}, --poison bomb rune
{RUNES.FBOMB[GLOBAL_RUNE_TYPE], false}, --firebomb rune
{RUNES.EBOMB[GLOBAL_RUNE_TYPE], false}, --energy bomb rune
{7590, true}, --GMP
{RUNES.MW[GLOBAL_RUNE_TYPE], false} --magic wall rune
}
--[[druid]] ITEMS[6] = {
9778, --1 // head // yalahari mask
2200, --2 // necakle // protection amulet
2002, --3 // backpack // blue backpack
8866, --4 // armor // serpent coat
8910, --5 // right hand // underworld rod
8918, --6 // left hand // spellbook of dark mysteries
7730, --7 // legs // blue legs
6132, --8 // feet // soft boots
2214, --9 // ring // ring of healing
nil, --10 // ammo slot // EMPTY
----
--items to a backpack -- {id, inBackpack[, count/subtype]}
----
{RUNES.UH[GLOBAL_RUNE_TYPE], false, 2}, --UH
{RUNES.SD[GLOBAL_RUNE_TYPE], false}, --SD
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{2274, false}, --avalanche rune
{RUNES.GFB[GLOBAL_RUNE_TYPE], false}, --GFB
{2261, false}, --destroy field rune
{RUNES.PBOMB[GLOBAL_RUNE_TYPE], false}, --poison bomb rune
{RUNES.FBOMB[GLOBAL_RUNE_TYPE], false}, --firebomb rune
{RUNES.EBOMB[GLOBAL_RUNE_TYPE], false}, --energy bomb rune
{7590, true}, --GMP
{RUNES.MW[GLOBAL_RUNE_TYPE], false} --magic wall rune
}
--[[paladin]] ITEMS[7] = {
2493, --1 // head // demon helmet
2200, --2 // necakle // protection amulet
2003, --3 // backpack // grey backpack
8888, --4 // armor // master archer's armor
8850, --5 // right hand // chain bolter
nil, --6 // left hand // EMPTY
9777, --7 // legs // yalahari leg piece
6132, --8 // feet // soft boots
2214, --9 // ring // ring of healing
6529, --10 // ammo slot // infernal bolts
----
--items to a backpack -- {id, inBackpack[, count/subtype]}
----
{RUNES.UH[GLOBAL_RUNE_TYPE], false, 2}, --UH
{RUNES.SD[GLOBAL_RUNE_TYPE], false}, --SD
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{2274, false}, --avalanche rune
{RUNES.GFB[GLOBAL_RUNE_TYPE], false}, --GFB
{2261, false}, --destroy field rune
{RUNES.PBOMB[GLOBAL_RUNE_TYPE], false}, --poison bomb rune
{RUNES.FBOMB[GLOBAL_RUNE_TYPE], false}, --firebomb rune
{RUNES.EBOMB[GLOBAL_RUNE_TYPE], false}, --energy bomb rune
{8472, true}, --GSP
{RUNES.MW[GLOBAL_RUNE_TYPE], false} --magic wall rune
}
--[[knight]] ITEMS[8] = {
2493, --1 // head // demon helmet
2200, --2 // necakle // protection amulet
1999, --3 // backpack // yellow backpack
9776, --4 // armor // yalahari armor
2431, --5 // right hand // stonecutter axe
6433, --6 // left hand // necromancer shield
2470, --7 // legs // golden legs
6132, --8 // feet // soft boots
2214, --9 // ring // ring of healing
nil, --10 // ammo slot // EMPTY
----
--items to a backpack -- {id, inBackpack[, count/subtype]}
----
{RUNES.UH[GLOBAL_RUNE_TYPE], false, 2}, --UH
{RUNES.EXPLO[GLOBAL_RUNE_TYPE], false}, --EXPLOSION
{2274, false}, --avalanche rune
{RUNES.GFB[GLOBAL_RUNE_TYPE], false}, --GFB
{2261, false}, --destroy field rune
{RUNES.PBOMB[GLOBAL_RUNE_TYPE], false}, --poison bomb rune
{RUNES.FBOMB[GLOBAL_RUNE_TYPE], false}, --firebomb rune
{RUNES.EBOMB[GLOBAL_RUNE_TYPE], false}, --energy bomb rune
{7591, true}, --GHP
{7620, true} --mana potion
}
ITEMS[1], ITEMS[2], ITEMS[3], ITEMS[4] = ITEMS[5], ITEMS[6], ITEMS[7], ITEMS[8]
ITEMS[0] = ITEMS[1] --prevents debugs
E esse aqui é o arquivo questinicial.lua. O que eu falei agora.
function onUse (cid, item, frompos, item2, topos)
playervoc = getPlayerVocation(cid)
container = doPlayerAddItem(cid, 5926, 1)
container2 = doAddContainerItem(container, 5926, 1)
if playervoc == 1 then -- Especifica se o player é sorcerer
if item.uid == 8600 then -- Unique ID colocado no mapa
queststatus = getPlayerStorageValue(cid, 8600) -- Storage Value
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid, 22, "You have got your skills.") --Mensagem da Quest
doPlayerAddSkillTry(cid, 5, 1110)
doPlayerAddSpentMana(cid, 212500)
doPlayerAddItem(cid, 2323, 1)
doPlayerAddItem(cid, 2656, 1)
doPlayerAddItem(cid, 7730, 1)
doPlayerAddItem(cid, 2195, 1)
doPlayerAddItem(cid, 8920, 1)
doPlayerAddItem(cid, 8900, 1)
doAddContainerItem(container, 1969, 1)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 7590, 1)
doAddContainerItem(container, 2420, 1)
doAddContainerItem(container, 2120, 1)
doAddContainerItem(container2, 2268, 100)
doAddContainerItem(container2, 2273, 100)
doAddContainerItem(container2, 2293, 100)
doAddContainerItem(container2, 2308, 100)
doAddContainerItem(container2, 2261, 100)
doAddContainerItem(container2, 2315, 100)
doAddContainerItem(container2, 2274, 100)
doAddContainerItem(container2, 2304, 100)
doAddContainerItem(container2, 2288, 100)
doAddContainerItem(container2, 2313, 100)
doAddContainerItem(container2, 2262, 100)
doAddContainerItem(container2, 2305, 100)
doAddContainerItem(container2, 2286, 100)
doAddContainerItem(container2, 2286, 100)
setPlayerStorageValue(cid, 8600, 1) --Storage Value
else
doPlayerSendTextMessage(cid,22,"You have found 2 backpacks.") -- Mensagem Caso Player já tenha feito a Quest
end
else
return 0
end
return 1
end
if playervoc == 2 then -- Especifica se o player é druid
if item.uid == 8600 then -- Unique ID colocado no mapa
queststatus = getPlayerStorageValue(cid, 8600) -- Storage Value
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid, 22, "You have got your skills.") --Mensagem da Quest
doPlayerAddSkillTry(cid, 5, 1110)
doPlayerAddSpentMana(cid, 212500)
doPlayerAddItem(cid, 2323, 1)
doPlayerAddItem(cid, 2656, 1)
doPlayerAddItem(cid, 7730, 1)
doPlayerAddItem(cid, 2195, 1)
doPlayerAddItem(cid, 8912, 1)
doPlayerAddItem(cid, 8900, 1)
doAddContainerItem(container, 1969, 1)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 7590, 1)
doAddContainerItem(container, 2420, 1)
doAddContainerItem(container, 2120, 1)
doAddContainerItem(container2, 2268, 100)
doAddContainerItem(container2, 2273, 100)
doAddContainerItem(container2, 2293, 100)
doAddContainerItem(container2, 2308, 100)
doAddContainerItem(container2, 2261, 100)
doAddContainerItem(container2, 2315, 100)
doAddContainerItem(container2, 2274, 100)
doAddContainerItem(container2, 2304, 100)
doAddContainerItem(container2, 2288, 100)
doAddContainerItem(container2, 2313, 100)
doAddContainerItem(container2, 2262, 100)
doAddContainerItem(container2, 2305, 100)
doAddContainerItem(container2, 2286, 100)
doAddContainerItem(container2, 2269, 100)
doAddContainerItem(container2, 2278, 100)
setPlayerStorageValue(cid, 8600, 1) --Storage Value
else
doPlayerSendTextMessage(cid,22,"You have found 2 backpacks.") -- Mensagem Caso Player já tenha feito a Quest
end
else
return 0
end
return 1
end
if playervoc == 6 then -- Especifica se o player é warlock
if item.uid == 8600 then -- Unique ID colocado no mapa
queststatus = getPlayerStorageValue(cid, 8600) -- Storage Value
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid, 22, "You have got your skills.") --Mensagem da Quest
doPlayerAddSkillTry(cid, 5, 1110)
doPlayerAddSpentMana(cid, 212500)
doPlayerAddItem(cid, 2323, 1)
doPlayerAddItem(cid, 2656, 1)
doPlayerAddItem(cid, 7730, 1)
doPlayerAddItem(cid, 2195, 1)
doPlayerAddItem(cid, 2110, 1)
doPlayerAddItem(cid, 8900, 1)
doAddContainerItem(container, 1969, 1)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 7590, 1)
doAddContainerItem(container, 2420, 1)
doAddContainerItem(container, 2120, 1)
doAddContainerItem(container2, 2268, 100)
doAddContainerItem(container2, 2273, 100)
doAddContainerItem(container2, 2293, 100)
doAddContainerItem(container2, 2308, 100)
doAddContainerItem(container2, 2261, 100)
doAddContainerItem(container2, 2315, 100)
doAddContainerItem(container2, 2274, 100)
doAddContainerItem(container2, 2304, 100)
doAddContainerItem(container2, 2288, 100)
doAddContainerItem(container2, 2313, 100)
doAddContainerItem(container2, 2262, 100)
doAddContainerItem(container2, 2305, 100)
doAddContainerItem(container2, 2286, 100)
setPlayerStorageValue(cid, 8600, 1) --Storage Value
else
doPlayerSendTextMessage(cid,22,"You have found 2 backpacks.") -- Mensagem Caso Player já tenha feito a Quest
end
else
return 0
end
return 1
end
if playervoc == 7 then -- Especifica se o player é sharpshooter
if item.uid == 8600 then -- Unique ID colocado no mapa
queststatus = getPlayerStorageValue(cid, 8600) -- Storage Value
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid, 22, "You have got your skills.") --Mensagem da Quest
doPlayerAddSkillTry(cid, 4, 2953)
doPlayerAddSkillTry(cid, 5, 562)
doPlayerAddSpentMana(cid, 74800)
doPlayerAddItem(cid, 2498, 1)
doPlayerAddItem(cid, 8891, 1)
doPlayerAddItem(cid, 2488, 1)
doPlayerAddItem(cid, 2195, 1)
doPlayerAddItem(cid, 8849, 1)
doPlayerAddItem(cid, 2547, 100)
doAddContainerItem(container, 1969, 1)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 8472, 1)
doAddContainerItem(container, 2420, 1)
doAddContainerItem(container, 2120, 1)
doAddContainerItem(container2, 2268, 100)
doAddContainerItem(container2, 2273, 100)
doAddContainerItem(container2, 2293, 100)
doAddContainerItem(container2, 2308, 100)
doAddContainerItem(container2, 2261, 100)
doAddContainerItem(container2, 2315, 100)
doAddContainerItem(container2, 2274, 100)
doAddContainerItem(container2, 2304, 100)
doAddContainerItem(container2, 2288, 100)
doAddContainerItem(container2, 2313, 100)
doAddContainerItem(container2, 2262, 100)
doAddContainerItem(container2, 2305, 100)
doAddContainerItem(container2, 2286, 100)
setPlayerStorageValue(cid, 8600, 1) --Storage Value
else
doPlayerSendTextMessage(cid,22,"You have found 2 backpacks.") -- Mensagem Caso Player já tenha feito a Quest
end
else
return 0
end
return 1
end
if playervoc == 3 then -- Especifica se o player é hunter
if item.uid == 8600 then -- Unique ID colocado no mapa
queststatus = getPlayerStorageValue(cid, 8600) -- Storage Value
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid, 22, "You have got your skills.") --Mensagem da Quest
doPlayerAddSkillTry(cid, 4, 2953)
doPlayerAddSkillTry(cid, 5, 562)
doPlayerAddSpentMana(cid, 74800)
doPlayerAddItem(cid, 2498, 1)
doPlayerAddItem(cid, 8891, 1)
doPlayerAddItem(cid, 2488, 1)
doPlayerAddItem(cid, 2195, 1)
doPlayerAddItem(cid, 8855, 1)
doPlayerAddItem(cid, 7364, 100)
doAddContainerItem(container, 1969, 1)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 8472, 1)
doAddContainerItem(container, 2420, 1)
doAddContainerItem(container, 2120, 1)
doAddContainerItem(container2, 2268, 100)
doAddContainerItem(container2, 2273, 100)
doAddContainerItem(container2, 2293, 100)
doAddContainerItem(container2, 2308, 100)
doAddContainerItem(container2, 2261, 100)
doAddContainerItem(container2, 2315, 100)
doAddContainerItem(container2, 2274, 100)
doAddContainerItem(container2, 2304, 100)
doAddContainerItem(container2, 2288, 100)
doAddContainerItem(container2, 2313, 100)
doAddContainerItem(container2, 2262, 100)
doAddContainerItem(container2, 2305, 100)
doAddContainerItem(container2, 2286, 100)
setPlayerStorageValue(cid, 8600, 1) --Storage Value
else
doPlayerSendTextMessage(cid,22,"You have found 2 backpacks.") -- Mensagem Caso Player já tenha feito a Quest
end
else
return 0
end
return 1
end
if playervoc == 4 then -- Especifica se o player é berserker
if item.uid == 8600 then -- Unique ID colocado no mapa
queststatus = getPlayerStorageValue(cid, 8600) -- Storage Value
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid, 22, "You have got your skills.") --Mensagem da Quest
doPlayerAddSkillTry(cid, 3, 4920)
doPlayerAddSkillTry(cid, 5, 3795)
doPlayerAddItem(cid, 5741, 1)
doPlayerAddItem(cid, 2492, 1)
doPlayerAddItem(cid, 2488, 1)
doPlayerAddItem(cid, 2645, 1)
doPlayerAddItem(cid, 2431, 1)
doPlayerAddItem(cid, 2519, 1)
doAddContainerItem(container, 1969, 1)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 7591, 1)
doAddContainerItem(container, 7620, 1)
doAddContainerItem(container, 2420, 1)
doAddContainerItem(container, 2120, 1)
doAddContainerItem(container2, 2273, 100)
doAddContainerItem(container2, 2293, 100)
doAddContainerItem(container2, 2308, 100)
doAddContainerItem(container2, 2261, 100)
doAddContainerItem(container2, 2315, 100)
doAddContainerItem(container2, 2274, 100)
doAddContainerItem(container2, 2304, 100)
doAddContainerItem(container2, 2288, 100)
doAddContainerItem(container2, 2313, 100)
doAddContainerItem(container2, 2262, 100)
doAddContainerItem(container2, 2305, 100)
doAddContainerItem(container2, 2286, 100)
setPlayerStorageValue(cid, 8600, 1) --Storage Value
else
doPlayerSendTextMessage(cid,22,"You have found 2 backpacks.") -- Mensagem Caso Player já tenha feito a Quest
end
else
return 0
end
return 1
end
if playervoc == 5 then --Especifica se o player é hero
if item.uid == 8600 then -- Unique ID colocado no mapa
queststatus = getPlayerStorageValue(cid, 8600) -- Storage Value
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid, 22, "You have got your skills.") --Mensagem da Quest
doPlayerAddSkillTry(cid, 2, 4920)
doPlayerAddSkillTry(cid, 5, 9845)
doPlayerAddItem(cid, 5741, 1)
doPlayerAddItem(cid, 2492, 1)
doPlayerAddItem(cid, 2488, 1)
doPlayerAddItem(cid, 2645, 1)
doPlayerAddItem(cid, 2400, 1)
doPlayerAddItem(cid, 2519, 1)
doAddContainerItem(container, 1969, 1)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 2789, 100)
doAddContainerItem(container, 8473, 1)
doAddContainerItem(container, 7620, 1)
doAddContainerItem(container, 2420, 1)
doAddContainerItem(container, 2120, 1)
doAddContainerItem(container2, 2273, 100)
doAddContainerItem(container2, 2293, 100)
doAddContainerItem(container2, 2308, 100)
doAddContainerItem(container2, 2261, 100)
doAddContainerItem(container2, 2315, 100)
doAddContainerItem(container2, 2274, 100)
doAddContainerItem(container2, 2304, 100)
doAddContainerItem(container2, 2288, 100)
doAddContainerItem(container2, 2313, 100)
doAddContainerItem(container2, 2262, 100)
doAddContainerItem(container2, 2305, 100)
doAddContainerItem(container2, 2286, 100)
setPlayerStorageValue(cid, 8600, 1) --Storage Value
else
doPlayerSendTextMessage(cid,22,"You have found 2 backpacks.") -- Mensagem Caso Player já tenha feito a Quest
end
else
return 0
end
return 1
end
end
Note que é um arquivo ligado no outro. Já que o MEU OT tem o arquivo Firstitems, não tem o menor sentido ter essa parte do script no meu ot.
Ai agora tem isso aqui:
STORAGE = {
PLAYER = {
TEAM_INFO = 40000
},
GLOBAL = {
TEAMS = {40001, 40002},
TEAMS_COUNT = {40011, 40012},
AREA_ID = 40020
}
}
Não faço a menor ideia do que seja isso.
Depois disso tem isso:
--[[ ##do not change anything below this line!## ]]
BAG_OF_SSA = getBooleanFromString(getConfigValue("addBagOfSSA"))
ANTIBOT_RUNES = getBooleanFromString(getConfigValue("antibotRunes"))
LEVEL_GAIN_FOR_KILL = tonumber(getConfigValue("levelGainForKill"))
ANTI_RELOG_TIME = tonumber(getConfigValue("antiRelogTime"))
DEFAULT_LEVEL = tonumber(getConfigValue("defaultLevel"))
MAXIMUM_LEVEL = tonumber(getConfigValue("maximumLevel"))
INITIALIZED = false
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------
Isso aí é o seguinte. Isso aí ta ligado no config.lua.. Vou mostrar para vocês: (uma parte do arquivo .lua)
-- War -> Mine / Other
addBagOfSSA = "no" -- on kill other player // add Bag Of Stone Skin Amulets (traduzindo: em matar o outro jogador / / adiciona Bag Of Stone Skin Amulets)
antibotRunes = "no" -- use antibot runes // if not server'll use normal runes (traduzindo: usar runas anti bot / / se não o servidor irá utilizar runes normais [coloquei no google tradutor rsrs, então não ta muito certo])
defaultLevel = 150 -- when player will die then they will get this level // type nil for disable (traduzindo: quando o jogador morrer, ele vai obter esse nível // coloque nil para desativar)
maximumLevel = 250 -- type nil to disable (traduzindo: coloque nil para desativar)
levelGainForKill = nil -- type nil to make it dependent on level (configurable: onKillPlayer)
Ou seja, essas configurações eu também não quero. Gostaria que fosse normal. Tipo, no meu server quando o player mata o outro recebe apenas dinheiro e não bag de ssa. E também se o player morrer, perde apenas um porcentagem do level. Tipo, eu testei colocando "nil" ali no defaultLevel, e coloquei a porcentagem de deadporcent no config.lua. Mas não adiantou.
[Agora vem a parte dos mapas:
map = {
towns = {
{"Fibula", {2, 3}},
{"Thais", {11, 12}},
{"X-Dream", {14, 15}},
{"Dream", {17, 18}},
{"Rookwar", {34, 35}},
{"Forgotten Land", {37, 38}}
Esse aí, eu editei tudo certinho no RME, apertei Ctrl + T, daí editei lá a position de cada templo.
Agora o resto do Script, eu não sei o que é.
Mas resumindo tudo, Eu só quero esse script de mudar de mapa e se possível o sistema que balanceia os times. O resto eu quero que tire pois eu já tenho minhas funções como no caso do firsitems.
Bom, quem puder me ajudar, me fale bem certinho pois só sei o básico dos básicos sobre script. Se tiver que mudar alguma coisa em algum script, se puder colocar o script todo com as mudanças eu agradeço.
Se precisar de qualquer coisa também, estou olhando aqui direto.
Putz, eu sei que é meio grande, mas é só pra explicar o que tem sobre trocar de de mapa. Acho que o principal mesmo seria ali no arquivo mine.lua
Se quiserem ir direto naquela parte, tudo bem.. Mas eu postei todos os arquivos que falam sobre trocar de mapa, então se precisar ta tudo ae.