Ir para conteúdo

Featured Replies

Postado

Olá a todos tenho servidor global em linux e site gesior estou com 3 problemas, sendo eles:

1 - Os players estão conseguindo criar nome de personagem com mesmo nome de monstro, como por exemplo existe um char chamado Dragon Lord no meu servidor, ai ele vai para cave de dl e faz com q certo player pegue pk e o mata.

2 - É na yalahar quest, se você jogar runa de energy no chão, a quest só sumona os bichos de energy, os outros bichos que não são de energy não nascem ai a quest fica facil demais e qualquer lvl 80 faz sozinho sem ao menos usar mp :(.

3 - é a sequencia do problema 2, acho que por causa disso depois que você mata os bichos de energy vem o azerus e se você ficar correndo dele por um tempo o teleport abre sozinho sem precisar derrotar o azerus.

peço ajuda para resolver esses problemas, obg.

  • Respostas 5
  • Visualizações 1.6k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Por favor me manda o script da Yalahar Quest, irei dar uma olhada para resolver o problema 2 e 3.

Em decorrência ao problema 1, será necessário mexer no seu site, na parte da criação do char, para evitar que cria com nome de Monstro.

Postado

1 - Os players estão conseguindo criar nome de personagem com mesmo nome de monstro, como por exemplo existe um char chamado Dragon Lord no meu servidor, ai ele vai para cave de dl e faz com q certo player pegue pk e o mata.

Você está usando servidor mysql? ou sql?

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Postado
  • Autor

@skydangerous

mysql

@Renato

azerus_quest:

function onUse(cid, item, frompos, item2, topos)

--Config-->

local statue_pos = {x = 32783, y = 31166, z = 10}

local portal_quest01_pos = {x = 32783, y = 31175, z = 10, stackpos = 2}

local portal_quest02_pos = {x = 32784, y = 31177, z = 9, stackpos = 2}

local new_portal_pos = {x = 32783, y = 31168, z = 10, stackpos = 1}

local new_pos = {x = 32778, y = 31171, z = 14}

--End Config-->

function Potwory1()

if math.random (1,8) == 4 then

doSummonCreature('Rift Brood', {x = statue_pos.x+1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Brood', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Brood', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

addEvent(Potwory2, 30 * 1000)

else

doSummonCreature('Azerus', {x = statue_pos.x, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Brood', {x = statue_pos.x+1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Brood', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Brood', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

addEvent(Potwory2, 30 * 1000)

end

end

function Potwory2()

doSummonCreature('Rift Brood', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Brood', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})

addEvent(Potwory3, 35 * 1000)

end

function Potwory3()

doSummonCreature('Rift Scythe', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Scythe', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Scythe', {x = statue_pos.x+1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

doSummonCreature('Rift Scythe', {x = statue_pos.x-1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

addEvent(Potwory4, 40 * 1000)

end

function Potwory4()

doSummonCreature('Azerus', {x = statue_pos.x, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})

doSummonCreature('War Golem', {x = statue_pos.x+1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})

doSummonCreature('War Golem', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})

doSummonCreature('War Golem', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})

doSummonCreature('War Golem', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})

addEvent(NewPortal, 90 * 1000)

end

function NewPortal()

doCreateTeleport(1387, new_pos, new_portal_pos)

addEvent(RemoveAll, 60 * 1000)

end

function RemoveAll()

doRemoveItem(getThingfromPos(portal_quest01_pos).uid,1)

doRemoveItem(getThingfromPos(portal_quest02_pos).uid,1)

doRemoveItem(getThingfromPos(new_portal_pos).uid,1)

end

if item.uid == 11223 and getThingfromPos(portal_quest01_pos).itemid ~= 9772 then

doCreateItem(9772,1,portal_quest01_pos)

doCreateItem(9772,1,portal_quest02_pos)

addEvent(Potwory1, 0)

else

doPlayerSendTextMessage(cid,22,"Sorry, not possible.")

end

return TRUE

end

azerus.lua:

-- Yalahar 10th mission By QuaS~~

-- Config #1 --

local BlindField = {x=32781, y=31157, z=10, stackpos=1}

-- end --

function mapArea(fromPos, toPos, stack)

-- Area iterator by Colandus.

local pos = {x=fromPos.x, y=fromPos.y-1, z=fromPos.z}

return function()

if (pos.y < toPos.y) then

pos.y = pos.y+1

elseif (pos.x <= toPos.x) then

pos.y = fromPos.y

pos.x = pos.x+1

else

pos.x = fromPos.x

pos.y = fromPos.y

pos.z = pos.z+1

end

if (pos.x <= toPos.x and pos.y <= toPos.y or pos.z < toPos.z) then

if (stack == nil) then

return pos

else

pos.stackpos = stack

--return pos, getTileThingByPos(pos)

return pos, getThingfromPos(pos)

end

end

end

end

function getMonstersfromArea(fromPos, toPos)

local monsters = {}

for _, thing in mapArea(fromPos, toPos, 253) do

if isMonster(thing.uid) == TRUE then

table.insert(monsters, thing.uid)

end

end

local bfm = getThingfromPos(BlindField)

if isMonster(bfm.uid) == TRUE then

table.insert(monsters, bfm.uid)

end

return monsters

end

function onUse(cid, item, fromPosition, itemEx, toPosition)

-- CONFIG #2!!!! --

-- Map checking --

local topLeft = {x=32776, y=31159, z=10}

local buttomRight = {x=32790, y=31176, z=10}

-- Immortality of Azerus

local monsters = getMonstersfromArea(topLeft, buttomRight)

local monsters1 = getMonstersfromArea(topLeft, buttomRight)

-- Position Of TP --

local tp = {x=32783, y=31175, z=10}

-- Position of Gllobus

local glo = {x=32783, y=31166, z=10}

-- END OF CONFIG! --

function FirstWave()

doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z})

doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z})

doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z})

doSummonCreature("Azerus", {x=glo.x,y=glo.y - 5,z=glo.z})

end

function FifthWave()

doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z})

doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z})

doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z})

end

function SecondWave()

local monsters1 = getMonstersfromArea(topLeft, buttomRight)

for _, monster in pairs(monsters1) do

if getCreatureName(monster) == "Azerus" then

doRemoveCreature(monster)

end

end

doSummonCreature("Azerus1", {x=glo.x,y=glo.y - 5,z=glo.z})

doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z})

doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z})

doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z})

end

function SixthWave()

doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z})

doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z})

doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z})

end

function ThirdWave()

local monsters1 = getMonstersfromArea(topLeft, buttomRight)

for _, monster in pairs(monsters1) do

if getCreatureName(monster) == "Azerus" then

doRemoveCreature(monster)

end

end

doSummonCreature("Azerus2", {x= glo.x - 5,y=glo.y,z=glo.z})

doSummonCreature("Rift Scythe", {x= glo.x - 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z})

doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z})

end

function ThirdWave1() -- with 2s delay

doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z})

doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y - 4,z=glo.z})

doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 5,z=glo.z})

end

function FourthWave()

doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z})

doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z})

doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z})

doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z})

end

function SevenWave()

local monsters1 = getMonstersfromArea(topLeft, buttomRight)

for _, monster in pairs(monsters1) do

if getCreatureName(monster) == "Azerus" then

doRemoveCreature(monster)

end

end

doSummonCreature("Azerus3", {x= glo.x - 5,y=glo.y,z=glo.z})

doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z})

doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z})

doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z})

doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z})

end

function Glllobe()

item1 = getTileItemById(glo,9767)

doSetItemActionId(item1.uid, 58261)

end

local function createWall(p)

local janek = doCreateItem(1387,1,{x=32784, y=31177, z=9})

doItemSetAttribute(janek, "aid", 9105)

end

local function createWalll(i)

local ela = doCreateItem(2180,1,{x=32783, y=31175, z=10})

doItemSetAttribute(ela, "aid", 9106)

end

if item.actionid == 58261 then

doSetItemActionId(item.uid, 58263)

local monsters = getMonstersfromArea(topLeft, buttomRight)

local monsters1 = getMonstersfromArea(topLeft, buttomRight)

if getTileItemById(tp,2180).itemid == 2180 then

doRemoveItem(getTileItemById(tp,2180).uid)

end

wall0 = {x=32784, y=31177, z=9, stackpos=1}

getwall0 = getThingfromPos(wall0)

wall1 = {x=32783, y=31175, z=10, stackpos=1}

getwall1 = getThingfromPos(wall1)

doRemoveItem(getwall0.uid,1)

addEvent(FirstWave, 0)

addEvent(FifthWave, 10000)

addEvent(SecondWave, 20000)

addEvent(SixthWave, 25000)

addEvent(ThirdWave, 31000)

addEvent(ThirdWave1, 38000)

addEvent(FourthWave, 50000)

addEvent(SevenWave, 60000)

addEvent(Glllobe, 400000)

p = {wallid = getwall0.itemid}

addEvent(createWall, 300*1000, p)

i = {wallid = getwall1.itemid}

addEvent(createWalll, 300*1000, i)

elseif item.actionid == 58263 then

doCreatureSay(cid, "You have to wait some time before this globe will charge.", TALKTYPE_ORANGE_1)

end

return TRUE

end

azeruschest.lua:

-- 10th mission by QuaS~

function onUse(cid, item, frompos, item2, topos)

if item.actionid == 58267 then

queststatus = getPlayerStorageValue(cid,10254)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found an Yalahari Mask.")

doPlayerAddItem(cid,9778,1)

setPlayerStorageValue(cid,10254,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

elseif item.actionid == 58268 then

queststatus = getPlayerStorageValue(cid,10254)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found an Yalahari Armor.")

doPlayerAddItem(cid,9776,1)

setPlayerStorageValue(cid,10254,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

elseif item.actionid == 58269 then

queststatus = getPlayerStorageValue(cid,10254)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found an Yalahari Leg Piece.")

doPlayerAddItem(cid,9777,1)

setPlayerStorageValue(cid,10254,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

else

return 0

end

return 1

end

movements --> azerusdeath.lua:

function onStepIn(cid, item, position, fromPosition)

local yalahar = {x=32780, y=31168, z=14, stackpos=253}

if item.itemid == 9738 then

doTeleportThing(cid, yalahar, TRUE)

doSendMagicEffect(yalahar,12)

end

return TRUE

end

AZERUS.LUA:

function onStepIn(cid, item, position, fromPosition)

--Config-->

local queststatus = getPlayerStorageValue(cid, 50001)

--EndConfig-->

if item.actionid == 1974 and queststatus == -1 then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "It seems by defeating Azerus you have stoped this army from entering your world! Better leave this ghastly place forever.")

setPlayerStorageValue(cid, 4765, 1)

return TRUE

end

if item.actionid == 1973 and queststatus == -1 then

-- Here is the code start:

starting={x = 32778, y = 31160, z = 10, stackpos = 253}

checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}

ending={x = 32788, y = 31172, z = 10, stackpos = 253}

players=0

totalmonsters=0

monster = {}

repeat

creature= getThingfromPos(checking)

if creature.itemid > 0 then

if getPlayerAccess(creature.uid) == 0 then

players=players+1

end

if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then

totalmonsters=totalmonsters+1

monster[totalmonsters]=creature.uid

end

end

checking.x=checking.x+1

if checking.x>ending.x then

checking.x=starting.x

checking.y=checking.y+1

end

until checking.y>ending.y

if players==0 then

trash= {x=33193, y=31689, z=15}

current=0

repeat

current=current+1

doTeleportThing(monster[current],trash)

until current>=totalmonsters

end

-- Here is the end of it

doTeleportThing(cid, player_pos_entrada)

doSendMagicEffect(player_pos_entrada, 10)

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você já terminou a quest!')

end

end

AZERUSARMY.LUA:

function onStepIn(cid, item, position, fromPosition)

if item.actionid == 58262 then

if getPlayerStorageValue(cid, 10510) == -1 then

doCreatureSay(cid, "It seems by defating Azerus you have stopped this army from entering your world! Better leave this gastly place forever.", TALKTYPE_ORANGE_1)

setPlayerStorageValue(cid, 10510, 1)

end

return TRUE

end

end

Postado

Problema 2

Cara, altere todos os doSummonCreature por doCreateCreature

O problema é que o doSummonCreature não deixa criar em fields que o-afetam. Por exemplo em um mage, teste tacar fire fields ao seu redor todo e tente sumonar um rat... não vai dar, o mesmo acontece.

Confesso que não testei, mas creio que deve resolver.

Problema 3

Estou analisando o code, jajá edito com algo.

Abraços.

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.9k

Informação Importante

Confirmação de Termo