1)Quest Service:
!service nome da quest, preço para os interessados.
2) Armas Editadas.
3)Magia para Royal Paladin:
Exevo con san (Conjura assassin Stars).
4) Npc Buffer (Raphael)
Emcima do Depot da Baiak City.
5) Nightmare Shield por 200 demonic essences: !nightmare
Necromancer Shield por 200 demonic essences: !necromancer
6)Comando para os líderes da guild, na qual ele manda uma mensagem em vermelho para todos da Guild:
/guild
7) Troque de Sexo, pagando apenas 7dias de Premium Account através do comando:
!changesex
8)Sistema de AFK
!afk on
!afk off
9)Você pode escolher se deseja ser atacado pela sua guild ou atacar um membro da sua guild por meio do Comando:
!attackguild on
!attackguild off
10)Quests Principais:
Anihi
Poi
Demon Oak
Mpa Quest
Inquisition
Entre Outras...
11)Novo Npc Adicionado:
Npc Update no Templo Das Cidades.
Npc de Bless Adionado na Baiak City ao Norte do Depot.
12)Adicionado 2 Npc's do Addon do WarMaster:
Emcima do Varkhal na cidade Baiak Yurots...
13)Novo Sistema de Addon:
Para Adquirir vc deve pegar o addon doll que cai de varios bixos...
quando pegar vc deve falar !addon citizen...
!addon mage
!addon knight etc...
14)Novas Hunts Adicionais na Area Vip
Warlock Vip
Fury
Baiak Quest (items) -> Baiak Helmet , Mage Vip Robe , Boots of Baiak
Bossinf of Baiak
Medusa Vip
15)Update Versão 1.1.7
Adicionado Comando !attackguild on
!attackguild off
Adicionadas Varias Hunt's de Bixos 8.54 em Breve Bixos 8.60 !
Adicionada Casas Em Cima do Templo!
ADicionado 100 Novos Treino com Laguinho para Pescar !
Adiconado Ferumbras Vip e Orshabaal Vip!
Iae galera volto aqui para postar o novo update de atualização que vem com novos teletransportes! novos itens! novas quests! tudo de novo - denovo!
VAMOS LA UPDATE 0.1.5 VALEW GALERA !
Update 0.1.3
Update 0.1.4
Novo Update!
E ISSO AE GALERA SEMPRE VOU FICA ATUALIZANDO NOVO UPDATE BAIXEM E COMENTEM AE GALERA! VALEWS!
COMENTA NÃO CUSTA NADA!
GALERA VO MANDA UM UPDATE PEQUENO PRA VIP4!
O SEGUINTE Baixem esses 2 arquivos >
http://www.4shared.com/file/sMSpQq59/items_2.html
http://www.4shared.com/file/2UlbeOv0/scripts.html
QUEM CRIA SERVIDOR COM ESSE MAP ME DIZ AE! E ADC MSN LORD_JAMERSON@HOTMAIL.COM
Se seu servidor foi apagado da lista, aqui você encontrará um ou mais motivos para a remoção do tópico.
Tópico mal feito, bagunçado ou de PÉSSIMA apresentação.
Download ou scan inválidos por mais de 1 mês.
Downloads com vírus.
Scans falsos.
Servidores repetidos sem mudanças GRANDE ou NOTÁVEL
Dois ou mais servidores iguais.
Double-post.
Não contendo downloads .
etc
Sujeito a alerta.
--
Alguma duvida do que foi dito no post, favor postar aqui:
http://www.xtibia.co...29-atendimento/
Bem o script é auto-explicativo, e ainda tem um video do sistema, acho que nao preciso explicar o que faz ne?
AGORA EM MOD, MUITO MAIS PRATICO DE INSTALAR. SE FOR USAR O MOD VA ATE O FINAL DO POST, É EXATAMENTE IGUAL A VERSAO NORMAL, SO QUE MAIS PRATICO. FUNCIONA DO MESMO JEITO.
Video:
obs: Veja em fullscreen para ver melhor as msgs que retornam.
Vá em data/lib e adicione esse script.lua com o nome de WarArenaLib:
-- [[ Area and Positions Infos ]] --
areaplayersteam = {
{1,1,1,1},
{1,1,1,1},
{1,1,1,1},
{1,1,1,1},
{1,1,1,1}
}
areateam1ext = {x=80, y=305, z=7} -- Ponta superior esquerda da area do time um
areateam2ext = {x=87, y=305, z=7} -- Ponta superior esquerda da area do time dois
leaderteam1pos = {x=83, y=307, z=7, stackpos=255} -- Posição do lider do time um (que puxara a alavanca)
leaderteam2pos = {x=87, y=307, z=7, stackpos=255} -- Posição do lider do time dois (que puxara a alavanca)
newplayersposteam1 = {x=67, y=300, z=7} -- Posição para onde os players do time um serao teleportados
newplayersposteam2 = {x=67, y=330, z=7} -- Posição para onde os players do time dois serao teleportados
team1leverpos = {x=84, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time um puxara
team2leverpos = {x=86, y=307, z=7, stackpos=1} -- Posição da alavanca que o lider do time dois puxara
leverafter, leverbefore = 9825, 9826 -- Ids das alavancas antes de puxadas e depois, consecutivamente (9825 = antes; 9826 = depois)
posbenterteam1 = {x=78, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 1
posbenterteam2 = {x=92, y=307, z=7} -- Posiçao do sqm antes de entrar na arena do time 2
backteampos = {x=77, y=307, z=7}
-- [[ Storage Infos ]] --
team1leverstorage = 123497 -- Storage que sera usado quando puxarem a alavanca do time 1
team2leverstorage = 123498 -- Storage que sera usado quando puxarem a alavanca do time 2
haveteaminarena = 123499 -- Storage que sera usado para ve se tem algum time lutando na arena
storageteam1death = 123500 -- Storage usado para ver quantos morreram do time 1
storageteam2death = 123501 -- Storage usado para ver quantos morreram do time 2
storageteam1 = 123502 -- Storage usado para ver quantas pessoas entraram na arena no time 1
storageteam2 = 123503 -- Storage usado para ver quantas pessoas entraram na arena no time 2
storageleader1 = 123504 -- Storage onde ficara guardado o uid do lider do time 1
storageleader2 = 123505 -- Storage onde ficara guardado o uid do lider do time 2
storageplayersteam1 = 123506 -- Storage que todos os players do team 1 iram ter.
storageplatersteam2 = 123507 -- Storage que todos os players do team 2 iram ter.
-- [[ Player Infos ]] --
needlevelarena = 20 -- Level que os outros jogadores sem ser o lider teram que ter.
leaderlevel = 4000 -- Level que o lider tera que ter.
onlyguildwars = true -- Se os membros de um time tem que ser da mesma guild do lider. (Nesse caso somente o lider da guild podera puxar a alavanca.)
needplayers = 2 -- Quantidade de players que cada time tem que ter.
-- [[ Functions ]] --
function getUidsFromArea(firstpos, area)
local result = {}
for i,x in pairs(area) do
for s,z in pairs(x) do
if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then
table.insert(result, getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid)
end
end
end
return result
end
function teleportUidsToPos(uids, pos)
for i,x in pairs(uids) do
doTeleportThing(x, pos)
end
end
function isAllUidsSameGuild(uids, guildid)
for i,x in pairs(uids) do
if not (getPlayerGuildId(x) == guildid) then
return false
end
end
return true
end
function isAllUidsLevel(uids, level)
for i,x in pairs(uids) do
if not (getPlayerLevel(x) >= level) then
return false
end
end
return true
end
function haveQuantPlayersInArea(firstpos, area, quant)
local result = 0
for i,x in pairs(area) do
for s,z in pairs(x) do
if isPlayer(getThingFromPos({x=firstpos.x+s-1, y=firstpos.y+i-1, z=firstpos.z, stackpos=255}).uid) then
result = result+1
end
end
end
return result >= quant
end
function addStorageToUids(uids, storage, value)
for i,x in pairs(uids) do
setPlayerStorageValue(x, storage, value)
end
end
function checkPoses(pos1, pos2)
if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z then
return true
end
return false
end
function startArena()
setGlobalStorageValue(storageleader1, getThingFromPos(leaderteam1pos).uid)
setGlobalStorageValue(storageleader2, getThingFromPos(leaderteam2pos).uid)
addStorageToUids(team1uids, storageplayersteam1, 1)
addStorageToUids(team2uids, storageplayersteam2, 1)
teleportUidsToPos(team1uids, newplayersposteam1)
teleportUidsToPos(team2uids, newplayersposteam2)
setGlobalStorageValue(storageteam1, #team1uids)
registerCreatureEventUids(team1uids, "DeathTeam1")
registerCreatureEventUids(team2uids, "DeathTeam2")
setGlobalStorageValue(storageteam2, #team2uids)
setGlobalStorageValue(haveteaminarena, 1)
setGlobalStorageValue(team1leverstorage, 0)
setGlobalStorageValue(team2leverstorage, 0)
doTransformItem(getThingFromPos(team1leverpos).uid, leverafter)
doTransformItem(getThingFromPos(team2leverpos).uid, leverafter)
end
function haveTeamInArena()
return getGlobalStorageValue(haveteaminarena) == 1 and true or false
end
function isSqmFromArea(firstpos, area, sqmpos)
for i,x in pairs(area) do
for s,z in pairs(x) do
if sqmpos.x == firstpos.x+s-1 and sqmpos.y == firstpos.y+i-1 and sqmpos.z == firstpos.z then
return true
end
end
end
return false
end
function registerCreatureEventUids(uids, event)
for i,x in pairs(uids) do
registerCreatureEvent(x, event)
end
end
Agora vá em data/actions/scripts e adicione um script.lua com o nome de WarArenaLever:
function onUse(cid, item, fromPosition, itemEx, toPosition)
team1uids = getUidsFromArea(areateam1ext, areaplayersteam)
team2uids = getUidsFromArea(areateam2ext, areaplayersteam)
if haveTeamInArena() then
return doPlayerSendCancel(cid, "Already have a team in arena.")
end
if checkPoses(toPosition, team1leverpos) then
if checkPoses(getCreaturePosition(cid), leaderteam1pos) then
if getGlobalStorageValue(team1leverstorage) == 1 then
setGlobalStorageValue(team1leverstorage, 0)
return doTransformItem(getThingFromPos(team1leverpos).uid, leverafter)
end
if onlyguildwars and getPlayerGuildLevel(cid) < 3 then
return doPlayerSendCancel(cid, "You need to be the leader of your guild.")
end
if onlyguildwars and not isAllUidsSameGuild(team1uids, getPlayerGuildId(cid)) then
return doPlayerSendCancel(cid, "All of your team need to be in your guild.")
end
if not isAllUidsLevel(team1uids, needlevelarena) then
return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.")
end
if getPlayerLevel(cid) < leaderlevel then
return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.")
end
if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then
return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.")
end
setGlobalStorageValue(team1leverstorage, 1)
doTransformItem(getThingFromPos(team1leverpos).uid, leverbefore)
if getGlobalStorageValue(team2leverstorage) >= 1 then
startArena()
end
else
doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.")
end
elseif checkPoses(toPosition, team2leverpos) then
if checkPoses(getCreaturePosition(cid), leaderteam2pos) then
if getGlobalStorageValue(team2leverstorage) == 1 then
setGlobalStorageValue(team2leverstorage, 0)
return doTransformItem(getThingFromPos(team2leverpos).uid, leverafter)
end
if onlyguildwars and getPlayerGuildLevel(cid) < 3 then
return doPlayerSendCancel(cid, "You need to be the leader of your guild.")
end
if onlyguildwars and not isAllUidsSameGuild(team2uids, getPlayerGuildId(cid)) then
return doPlayerSendCancel(cid, "All of your team need to be in your guild.")
end
if not isAllUidsLevel(team2uids, needlevelarena) then
return doPlayerSendCancel(cid, "All of your team need to be level " .. needlevelarena .. " or more.")
end
if getPlayerLevel(cid) < leaderlevel then
return doPlayerSendCancel(cid, "You, the leader of the team, need to be level " .. leaderlevel .. " or more.")
end
if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then
return doPlayerSendCancel(cid, "Your team need " .. tostring(needplayers) .. " players.")
end
setGlobalStorageValue(team2leverstorage, 1)
doTransformItem(getThingFromPos(team2leverpos).uid, leverbefore)
if getGlobalStorageValue(team1leverstorage) >= 1 then
startArena()
end
else
doPlayerSendCancel(cid, "You must be the leader of the team to pull the lever.")
end
end
return TRUE
end
Agora vá em data/creaturescripts/scripts e adicione dois scripts.lua com esses nomes:
WarArenaDeathTeam1:
function onDeath(cid)
setPlayerStorageValue(cid, storageplayersteam1, 0)
setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1)
if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then
if onlyguildwars then
doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".")
else
doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".")
end
setGlobalStorageValue(storageteam1death, 0)
setGlobalStorageValue(storageteam2death, 0)
setGlobalStorageValue(haveteaminarena, 0)
end
return TRUE
end
WarArenaDeathTeam2:
function onDeath(cid)
setPlayerStorageValue(cid, storageplayersteam2, 0)
setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1)
if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then
if onlyguildwars then
doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".")
else
doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".")
end
setGlobalStorageValue(storageteam1death, 0)
setGlobalStorageValue(storageteam2death, 0)
setGlobalStorageValue(haveteaminarena, 0)
end
return TRUE
end
Agora abra o creaturescripts.xml e adicione essas linhas:
Agora vá em data/movements/scripts e adicione tres scripts.lua com esses nomes:
WarArenaMovement1:
function onStepOut(cid, item, position, fromPosition)
local team = (fromPosition.x == leaderteam1pos.x and fromPosition.y == leaderteam1pos.y and fromPosition.z == leaderteam1pos.z) and "team1" or (fromPosition.x == leaderteam2pos.x and fromPosition.y == leaderteam2pos.y and fromPosition.z == leaderteam2pos.z) and "team2"
if team == "team1" then
if getGlobalStorageValue(team1leverstorage) == 1 then
setGlobalStorageValue(team1leverstorage, 0)
doTransformItem(getThingFromPos(team1leverpos).uid, leverafter)
end
elseif team == "team2" then
if getGlobalStorageValue(team2leverstorage) == 1 then
setGlobalStorageValue(team2leverstorage, 0)
doTransformItem(getThingFromPos(team2leverpos).uid, leverafter)
end
end
end
WarArenaMovement2:
function onStepIn(cid, item, position, fromPosition)
local team = isSqmFromArea(areateam1ext, areaplayersteam, fromPosition) and "team1" or isSqmFromArea(areateam2ext, areaplayersteam, fromPosition) and "team2"
if team == "team1" then
if getGlobalStorageValue(team1leverstorage) == 1 then
if not haveQuantPlayersInArea(areateam1ext, areaplayersteam, needplayers) then
setGlobalStorageValue(team1leverstorage, 0)
doTransformItem(getThingFromPos(team1leverpos).uid, leverafter)
end
end
elseif team == "team2" then
if getGlobalStorageValue(team2leverstorage) == 1 then
if not haveQuantPlayersInArea(areateam2ext, areaplayersteam, needplayers) then
setGlobalStorageValue(team2leverstorage, 0)
doTransformItem(getThingFromPos(team2leverpos).uid, leverafter)
end
end
end
if getGlobalStorageValue(team1leverstorage) == 1 then
if checkPoses(fromPosition, posbenterteam1) then
doTeleportThing(cid, fromPosition)
return doPlayerSendCancel(cid, "You can't enter now.")
end
elseif getGlobalStorageValue(team2leverstorage) == 1 then
if checkPoses(fromPosition, posbenterteam2) then
doTeleportThing(cid, fromPosition)
return doPlayerSendCancel(cid, "You can't enter now.")
end
end
end
WarArenaMovement3:
function onStepIn(cid, item, position, fromPosition)
if getPlayerStorageValue(cid, storageplayersteam1) >= 1 then
setPlayerStorageValue(cid, storageplayersteam1, 0)
doTeleportThing(cid, posbenterteam1)
setGlobalStorageValue(storageteam1death, getGlobalStorageValue(storageteam1death) >= 0 and getGlobalStorageValue(storageteam1death)+1 or 1)
if getGlobalStorageValue(haveteaminarena) >= 1 then
if getGlobalStorageValue(storageteam1death) >= getGlobalStorageValue(storageteam1) then
if onlyguildwars then
doBroadcastMessage("The Team 2 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader2)) .. ".")
else
doBroadcastMessage("The Team 2 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader2)) .. ".")
end
setGlobalStorageValue(storageteam1death, 0)
setGlobalStorageValue(storageteam2death, 0)
setGlobalStorageValue(haveteaminarena, 0)
end
end
elseif getPlayerStorageValue(cid, storageplayersteam2) >= 1 then
setPlayerStorageValue(cid, storageplayersteam2, 0)
doTeleportThing(cid, posbenterteam2)
setGlobalStorageValue(storageteam2death, getGlobalStorageValue(storageteam2death) >= 0 and getGlobalStorageValue(storageteam2death)+1 or 1)
if getGlobalStorageValue(haveteaminarena) >= 1 then
if getGlobalStorageValue(storageteam2death) >= getGlobalStorageValue(storageteam2) then
if onlyguildwars then
doBroadcastMessage("The Team 1 won the war, guild " .. getPlayerGuildName(getGlobalStorageValue(storageleader1)) .. ".")
else
doBroadcastMessage("The Team 1 won the war, team leader name is " .. getCreatureName(getGlobalStorageValue(storageleader1)) .. ".")
end
setGlobalStorageValue(storageteam1death, 0)
setGlobalStorageValue(storageteam2death, 0)
setGlobalStorageValue(haveteaminarena, 0)
end
end
end
return TRUE
end
Adicionando os Actions IDS:
Nas 2 alavancas, adicione o actionid 12349.
Nos 2 sqms que os players vao estar antes de entrar na arena adicione o actionid 12351.
Nos 2 quadrados aonde os lideres irao ficar (na frente da alavanca) bote o actionid 12350.
No sqm de sair da arena bote o actionid 12352.
NA AREA DOS TIMES E NA ARENA, BOTE PELO MAP EDITOR PARA NAO PODER LOGAR. (Se voce nao fizer isso pode haver bugs.)
Bem, se voce souber ler o script da lib, vai saber configura-lo para seu otserver.
Versão MOD: (Abra o spoiler)
O modo de configurar é exatamente igual ao normal. Flws.
Eaí galera vou ensinar a criar um baú que dá itens, muito bom pra quests.
Observe:
Primeiro, copie o codigo, cole no bloco de notas e salve na extensão ".lua" com qualquer nome, por exemplo: "quest.lua", depois coloque o arquivo em "PASTA DO SEU OT/data/actions/scripts/quests/"
Editando o script:
1º function onUse(cid, item, frompos, item2, topos) = Obrigatório na primeira linha.
2º if item.uid == 100000 then = Obrigatório se o jogador poder abrir apenas uma vez o baú, o número em Azul é uma Unique ID, escolha qualquer numero que não esteja em NENHUM script e coloque no lugar do 100000, depois, entre no Map Editor, faça o baú no mapa, entre nas propriedades dele, la estará: "Unique ID:", coloque o número que você escolheu e salve o mapa, depois vá em "PASTA DO SEU OT/data/actions/" e abra o arquivo "actions.xml" pelo bloco de notas, em qualquer linha vazia adicione esta tag:
<action uniqueid="UNIQUE ID QUE VOCE ESCOLHEU NO Passo 2, NO MEU CASO 100000" event="script" value="quests/NOME DO ARQUIVO.lua"/>
3º queststatus = getPlayerStorageValue(cid,8749) = Escolha qualquer número que não esteja em NENHUM script e coloque no lugar do número em vermelho (8749).
4º if queststatus == -1 then = Obrigatório se o player poder abrir o báu apenas uma vez.
5º doPlayerSendTextMessage(cid,22,"Você completou a quest, parabéns!") = Em azul escuro é a mensagem que vai aparecer quando o player abrir o baú.
6º doPlayerAddItem(cid,2149,10) = Em verde é o ID do item que o player irá receber quando abrir o baú, em vermelho é a quantidade do item que ele vai receber, se quiser adicionar mais um item, copie a linha e coloque outra embaixo.
7º setPlayerStorageValue(cid,8749,1) = Em verde substitua pelo mesmo numero que voce colocou no Passo 3.
8º else = Obrigatório se o player for tentar abrir o baú denovo e aparecer outra mensagem.
9º doPlayerSendTextMessage(cid,22,"Você já abriu o baú.") = Em preto é a mensagem que aparecerá se o player tentar abrir o baú denovo.
10º end = Obrigatório senão dará erro no script.
Bom pessoal é isso, o topico ta meio desorganizado por que to com um pouco de pressa depois eu organizo direitinho blz, flw!
Leosinhuvd5,
Cuidado com o flood, fica a dica...
----------------------------------
Não vai postar mais atualizações no ritmo "Quente" safado?
Continue seu belíssimo trabalho!
Não tem muita paciência de começar em um servidor novo? Ganhe um presente!
- Ao pegar level 19, lhe damos 30 leveis ..... You advanced from level 19 to level 49.
- Ao chegar no level 70, ganhe 20k.
- Ao chegar no level 125, ganhe 100k.
- Ao chegar no level 200, ganhe 200k.
- Sabe qual é o melhor? A exp é 100x!
--- Entre agora!
Eventos:
- 40 invasões.
- Vários eventos por semana
- WOE (Guerra de guilds para dominar o castelo)
- Zoombie Event (Fuja dos zoombies e quem ficar ganha)
- Concurso QI (Indique 1 amigo e ganhe 2 points no Shopping)
- Resta 1
- Caça ao Tesouro (Escondemos algumas bags em uma cidade invadidade)
- Loteria
Rates:
- xp rate: 100x Stages
- skill: 40x
- magic: 10x
- Red Skull ativa.
--- Mais informações
Qualidades:
- Mapa Global
- 24 horas
- Servidor dedicado
- Link no Brasil
- Suporte In-game e no Site
- Cliente Próprio (Baixe no Site)
- Addons
- Montarias
Obs* Tem um bloco de notas chamado "LEIA-ME" veja para qualquer duvida...
Obs** Ele serve para outros tipos, desde Quests, a entradas de outros lugares...
Obs*** Não coloquei os outros andares, apenas os últimos para deixar misterioso os outros, só baixar para vê-lo!