-
Total de itens
2221 -
Registro em
-
Última visita
-
Dias Ganhos
60
Tudo que Yan Oliveira postou
-
Olá amigo, essa não é a área correta, essa área é para dúvida ou problemas com script. A área correta é em formação de equipes: https://www.xtibia.com/forum/forum/610-formação-de-equipes/
-
Mas a chance está baixa, talvez não tenha nascido porque a chance está pouca. Aumenta para 100 para testar e me fala se ainda não nasce.
-
Seu servidor é Tibia ou Derivado?
-
[Tutorial] Criando Novos Pokemons Para Pda [Iniciantes]
tópico respondeu ao Yan Oliveira de Yan Oliveira em Tutoriais para Iniciantes
Você sabe o nome da base que está usando? Baixou ela recentemente? -
Você disse que tentou mexer e não deu certo, e como não especificou, ficou vago e deu a entender que algo deu errado. Mas deu certo o sistema que o cara te passou ai ou você quer continuar com esse seu script e quer que colocar verificação de 24 horas?
-
Erro "not enough memory" ao tentar capturar um pokemon
pergunta respondeu ao M i s s de Yan Oliveira em Scripts
Qual base você está usando? -
O que não deu certo no seu script? Qual foi o erro? Está funcionando para os 5 jogadores? Seu server tem alguma função de converter segundos para horas?
-
Como assim? Você quer setar na ordem?
-
Esse script que você tem é um item?
-
Que bom mano, fico feliz ^^.
-
Vai no remere's, abre o seu mapa e vai no baú onde está os pokémons, depois adicione o seguinte actiondId em todos os baús: 18777 (Pode ser outro de sua preferência, mas tem que ser o mesmo para todos os baús). Agora em Data/Actions/Scripts crie um arquivo chamado start.lua e adicione todo o seguinte código dentro: local starterpokes = { ["Bulbasaur"] = {x = 1009, y = 1009, z = 7}, ["Charmander"] = {x = 1012, y = 1009, z = 7}, ["Squirtle"] = {x = 1015, y = 1009, z = 7}, } local itens = { [2394] = 20, [2152] = 10, [12346] = 5, [12344] = 5, } local btype = "Icone" local storage = 77477 local cities = { ["Saffron"] = 1, ["Cerulean"] = 2, ["Lavender"] = 3, ["Fuchsia"] = 4, ["Celadon"] = 5, ["Viridian"] = 6, ["Pallet"] = 7, ["Pewter"] = 8, ["Vermilion"] = 9, ["Cinabar"] = 10, } ---------------------------------------- CÓDIGO ------------------------------------ function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, storage) < 1 then local pokemon = "" for a, b in pairs (starterpokes) do if isPosEqualPos(topos, b) then pokemon = a end end if pokemon == "" then return true end doPlayerSendTextMessage(cid,22,"Boa escolha. Divirta-se!") addPokeToPlayer(cid, pokemon, 0, nil, btype, true) setPlayerStorageValue(cid, 8955, 1) nome_pokemon = pokemon for i, j in pairs(itens) do doPlayerAddItem(cid, i, j) end doPlayerSetTown(cid, cities["Saffron"]) -- COLOCA O NOME DA CIDADE QUE QUER QUE SEJA CIDADE NATAL doSendMagicEffect(getThingPos(cid), 29) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 40) doSendMagicEffect(getThingPos(cid), 7) setPlayerStorageValue(cid, storage, 1) return true else doPlayerSendTextMessage(cid, 27, "Você já escolheu seu pokémon!") return true end return TRUE end E salve o arquivo com a codificação ANSI, senão vai aparecer caracteres inválidos no chat porque coloquei palavras com acento. *OBS: Criei um novo arquivo para manter o outro como backup e para ficar mais organizado. E também com um nome melhor rs. Agora em Data/Actions/ abra o Actions.xml, procure por essa tag: <action actionid="1740" event="script" value="IniciasPokes.lua"/> E comente ela (Em xml é <!-- -->), e embaixo adicione essa tag: <action actionid="18777" event="script" value="start.lua"/> <!-- COLOQUE O ID DA ACTIONID DO REMERES --> Não esquece de adicionar os outros pokémon na tabela, eu deixei só 3 para teste, adicione o restante com suas devidas localizações. Eu testei aqui e deu certo, e não esqueça de salvar o actionId pelo remere's. Testa e me fala.
-
Faz um último teste e faço por action para você, substitua o código por esse: local starterpokes = { ["Bulbasaur"] = {x = 143, y = 110, z = 6}, ["Chikorita"] = {x = 144, y = 110, z = 6}, ["Treecko"] = {x = 145, y = 110, z = 6}, ["Turtwig"] = {x = 146, y = 110, z = 6}, ["Snivy"] = {x = 147, y = 110, z = 6}, ["Charmander"] = {x = 148, y = 110, z = 6}, ["Cyndaquil"] = {x = 149, y = 110, z = 6}, ["Torchic"] = {x = 150, y = 110, z = 6}, ["Chimchar"] = {x = 151, y = 110, z = 6}, ["Tepig"] = {x = 152, y = 110, z = 6}, ["Squirtle"] = {x = 153, y = 110, z = 6}, ["Totodile"] = {x = 154, y = 110, z = 6}, ["Mudkip"] = {x = 155, y = 110, z = 6}, ["Piplup"] = {x = 156, y = 110, z = 6}, ["Oshawott"] = {x = 157, y = 110, z = 6}, } local itens = { [2394] = 20, [2152] = 10, [12346] = 5, [12344] = 5, } local btype = "Icone" local storage = 77477 local cities = { ["Saffron"] = 1, ["Cerulean"] = 2, ["Lavender"] = 3, ["Fuchsia"] = 4, ["Celadon"] = 5, ["Viridian"] = 6, ["Pallet"] = 7, ["Pewter"] = 8, ["Vermilion"] = 9, ["Cinabar"] = 10, } ---------------------------------------- CÓDIGO ------------------------------------ function onUse(cid, item, frompos, item2, topos) local pokemon = "" for a, b in pairs (starterpokes) do if isPosEqualPos(topos, b) then pokemon = a end end if pokemon == "" then return true end doPlayerSendTextMessage(cid,22,"Boa escolha. Divirta-se!") addPokeToPlayer(cid, pokemon, 0, nil, btype, true) setPlayerStorageValue(cid, 8955, 1) nome_pokemon = pokemon for i, j in pairs(itens) do doPlayerAddItem(cid, i, j) end doPlayerSetTown(cid, cities["Saffron"]) -- COLOCA O NOME DA CIDADE QUE QUER QUE SEJA CIDADE NATAL doSendMagicEffect(getThingPos(cid), 29) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 40) doSendMagicEffect(getThingPos(cid), 7) setPlayerStorageValue(cid, storage, 1) return TRUE end Testa e me fala.
-
Substitui todo seu código por esse: local starterpokes = { ["Bulbasaur"] = {x = 143, y = 110, z = 6}, ["Chikorita"] = {x = 144, y = 110, z = 6}, ["Treecko"] = {x = 145, y = 110, z = 6}, ["Turtwig"] = {x = 146, y = 110, z = 6}, ["Snivy"] = {x = 147, y = 110, z = 6}, ["Charmander"] = {x = 148, y = 110, z = 6}, ["Cyndaquil"] = {x = 149, y = 110, z = 6}, ["Torchic"] = {x = 150, y = 110, z = 6}, ["Chimchar"] = {x = 151, y = 110, z = 6}, ["Tepig"] = {x = 152, y = 110, z = 6}, ["Squirtle"] = {x = 153, y = 110, z = 6}, ["Totodile"] = {x = 154, y = 110, z = 6}, ["Mudkip"] = {x = 155, y = 110, z = 6}, ["Piplup"] = {x = 156, y = 110, z = 6}, ["Oshawott"] = {x = 157, y = 110, z = 6}, } local itens = { [2394] = 20, [2152] = 10, [12346] = 5, [12344] = 5, } local btype = "Icone" local storage = 77477 local cities = { ["Saffron"] = 1, ["Cerulean"] = 2, ["Lavender"] = 3, ["Fuchsia"] = 4, ["Celadon"] = 5, ["Viridian"] = 6, ["Pallet"] = 7, ["Pewter"] = 8, ["Vermilion"] = 9, ["Cinabar"] = 10, } ---------------------------------------- CÓDIGO ------------------------------------ function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, storage) < 1 then local pokemon = "" for a, b in pairs (starterpokes) do if isPosEqualPos(topos, b) then pokemon = a end end if pokemon == "" then return true end doPlayerSendTextMessage(cid,22,"Boa escolha. Divirta-se!") addPokeToPlayer(cid, pokemon, 0, nil, btype, true) setPlayerStorageValue(cid, 8955, 1) nome_pokemon = pokemon for i, j in pairs(itens) do doPlayerAddItem(cid, i, j) end doPlayerSetTown(cid, cities["Saffron"]) -- COLOCA O NOME DA CIDADE QUE QUER QUE SEJA CIDADE NATAL doSendMagicEffect(getThingPos(cid), 29) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 40) doSendMagicEffect(getThingPos(cid), 7) setPlayerStorageValue(cid, storage, 1) return true else doPlayerSendTextMessage(cid, 27, "Você já escolheu seu pokémon!") return true end return TRUE end Testa e me fala.
-
Cara, estranho porque eu testei aqui e funcionou com o mesmo script que fiz para você. Como pode ver, o player recebeu os 4 itens que você quer e recebeu o pokémon normalmente. Você deve ter feito alguma coisa errada no script ou no xml. Sobre a action do baú, pode fazer até pode, mas não tem necessidade já que da para fazer no script. Mas se quiser eu faço, mas não acho que seja melhor opção, até porque como mostrei ai na print, ta funcionando normal.
-
Ok.
-
Pronto, já adicionei os itens que quer e criei uma tabela para cidade ao teleportar o player quando clica no baú: local starterpokes = { ["Bulbasaur"] = {x = 143, y = 110, z = 6}, ["Chikorita"] = {x = 144, y = 110, z = 6}, ["Treecko"] = {x = 145, y = 110, z = 6}, ["Turtwig"] = {x = 146, y = 110, z = 6}, ["Snivy"] = {x = 147, y = 110, z = 6}, ["Charmander"] = {x = 148, y = 110, z = 6}, ["Cyndaquil"] = {x = 149, y = 110, z = 6}, ["Torchic"] = {x = 150, y = 110, z = 6}, ["Chimchar"] = {x = 151, y = 110, z = 6}, ["Tepig"] = {x = 152, y = 110, z = 6}, ["Squirtle"] = {x = 153, y = 110, z = 6}, ["Totodile"] = {x = 154, y = 110, z = 6}, ["Mudkip"] = {x = 155, y = 110, z = 6}, ["Piplup"] = {x = 156, y = 110, z = 6}, ["Oshawott"] = {x = 157, y = 110, z = 6}, } local itens = { [2394] = 20, [2152] = 10, [12346] = 5, [12344] = 5, } local btype = "Icone" local storage = 77477 local cities = { ["Saffron"] = 1, ["Cerulean"] = 2, ["Lavender"] = 3, ["Fuchsia"] = 4, ["Celadon"] = 5, ["Viridian"] = 6, ["Pallet"] = 7, ["Pewter"] = 8, ["Vermilion"] = 9, ["Cinabar"] = 10, } ---------------------------------------- CÓDIGO ------------------------------------ function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, storage) < 1 then local pokemon = "" for a, b in pairs (starterpokes) do if isPosEqualPos(topos, b) then pokemon = a end end if pokemon == "" then return true end doPlayerSendTextMessage(cid,22,"Boa escolha. Divirta-se!") addPokeToPlayer(cid, pokemon, 0, nil, btype, true) setPlayerStorageValue(cid, 8955, 1) nome_pokemon = pokemon for i, j in pairs(itens) do doPlayerAddItem(cid, i, j) end doPlayerSetTown(cid, cities["Saffron"]) -- COLOCA O NOME DA CIDADE QUE QUER QUE SEJA CIDADE NATAL doSendMagicEffect(getThingPos(cid), 29) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 40) doSendMagicEffect(getThingPos(cid), 7) setPlayerStorageValue(cid, storage, 1) return true else doPlayerSendTextMessage(cid, 27, "Você já escolheu seu pokémon!") return true end return TRUE end Testei tanto em Saffron como em Cerulean e deu certo, caso queira trocar a cidade do player ao pegar o pokemon, só colocar o nome da cidade ali dentro de cities de acordo com as cidades existente na tabela. Caso queira colocar mais cidades além daquelas, vai em data/talkactions/script/tele.lua e olha lá todas as cidades e coloca na ordem igual está lá na tabela, mas se criou outra cidade pelo remere's, só olhar o id da town lá. OBS: Se você está usando o mapa padrão do PokeRoxy, pode ver que tem um baú dourado no começo, ali está dando alguns itens, para tirar, só ir em data/actions/scripts/quests/itensiniciais.lua e remover os itens lá, na verdade se quiser pode até tirar aquele script de actions.xml, só comentar a tag dele. Testei aqui e deu certo, mas qualquer problema me fale.
-
Clicar no item e ganhar montaria (10.0)
pergunta respondeu ao Jhony Araujo de Yan Oliveira em Scripts
De nada bro ☺️, só não esquece de colocar o ID da montaria porque coloquei XXX pois não sei qual o id da que quer, se não trocar vai dar erro no script. Qualquer problema só me avisar. -
Me passa o id de todos os itens e a quantidade referente a eles que eu adicione para você e nas próximas você faz seguindo como eu fiz. Sobre a cidade, ele ali ta passando a town para onde está salvo o templo que cria conta. Mas, para adicionar todas as towns ou outra, tem que ir no remere's e pegar o id delas, acho que o atalho é CTRL+T, geralmente Saffron é 1.
-
local starterpokes = { ["Bulbasaur"] = {x = 1357, y = 990, z = 10}, ["Chikorita"] = {x = 1356, y = 990, z = 10}, ["Treecko"] = {x = 1355, y = 990, z = 10}, ["Turtwig"] = {x = 1354, y = 990, z = 10}, ["Snivy"] = {x = 1353, y = 990, z = 10}, ["Charmander"] = {x = 1347, y = 990, z = 10}, ["Cyndaquil"] = {x = 1346, y = 990, z = 10}, ["Torchic"] = {x = 1345, y = 990, z = 10}, ["Chimchar"] = {x = 1344, y = 990, z = 10}, ["Tepig"] = {x = 1343, y = 990, z = 10}, ["Squirtle"] = {x = 1367, y = 990, z = 10}, ["Totodile"] = {x = 1366, y = 990, z = 10}, ["Mudkip"] = {x = 1365, y = 990, z = 10}, ["Piplup"] = {x = 1364, y = 990, z = 10}, ["Oshawott"] = {x = 1363, y = 990, z = 10}, } local btype = "Icone" -- COLOCA OS ITENS NA TABELA, O ÍNDICE É O ID DO ITEM E O VALOR A QUANTIDADE -- local itens = { [id_item1] = quantidade, [id_item2] = quantidade, } local storage = 77477 -- STORAGE PARA NÃO PEGAR MAIS DE 1 POKÉMON ------------ CÓDIGO -------------- function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, storage) < 1 then local pokemon = "" for a, b in pairs (starterpokes) do if isPosEqualPos(topos, b) then pokemon = a end end if pokemon == "" then return true end doPlayerSendTextMessage(cid,22,"Boa Escolha") addPokeToPlayer(cid, pokemon, 0, nil, btype, true) setPlayerStorageValue(cid, 8955, 1) doSendMagicEffect(getThingPos(cid), 29) for i, j in pairs(itens) do doPlayerAddItem(cid, i, j) end doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getThingPos(cid), 40) doSendMagicEffect(getThingPos(cid), 7) setPlayerStorageValue(cid, storage, 1) return true else doPlayerSendTextMessage(cid, 27, "Você já escolheo o " ..pokemon.. " como seu pokémon!") return true end return TRUE end Testa e me fala! Lembre de trocar os id e quantidade dos itens ali na tabela.
-
Sim, consigo. Estou fazendo aqui, você quer que vá para Saffron a cidade que já está indo ao criar a conta ou quer outra cidade e ao teleportar torne aquela cidade a natal do player?
-
Estou usando essa base recentemente e pelo que vi não tem unique system. Mas baixei ontem, estou conhecendo e qualquer coisa te aviso.
-
Mas esse efeito vai ficar permanente nele ou o efeito só vai surgir quando o npc aparecer?
-
Qual base você está usando?
-
Clicar no item e ganhar montaria (10.0)
pergunta respondeu ao Jhony Araujo de Yan Oliveira em Scripts
Sim amigo, você criou o post na seção errada, o certo seria em Pedidos de Script já que quer um script, e essa seção é para pessoas que tem um script existente e precisa de suporte. Mas vamos lá, vai em Data/Actions/Scripts e crie um arquivo recebe_montaria.lua e adicione o código dentro: local id_montaria = XXXX -- AQUI COLOCA O ID DA MONTARIA local repetir = false -- AQUI É UMA CONDIÇÃO PARA SABER SE O PLAYER PODE RECEBER NOVAMENTE A MONTARIA, CASO ELE SÓ POSSA USAR O ITEM 1 VEZ, DEIXE FALSE, SENÃO TRUE local storage = 36587 -- STORAGE PARA SABER SE O PLAYER JÁ USOU O ITEM ANTES local level = 1 -- NÍVEL MÍNIMO PARA USAR O ITEM function onUse(cid, item, frompos, item2, topos) if getPlayerLevel(cid) < level then doPlayerSendTextMessage(cid, 27, "You need to be at least level " ..level.. " or more to use this item.") return true end if (getPlayerStorageValue(cid, storage) < 1) and (not repetir) then doSendMagicEffect(getThingPos(cid), 29) doPlayerAddMount(cid, id_montaria) doPlayerSendTextMessage(cid, 27, "Congratulations! You received a mount " ..getItemNameById(id_montaria).. ".") doRemoveItem(item.uid) setPlayerStorageValue(cid, storage, 1) return true elseif (getPlayerStorageValue(cid, storage) > 0) and (not repetir) then doPlayerSendTextMessage(cid, 27, "You have already used the item before.") return true end if repetir then doSendMagicEffect(getThingPos(cid), 29) doPlayerAddMount(cid, id_montaria) doPlayerSendTextMessage(cid, 27, "Congratulations! You received a mount " ..getItemNameById(id_montaria).. ".") doRemoveItem(item.uid) return true end return true end end agora vai em Data/Actions e abra o Scripts.xml e adicione a seguinte tag dentro: <action itemid="2278" event="script" value="recebe_montaria.lua"/> <!-- COLOCA O ID DO ITEM ALI ONDE PEDE --> Coloque o ID da montaria na variável onda ta "XXXX". Como você não deu muitas informações do item, se pode usar mais de uma vez ou não, eu deixei para usar só 1 vez, mas caso queira usar mais, só mudar a variável repetir para true, senão deixa false. (Seria bom avisar se quer que repita ou não, porque com a condição que deixei deixo o código um pouco poluído, ai sabendo como você quer, eu deixo o código limpo caso não possa repetir.) Também coloquei uma verificação de nível, mas deixei 1 para que todos possa usar, mas caso queira especificar, só mudar na variável level. Testa e me fala, eu fiz de cabeça e não consigo testar porque não tenho nenhuma base de Tibia aqui. -
Sem problemas, e que chato pelo seu HD . Sobre o post, pelo que vi foi erro meu, pois não estava setando a tabela, por isso não estava funcionando. Mas eu arrumei e testei aqui funcionou: E observação que testei com as suas storages, setei todas para 1 para testar e funcionou. Mas testa ai esse script e vê se funciona: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end -- VARIÁVEIS -- local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local level = 100 local storages = {9361, 9363, 9366, 9364, 9365, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9374, 9375, 9376, 9377, 9378, 9379, 9380, 9381, 9382, 9383, 9384, 9385, 9386, 9387, 9388, 9389, 9390, 9391, 9392, 9393, 9394, 9395, 9396, 9397, 9398, 9399, 9400} ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then selfSay("Se você for nível "..level.. " ou mais eu posso resetar todas as quests que você já fez. Gostaria de reseta-lás?", cid) talkState[talkUser] = 1 elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if getPlayerLevel(cid) >= level then for i = 1, #storages do if getPlayerStorageValue(cid, storages[i]) > 0 then doSendMagicEffect(getPlayerPosition(cid), 28) selfSay("Todas as quests foram resetadas com sucesso! Agora você pode fazê-las novamente.", cid) setPlayerStorageValue(cid, storages[i], 0) return true else selfSay("Todas as quests já foram resetadas.", cid) return true end end talkState[talkUser] = 0 end return true elseif (msgcontains(msg, 'no') or msgcontains(msg, 'não')) and talkState[talkUser] == 1 then selfSay("Ok então.", cid) talkState[talkUser] = 0 return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Se der erro ou não funcionar, manda print do que aparece na distro.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.