BrunooMaciell 83 Postado Dezembro 12, 2013 Share Postado Dezembro 12, 2013 Vim aqui pra pedir ajuda em algo relacionado a saffari system !! na saffari eo seguinte o player entra nela com 30 saffari balls e tudo mais porem se ele sair dela sem gasta as 30 da /h e teleporta quando ele for volta e fala com npc ela fala que ele ja esta dentro da saffari eu queria por ou inplementa se o player da /h na saffari com 20 saffari balls e caso ele volte e fale com npc ou ela combra novamente ou se o player tiver a saffari ball na bag ele entra sem paga ou ele tem que joga a saffari ball e entra sem ball como na 1 vez e ele entra novamente +- isto ^^ Curti+ OBS: nao sei s etem que posta algo mais qualquer coisa so fala que postarei ^^ Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 12, 2013 Share Postado Dezembro 12, 2013 Não seria mais fácil colocar uma condição pra não poder teleportar na Saffari? Link para o comentário Compartilhar em outros sites More sharing options...
BrunooMaciell 83 Postado Dezembro 12, 2013 Autor Share Postado Dezembro 12, 2013 e como seria +- ?? e dependendo se precisa de alguma script ou script do npc so pedir que postarei ^^ Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 12, 2013 Share Postado Dezembro 12, 2013 O erro é assim, certo? O player está dentro da Saffari. Aí, se ele der teleport lá dentro, e depois tentar voltar pra Saffari, o NPC dirá que ele já está dentro da mesma. Portanto, o problema é o teleporte. Então, no script de teleport (tele.lua), bastaria fazer uma proteção, verificando se o player está na Saffari (verificando a storage). Se estiver (se tiver as storages), não poderá teleportar, impedindo então, o bug mencionado. Link para o comentário Compartilhar em outros sites More sharing options...
BrunooMaciell 83 Postado Dezembro 12, 2013 Autor Share Postado Dezembro 12, 2013 Vou posta a script melhor qualquer coisa se puder fazer pra min dai ^^ SCRIPT local poke = {"Shiny Mr. Mime", 'Mew', 'Lunatone', 'Claydol', 'Shiny Xatu', 'Xatu', 'Slowking', 'Baltoy', 'Solrock', 'Mewtwo', 'Abra', 'Kadabra', 'Alakazam', 'Drowzee', 'Hypno', 'Mr. Mime', 'Porygon', 'Shiny Abra', 'Shiny Alakazam','Shiny Hypno', 'Porygon2'}local etele = 9499local cdtele = 60local config = {premium = false, -- se precisa ser premium account (true or false)battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas}local places = {[1] = {name = "Saffron", id = 1, sto = 897530},[2] = {name = "Celadon", id = 2, sto = 897534},[3] = {name = "Cerulean", id = 3, sto = 897531},[4] = {name = "Lavender", id = 4, sto = 897532},[5] = {name = "Vermilion", id = 5, sto = 897536},[6] = {name = "Fuchsia", id = 6, sto = 897533},[7] = {name = "Cinnabar", id = 7, sto = 897538},[8] = {name = "Viridian", id = 9, sto = 897535},[9] = {name = "Pewter", id = 10, sto = 897537},[10] = {name = "Pallet", id = 12},[11] = {name = "Silver", id = 13, sto = 897540},[12] = {name = "Brass", id = 14, sto = 897540},[13] = {name = "Indigo", id = 15, sto = 897540},[14] = {name = "Storm", id = 16, sto = 897540},[15] = {name = "Golden", id = 17, sto = 897540},[16] = {name = "Coliseu", id = 18, sto = 897540},[17] = {name = "Premium", id = 20, sto = 897540},}function onSay(cid, words, param)if #getCreatureSummons(cid) == 0 thendoPlayerSendCancel(cid, "You need a pokemon to use teleport.")return trueendif not isInArray(poke, getCreatureName(getCreatureSummons(cid)[1])) thenreturn 0endif getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) < 50 then --alterado v1.9doPlayerSendCancel(cid, "You can't do that here!")return trueendif getPlayerStorageValue(cid, 22545) == 1 then --golden arenadoPlayerSendCancel(cid, "You can't do that while the golden arena!")return trueendif getPlayerStorageValue(cid, 212124) >= 1 then --alterado v1.6return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!")endif getPlayerStorageValue(cid, 52480) >= 1 thenreturn doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6endif getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 thenreturn doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v1.7endif exhaustion.get(cid, etele) and exhaustion.get(cid, etele) > 0 thenlocal tempo = tonumber(exhaustion.get(cid, etele)) or 0local min = math.floor(tempo)doPlayerSendCancel(cid, "Your pokemon is tired, wait "..getStringmytempo(tempo).." to teleport again.")return trueendif config.premium and not isPremium(cid) thendoPlayerSendCancel(cid, "Only premium members are allowed to use teleport.")return trueendif config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) thendoPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.")return trueendif (param == '') thenlocal str = ""str = str .. "Places to go :\n\nHouse\n"for a = 1, #places dostr = str..""..places[a].name.."\n"enddoShowTextDialog(cid, 7416, str)return trueendlocal item = getPlayerSlotItem(cid, 8)local nome = getPokeballName(item.uid)local summon = getCreatureSummons(cid)[1]local lastppos = getThingPos(cid)local lastspos = getThingPos(summon)local telepos = {}local myplace = ""local townid = 0local citySto = 0 --alterado v1.7if string.lower(param) == "house" thenif not getHouseByPlayerGUID(getPlayerGUID(cid)) thendoPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You don't own a house.")return trueendtelepos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid)))myplace = "our home"elsefor x = 1, #places doif string.find(string.lower(places[x].name), string.lower(param)) thentownid = places[x].idmyplace = places[x].namecitySto = places[x].sto or -1 --alterado v1.7endendif myplace == "" thendoPlayerSendCancel(cid, "That place doesn't exist.")return trueendendif myplace ~= "" and townid > 0 thentelepos = getTownTemplePosition(townid)endif getDistanceBetween(getThingPos(cid), telepos) <= 15 thendoPlayerSendCancel(cid, "You are too near to the place you want to go!")return trueenddoSendMagicEffect(getThingPos(summon), 29)doSendMagicEffect(getThingPos(cid), 29)doTeleportThing(cid, telepos, false)local pos2 = getClosestFreeTile(cid, getPosByDir(getThingPos(cid), SOUTH))doTeleportThing(summon, pos2, false)doSendMagicEffect(getThingPos(cid), 29)doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1)doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1, false, 0, lastppos)doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER)doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER, false, 0, lastspos)doCreatureSetLookDir(cid, SOUTH)doCreatureSetLookDir(summon, SOUTH)doSendMagicEffect(getThingPos(summon), CONST_ME_TELEPORT)exhaustion.set(cid, etele, cdtele)return trueend Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 12, 2013 Share Postado Dezembro 12, 2013 (editado) Não sei se as storages da Saffari do seu servidor são as mesmas que do meu. Anyway, tenta assim: -se o jogador estiver dentro da Saffari, não poderá se teleportar. local poke = {"Shiny Mr. Mime", 'Mew', 'Lunatone', 'Claydol', 'Shiny Xatu', 'Xatu', 'Slowking', 'Baltoy', 'Solrock', 'Mewtwo', 'Abra', 'Kadabra', 'Alakazam', 'Drowzee', 'Hypno', 'Mr. Mime', 'Porygon', 'Shiny Abra', 'Shiny Alakazam', 'Shiny Hypno', 'Porygon2'} local etele = 9499 local cdtele = 60 local config = { premium = false, -- se precisa ser premium account (true or false) battle = true -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas } local places = { [1] = {name = "Saffron", id = 1, sto = 897530}, [2] = {name = "Celadon", id = 2, sto = 897534}, [3] = {name = "Cerulean", id = 3, sto = 897531}, [4] = {name = "Lavender", id = 4, sto = 897532}, [5] = {name = "Vermilion", id = 5, sto = 897536}, [6] = {name = "Fuchsia", id = 6, sto = 897533}, [7] = {name = "Cinnabar", id = 7, sto = 897538}, [8] = {name = "Viridian", id = 9, sto = 897535}, [9] = {name = "Pewter", id = 10, sto = 897537}, [10] = {name = "Pallet", id = 12}, [11] = {name = "Silver", id = 13, sto = 897540}, [12] = {name = "Brass", id = 14, sto = 897540}, [13] = {name = "Indigo", id = 15, sto = 897540}, [14] = {name = "Storm", id = 16, sto = 897540}, [15] = {name = "Golden", id = 17, sto = 897540}, [16] = {name = "Coliseu", id = 18, sto = 897540}, [17] = {name = "Premium", id = 20, sto = 897540}, } function onSay(cid, words, param) if #getCreatureSummons(cid) == 0 then doPlayerSendCancel(cid, "You need a pokemon to use teleport.") return true end if not isInArray(poke, getCreatureName(getCreatureSummons(cid)[1])) then return 0 end if getPlayerStorageValue(cid, Agatha.stoIni) >= 1 and getPlayerStorageValue(cid, Agatha.stoIni) < 50 then --alterado v1.9 doPlayerSendCancel(cid, "You can't do that here!") return true end if getPlayerStorageValue(cid, 22545) == 1 then --golden arena doPlayerSendCancel(cid, "You can't do that while the golden arena!") return true end if getPlayerStorageValue(cid, 212124) >= 1 then --alterado v1.6 return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!") end if getPlayerStorageValue(cid, 52480) >= 1 then return doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6 end if getPlayerStorageValue(cid, 98796) >= 1 or getPlayerStorageValue(cid, 98797) >= 1 then return doPlayerSendCancel(cid, "Você não pode se teleportar na Saffari Zone!") end if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then return doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v1.7 end if exhaustion.get(cid, etele) and exhaustion.get(cid, etele) > 0 then local tempo = tonumber(exhaustion.get(cid, etele)) or 0 local min = math.floor(tempo) doPlayerSendCancel(cid, "Your pokemon is tired, wait "..getStringmytempo(tempo).." to teleport again.") return true end if config.premium and not isPremium(cid) then doPlayerSendCancel(cid, "Only premium members are allowed to use teleport.") return true end if config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.") return true end if (param == '') then local str = "" str = str .. "Places to go :\n\nHouse\n" for a = 1, #places do str = str..""..places[a].name.."\n" end doShowTextDialog(cid, 7416, str) return true end local item = getPlayerSlotItem(cid, 8) local nome = getPokeballName(item.uid) local summon = getCreatureSummons(cid)[1] local lastppos = getThingPos(cid) local lastspos = getThingPos(summon) local telepos = {} local myplace = "" local townid = 0 local citySto = 0 --alterado v1.7 if string.lower(param) == "house" then if not getHouseByPlayerGUID(getPlayerGUID(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You don't own a house.") return true end telepos = getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid))) myplace = "our home" else for x = 1, #places do if string.find(string.lower(places[x].name), string.lower(param)) then townid = places[x].id myplace = places[x].name citySto = places[x].sto or -1 --alterado v1.7 end end if myplace == "" then doPlayerSendCancel(cid, "That place doesn't exist.") return true end end if myplace ~= "" and townid > 0 then telepos = getTownTemplePosition(townid) end if getDistanceBetween(getThingPos(cid), telepos) <= 15 then doPlayerSendCancel(cid, "You are too near to the place you want to go!") return true end doSendMagicEffect(getThingPos(summon), 29) doSendMagicEffect(getThingPos(cid), 29) doTeleportThing(cid, telepos, false) local pos2 = getClosestFreeTile(cid, getPosByDir(getThingPos(cid), SOUTH)) doTeleportThing(summon, pos2, false) doSendMagicEffect(getThingPos(cid), 29) doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1) doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1, false, 0, lastppos) doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER) doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER, false, 0, lastspos) doCreatureSetLookDir(cid, SOUTH) doCreatureSetLookDir(summon, SOUTH) doSendMagicEffect(getThingPos(summon), CONST_ME_TELEPORT) exhaustion.set(cid, etele, cdtele) return true end Editado Dezembro 12, 2013 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
BrunooMaciell 83 Postado Dezembro 12, 2013 Autor Share Postado Dezembro 12, 2013 deu certo !! vlw ^^ Curti+ Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 12, 2013 Share Postado Dezembro 12, 2013 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Abril 21, 2018 Share Postado Abril 21, 2018 A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. + Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda. * Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados