Postado Janeiro 11, 2012 13 anos 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.
Postado Janeiro 11, 2012 13 anos 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. rena.to
Postado Janeiro 11, 2012 13 anos 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 Janeiro 11, 2012 13 anos 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 Janeiro 12, 2012 13 anos 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. rena.to
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.