Ir para conteúdo

GiovaniRodrigo

Membro
  • Registro em

  • Última visita

Tudo que GiovaniRodrigo postou

  1. Encontre as seguintes linhas e exclua elas seconds = 10, msg = "Voc\ê preci\sa aguardar 10 segundos para acumular o esp\írito.", local function useAgain(cid) setPlayerStorageValue(cid, config.storage[2], 2) return TRUE end if getPlayerStorageValue(cid, config.storage[2]) == 1 then doPlayerSendCancel(cid, config.msg) return TRUE end setPlayerStorageValue(cid, config.storage[2], 1) addEvent(useAgain, config.seconds*1000, cid)
  2. obs: tente explicar oque voce muda, porque dai eu vo colocar nas outras magias, te amo rsrs esse meu post aqui nao acaba em kkk, foi malz ae, é que to aperfeiçoando rsrs. se quiser consultar a magia anterior que voce fes pra mim, ela esta aqui: Apenas coloquei um else. Veja que antes da mensagem tem um else.
  3. Se o problema é tirar o [VIP] do nome, aqui está um tópico que eu resolvi. http://tibiaking.com/forum/topic/26310-problemas-com-name-vip/
  4. Crie um arquivo chamado bonifacius.lua na pasta data/npc/scripts e cole isso 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 local cfg = { days = 30, -- Dias de premium item = 1234, -- ID dos diamonds count = 10, -- Quantidade dos diamonds } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, "buy vip") then selfSay("Deseja comprar ".. cfg.days .." dias de premium por ".. cfg.count .." ".. getItemNameById(cfg.item) .."?", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, "yes") then if getPlayerItemCount(cid, cfg.item) >= cfg.count then doPlayerRemoveItem(cid, cfg.item, cfg.count) doPlayerAddPremiumDays(cid, cfg.days) selfSay("Você comprou ".. cfg.days .." dias de premium por ".. cfg.count .." ".. getItemNameById(cfg.item) ..".", cid) else selfSay("Voc\ê n\ão tem o item necess\ário.", cid) end end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Crie um arquivo chamado Bonifacius.xml na pasta data/npc e cole isso <?xml version="1.0" encoding="iso-8859-1"?> <npc name="Bonifacius" script="data/npc/scripts/bonifacius.lua" walkinterval="25" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="128" head="97" body="100" legs="115" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|! Eu vendo premium, diga {buy premium} para comprar."/> <parameter key="message_walkaway" value="Hey Hey, where you go ?"/> <parameter key="message_farewell" value="Bye bye brave soldier. Remember, peoples without head, don't transform in undeads."/> </parameters> </npc> Não testado. Dúvidas? Me avise. Att. Giovani Rodrigo
  5. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Siga corretamente as imagens que você conseguirá. Imagem 1 Imagem 2 Imagem 3
  6. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Cara para de explicar errado, não é nada de HOUSE EXIT. Cara clica na house que está dando erro naquela lista de house no map editor, depois clique em Select Exit e por último clica na frente da porta da house.
  7. Eu testei aqui e com o nome [VIP] Teste deu certo, quando reconectei ficou apenas Teste.
  8. Recopie o código e teste novamente.
  9. Troque o script do arquivo endvip.lua por esse function onLogin(cid) if getCharacterDays(cid) > 0 then setPlayerStorageValue(cid, 9898, 1) end function removeName(cid) if isPlayer(cid) then db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(getCreatureName(cid), 7).."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end end if getPlayerStorageValue(cid, 9898) == 1 and getCharacterDays(cid) <= 0 then doPlayerSetTown(cid, 1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) if string.find(tostring(getCreatureName(cid)),"[Vip]") then addEvent(removeName, 3*1000, cid) end end return TRUE end Não testado Dúvidas? Me avise. Créditos Eu -- Editar e trazer pra você Vodkart -- Criar Att. Giovani Rodrigo
  10. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Impossível não ter achado um sem ser editado.
  11. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Sim esse mesmo.
  12. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Verifique se no map editor está marcado o exit da house na frente da porta.
  13. Explicando: Imagem 1 A fromPos é a posição do piso superior esquerdo ou o piso contornado de azul como mostra na Imagem 1. A toPos é a posição do piso inferior direito ou o piso contornado de vermelho como mostra a Imagem 1. Pergunta: Mas o que tem a ver essa fromPos e toPos com a área do trainer? Resposta: Esses dois pisos tem uma função bem simples que é marcar a área de um quadrado ou retângulo. Continua não entendendo? Vou explicar melhor. Imagem 2 Veja que na Imagem 2 tem quatro linhas marcando os eixos X e Y de cada piso, veja também que as linhas se encontram formando um quadrado ou retângulo, isso faz com que os dois pisos que não era de nenhuma importância sejam as peças principais na formação de um quadrado ou retângulo. Pergunta: Mas porque determinar essa área? Resposta: Determinando essa área, tudo que estiver la dentro sofre a consequência do script. Exemplo: if isPlayer(getPlayer.uid) then doPlayerSendTextMessage(cid, 18, 'You have been teleported to the temple.') doTeleportThing(cid, cfg.pos) end Traduzindo O código diz o seguinte: Se é Jogador dentro da(área) faça Enviar Menssagem de Texto para o Jogador(jogador, tipo de menssagem, 'Mensagem') Teleportar para(jogador, posição) Fim Entendeu? Att. Giovani Rodrigo
  14. Poste todos os scripts envolvidos na sua vip por favor.
  15. Tem um site que descriptografa senhas em sha1, mas se você editar elas sem criptografar o jogador não consegue conectar, pois na config.lua está configurado para abrir senhas criptografadas (que eu aconselho deixar assim). Site para descriptografar. Att. Giovani Rodrigo
  16. Crie um arquivo chamado promotion.lua na pasta data/actions/script e cole isso function onUse(cid, item, frompos, item2, topos) item = 1234 -- ID do item que o jogador dará use if isPlayer(cid) then if getPlayerPromotion(cid) == 0 then setPlayerPromotion(cid, 1) doPlayerRemoveItem(cid, item, 1) doPlayerSendTextMessage(cid, 20, "You been promoted to ".. getPlayerVocationName(cid) ..".") else doPlayerSendTextMessage(cid, 20, "You already have promoted.") end end return TRUE end Adicione a seguinte linha no arquivo actions.xml que se encontra na pasta data/actions <action itemid="1234" event="script" value="promotion.lua" /> No itemid="1234" coloque o ID do item que o jogador dará use. Não testado. Dúvidas? Me avise. Att. Giovani Rodrigo
  17. a storage la em cima é 40001 porque fis 4 quests, 1 pada cada magia (pois nao queria que uma permissao dece para todas as magias) (dai ficou 40000 em uma, 40001 em outra, 40002 em outra ....) eu acredito que seja porque eu fis a quest de uma outra storage em quanto eu tinha que esperar os 10 segundos da magia que eu tinha soltado anteriormente, seria isto ? (tipo eu soltei uma magia, e logo em seguida eu fis a quest de uma outra storage e soltei a nova magia) foi assim que aconteceu: eu fis as outras 3 magias, e tinha esquecido de colocar: if getPlayerStorageValue(cid, config.storage[2]) == 1 then doPlayerSendCancel(cid, config.msg) return TRUE end if getPlayerStorageValue(cid, config.storage[1]) >= 1 then if getPlayerMana(cid) >= config.mana then doPlayerAddMana(cid, -config.mana) setPlayerStorageValue(cid, config.storage[2], 1) <<<<<<<<<<<<<<<<<<<<<<<<<<<< ESSE [2] AQUI nas outras 3 magias dai o sistema de permissao estava funcionando perfeitamente, só que o sistema de acumular espirito e talz nao estava funcionando, entao eu abri as magias e percebi que tinha esquecido de colocar aquele [2] la, dai eu fui e arrumei, só que quando fui testar aconteceu isso, eu peguei a primeira magia, dai soltei ela, e logo ja peguei a segunda, dai tive que esperar os 10 segunds, mais eles se tornaram infinitos, ou seja nao consigui mais soltar nenhuma outra magia, fica mandando a menssagem de esperar os 10 segundos pra sempre, eu tentei fechar e abrir o server mais bem na hora que eu fui fechar deu save dai salvou com a storage da magia ja, sera que tem como arrumar ? sera que tem como retirar as storages existentes pra mim tentar pegar as permissoes sem usar uma magia antes ? aguardo respostas, muito obrigado S2 obs: nao da nenhum erro no console do server e em nenhum outro lugar, so fica aparecendo aquele negocio que tem que esperar 10 segundos la. ---- @EDIT ---- percebi que a magia que esta bugando é o super berserk (aquele que voce passou pra mim, o script ta la em cima) apos eu soltar ele nao consigo mais utilizar as outras magias, e magia que eu disse que eu soltei ali anteriormente foi bem o super berserk, entao pode ser q a permissao bugou ele ou nao sei, poderia tentar ver ? Você tem que trocar o storage das magias, o storage de acumular o espírito. Se for mesmo storage quando você soltar uma magia vai ter que esperar 10 segundos pra soltar outra.
  18. Mais informações. Qual REV? Versão que eu disse se é 0.4 ou 0.3.6.
  19. Qual distro você usa?
  20. Muito obrigado a você. No caso da storage, na sua magia tem duas porque uma é pra verificar se ele pode usar e a outra para o papo do espírito e tal. Sempre que for usar duas storages na mesma variável, você identifica elas no script assim storage = {1234, 4321} -- Variável com dois valores storage[1] -- Storage 1 storage[2] -- Storage 2 Explicando com uma condição storage = {1234, 4321} -- Variável com dois valores if getPlayerStorageValue(cid, storage[1]) <= 0 then -- Condição com o valor 1 da variável storage end if getPlayerStorageValue(cid, storage[2]) >= 0 then -- Condição com o valor 2 da variável storage end O script acima diz: Se o valor da storage do jogador for(cid, 1234) menor ou igual a 0 faça -- Condição com o valor 1 da variável storage fim Se o valor da storage do jogador for(cid, 4321) maior ou igual a 0 faça -- Condição com o valor 2 da variável storage fim Att. Giovani Rodrigo
  21. Valeu pelo comentário, vou dar uma mudada pra ver como fica (:

Informação Importante

Confirmação de Termo