Ir para conteúdo
Close

REFORMULAMOS A SEÇÃO DE CLASSIFICADOS! - Crie grátis os seus anúncios de procura e oferta de serviços e produtos relacionados ao OTServ! - Acesse através do nosso menu ou clique aqui e confira já!

Yan Liima

Membro
  • Total de itens

    173
  • Registro em

  • Última visita

  • Dias Ganhos

    3

Yan Liima venceu a última vez em Dezembro 23 2018

Yan Liima teve o conteúdo mais curtido!

3 Seguidores

Sobre Yan Liima

  • Rank
    Scripter,Programador,Designer,Mapper,WebMaster.
  • Data de Nascimento 01/01/2001

Informação de Perfil

  • Genero
    Masculino
  • Eu sou
    Mapper
    Scripter
    Programmer
    Webmaster
  • Meu personagem
    [ADM] Night

Últimos Visitantes

837 visualizações
  1. Delete a pasta OBJ das suas sources e tente compilar novamente.
  2. O que eu fiz foi uma pequena gambiarra. Usa o do Vodkart amigo, ficou show de bola!
  3. Troque: <globalevent name="StaminaRegen" interval="5" script="Staminareco.lua"/> Por: <globalevent name="StaminaRegen" interval="5000" script="Staminareco.lua"/>
  4. Se estiver fora não! Use o do Vodkart. Muito bom!
  5. Sim, tem que por! É um event onStepIn. Talvez daria para fazer sem os IDs mas dessa maneira seria mais fácil. E fique tranquilo, não irá adicionar em todos os pisos. Apenas naqueles com protection. Mas séra necessário por is IDS
  6. Utilizei o script que eu ja tinha feito, apenas editei. Bom não entendi aquele 0.5, mas vamos la... em movements/scripts/ crie um arquivo.lua e cole isso dentro: local config = { addStamina = 1, -- quantos de stamina irá adicionar delay = 1, -- tempo para adicionar a stamina em minutos msg = 0.5, -- Só pra exibição de valor mesmo... } stamina = {} local function staminadd(cid) if not isPlayer(cid) then stamina[cid] = nil return true end doPlayerSetStamina(cid, getPlayerStamina(cid) + config.addStamina) stamina[cid] = addEvent(staminadd, config.delay*60*1000, cid) end function onStepIn(cid) if isPlayer(cid) then if getTileInfo(getThingPos(cid)).protection then if getPlayerStorageValue(cid, sta) < os.time() then doPlayerSendTextMessage(cid, 20, "{Stamina Recovery} Sua stamina começou a se recuperar, o fator de recuperação é de "..config.msg.." em relação as condições normais.") setPlayerStorageValue(cid, sta, os.time() + 300) end stamina[cid] = addEvent(staminadd, config.delay*60*1000, cid) end end return true end function onStepOut(cid) if isPlayer(cid) then stopEvent(stamina[cid]) stamina[cid] = nil end return true end No seu movements.xml coloque isso: <movevent type="StepIn" itemid="7351" event="script" value="arquivo.lua"/> <movevent type="StepOut" itemid="7351" event="script" value="arquivo.lua"/> Troque: 7351 pelo ID do seu tile(piso). Caso em outras zonas protegida o piso seja diferente só por assim, Ex: 7351-7352... O delay da mensagem está setado para 5 minutos.
  7. Acontece com todas as spells do teu servidor? Apresenta algum erro na distro?
  8. Está certinho irmão. Verifique se o XML está certo também. No script do movements você poderia deixar assim: function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) then if getPlayerStorageValue(cid, 394335) <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendCancel(cid, "Voce nao tem permissao para passar.") return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Bem vindo ".. getCreatureName(cid) .."!") setPlayerStorageValue(cid, 394335, -1) end return true end Ao acessar o tile tendo a storage ele iria remover a storage, ai depois o jogador teria que comprar de novo. Por isso seria bom usar aquele npc que te mandei, pro jogador não ficar perdendo dinheiro sendo que ele ja tem a storage. Mas ai no caso se ele pisasse no piso ai perderia e teria que comprar novamente... Tendeu?
  9. Seria bom você por na script do tile para remover a storage assim que o jogador pisar la. Pois assim ele teria que ir comprar toda vez. Caso contrario, por ele ja ter comprado e ter a storage no jogador dele, ele podia passar sem pagar nada(com o npc que tu pediu)... So adiciona la no script do tile isso: setPlayerStorageValue(cid,DEKU,-1) Mas se mesmo assim quer o npc sem verificar se já tem a storage, aqui esta.. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local money = 10000 local storage = DEKU if msgcontains(msg, "yes") then if getPlayerMoney(cid) >= money then doPlayerRemoveMoney(cid,money) setPlayerStorageValue(cid,storage,1) selfSay("Ótimo, agora você podera passar", cid) else selfSay("Você não tem dinheiro o suficiente.", cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  10. @El Reverso utilize o code box para uma melhor visualização! Todos que forem copiar a lib vai vir com algum problema. Para ajudar na visualização evitar problemas e facilitar no ctrl+c, coloque em Código.
  11. Correção: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local money = 10000 local storage = DEKU if msgcontains(msg, "yes") then if getPlayerStorageValue(cid, storage) == 1 then selfSay("Você já tem a passagem", cid) elseif getPlayerStorageValue(cid, storage) <= 0 then if getPlayerMoney(cid) >= money then doPlayerRemoveMoney(cid,money) setPlayerStorageValue(cid,storage,1) selfSay("Ótimo, agora você podera passar", cid) else selfSay("Você não tem dinheiro o suficiente.", cid) end end return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Funcionou?
  12. Olha, confesso que deu preguiça de fazer ksks mas como era tu abri uma exeção Script: local config = { addStamina = 1, -- quantos de stamina irá adicionar delay = 1, -- tempo para adicionar a stamina em minutos AREA = {{x=90, y=182, z=7}, {x=102, y=192, z=7}}, -- Canto superior esquerdo / inferior direito da sala. } stamina = {} local function staminadd(cid) if not isPlayer(cid) then stamina[cid] = nil return true end doPlayerSetStamina(cid, getPlayerStamina(cid) + config.addStamina) doPlayerSendTextMessage(cid, 22, "Você recebeu "..config.addStamina.." de stamina.") stamina[cid] = addEvent(staminadd, config.delay*60*1000, cid) end function onStepIn(cid) if isPlayer(cid) then if isInRange(getCreaturePosition(cid), config.AREA[1], config.AREA[2]) then stamina[cid] = addEvent(staminadd, config.delay*60*1000, cid) end end return true end function onStepOut(cid) if isPlayer(cid) then stopEvent(stamina[cid]) stamina[cid] = nil end return true end No movements.xml tu teria que por o ID do tile: <movevent type="StepIn" itemid="7351" event="script" value="CC21-Stamina.lua"/> <movevent type="StepOut" itemid="7351" event="script" value="CC21-Stamina.lua"/> Se caso nesse local tenha pisos diferente só tu por assim: <movevent type="StepIn" itemid="7351-7352" event="script" value="CC21-Stamina.lua"/> <movevent type="StepOut" itemid="7351-7352" event="script" value="CC21-Stamina.lua"/> Testa ai e me diz se deu certo :D
  13. O erro de cima era o caractere "?" vindo junto com o script ao copiar. Sobre o segundo, qual distro você utiliza? Tente assim: function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) then if getPlayerStorageValue(cid, DEKU) <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendCancel(cid, "Voce nao tem permissao para passar.") return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Bem vindo ".. getCreatureName(cid) .."!") end return true end
  14. Troque aquele NPC por este, xml: <?xml version="1.0" encoding="UTF-8"?> <npc name="Nome do NPC" script="arquivo.lua" walkinterval="2000" floorchange="0" access="5" level="1" maglevel="1"> <health now="100" max="100"/> <look type="812" head="132" body="79" legs="97" feet="132" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|! gostaria de comprar acesso para passar no tile?"/> <parameter key="message_farewell" value="Good bye, |PLAYERNAME|!"/> </parameters> </npc> arquivo.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} 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, "yes") then if doPlayerRemoveMoney(cid,10000) == 1 then selfSay("Ótimo, agora você podera passar", cid) setPlayerStorageValue(cid,DEKU,1) else selfSay("Você não tem dinheiro o suficiente.", cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×