Ir para conteúdo

Yan Oliveira

Moderador
  • Total de itens

    2187
  • Registro em

  • Última visita

  • Dias Ganhos

    57

Tudo que Yan Oliveira postou

  1. Tópico movido de Pedidos > OTServ > Scripts para Pedidos > OTServ > Resolvidos. Fique atento às regras do fórum.
  2. O pedido neste tópico de foi atendido e/ou o autor do tópico resolveu sua duvida. Este tópico está fechado e foi movido para Pedidos - Resolvidos. Se você tiver outros pedidos, crie um novo tópico.
  3. De nada! Que bom que conseguiu resolver, poste a solução no seu post para que outras pessoas com o mesmo problema saibam a solução.
  4. Tópico movido de Downloads > OTServ > OTServer Alternativo (ATS) para Pedidos > OTServ > Websites. Fique atento às regras do fórum.
  5. Yan Oliveira

    Loot dos Mobs

    Esse problmea está na Source (C++), porque a source está programada para mostrar o Id. Tem que olhar sua source e ver como está. E também qual a versão da TFS?
  6. No caso essa contagem é feita por monstro morto por player ou global? Essa mensagem no chat é para todos os jogadores ou para o jogador em questão que matou n vezes?
  7. Ficou ambíguo o seu pedido, pois você fala no tópico que free players e vips tenham acesso à esse recurso, porém no título você somente para quem é Vip. Então ficou ambíguo. Outra coisa, você precisa postar o seu script do autoloot para poder trabalhar com a storage e fazer as verificações para criar esse comando.
  8. Yan Oliveira

    Script Espelho

    Explique melhor seu pedido, pois não está claro o que quer e nem está intuitivo o seu pedido colocando apenas uma imagem. Explique como funciona o seu pedido. Tópico movido de Suporte > OTServ > Scripts para Pedidos > OTServ > Scripts. Fique atento às regras do fórum.
  9. Muito interessante seu servidor, parece ser legal e está bem atraente. Parabéns! Poderia colocar um vídeo mostrando um pouco do servidor? Creio que isso aumentará mais ainda o interesse de pessoas em jogar. Tópico aprovado e movido de Downloads > OTServ > OTServer Alternativo (ATS) para Notícias e Debates > OTServ > Exposições (Show Off)! Pois a área colocada estava incorreta. E também seu tópico será considerado como Show-Off (Exposição). Caso tenha interesse em recrutamento, crie outro tópico na área correta para isso. Edite o título do tópico e o tópico para ficar coerente com Show-Off. Você terá 3 dias de limite para realizar as alterações exigidas, caso contrário o tópico será editado pela equipe para ficar de acordo com as regras.
  10. Yan Oliveira

    Erro Gym System

    Qual é o erro que da no console?
  11. Tópico movido de Suporte > OTServ > Scripts para Pedidos > OTServ > Scripts. Fique atento às regras do fórum.
  12. Então amigo, mas no caso do script que fiz para você ai ele mostra mensagem da life e mana. Não era isso que você queria? Os dois juntos sendo exibidos?
  13. Parece que você registrou um evento de forma errada. Tem que ver o passo a passo que você fez para adicionar esse sistema, e ver se na parte de registrar colocou corretamente os scripts.
  14. Como o CID é um ponteiro, ele vai mudar sim quando o player relogar ou deslogar. Mas por que você precisa ou quer saber essa informação? Essa informação não terá impacto no script que fiz para você, só dependerá do player ficar online.
  15. Seu servidor não tem a função doRemovePlayersFromArea(). E você precisa postar o script também para ficar mais fácil de ajudar.
  16. Sim, tanto é que no Login.lua em baixo do onLogin() ele sempre recebe o tempo atual que ele logou pela função os.time(): setPlayerStorageValue(cid, 777777, os.time()) Como pode ver na linha acima, ele seta o tempo atual do login para a storage 777777. Então sempre que o cara logar, vai começar a contar a partir desse momento.
  17. Que bom que funcionou! Tem como sim! Troque o código do arquivo Teleporter.lua (arquivo lua do NPC) por esse: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function GetHourFromSeconds(hour) return 60 * 60 * hour end function GetTime(time_seconds) local out = {} local dateFormat = { {'hora', time_seconds / 60 / 60}, {'minuto', time_seconds / 60 % 60}, } for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if (v > -1) then table.insert(out, (k < #dateFormat and '' or ' and ') .. v .. '' .. (v <= 1 and t[1] or t[1].."s")) end end if tonumber(dateFormat[1][2]) == 0 and tonumber(dateFormat[2][2]) == 0 then return "segundos" end return table.concat(out) end 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 -- msg = string.lower(msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local position = {x= 1500, y= 1500, z= 7} -- POSIÇÃO PARA ONDE SERÁ TELEPORTADO local tempo_minimo = 8 -- QUANTIDADE DE HORAS QUE SERÁ NECESSÁRIO ESTAR ONLINE PARA SER TELEPORTADO local local_name = 'Village' -- NOME DO LOCAL OU PARA ONDE SERÁ TELEPORTADO local storage_time = 777777 -- STORAGE QUE ARMAZENA O TEMPO ONLINE DO PLAYER local level = 100 -- LEVEL MÍNIMO PARA TELEPORTAR local effect = true -- true PARA TER EFEITO E false SEM EFEITO AO TELEPORTAR local effect_id = 25 -- ID DO EFEITO AO TELEPORTAR ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then selfSay("If you want to teleport to {" .. local_name .. "} you need to be at least {" .. tempo_minimo .. "} hour(s) online. Are you online the enough time to be teleported?", cid) talkState[talkUser] = 1 elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if getPlayerLevel(cid) >= level then if (getPlayerStorageValue(cid, storage_time) + GetHourFromSeconds(tempo_minimo)) <= os.time() then selfSay("Good journey!", cid) doTeleportThing(cid, position) if effect then doSendMagicEffect(getThingPos(cid), effect_id) end else selfSay("Only is possible to teleport if you are online at least " .. tempo_minimo .. " hours. You are online " .. GetTime(getPlayerStorageValue(cid, storage_time)) .. ".", cid) end else selfSay("You need to be at least level " .. level .. " to teleport.", cid) end talkState[talkUser] = 0 return true elseif (msgcontains(msg, 'no') or msgcontains(msg, 'não')) and talkState[talkUser] == 1 then selfSay("Ok, goodbye!", cid) talkState[talkUser] = 0 return true else selfSay("I didn't understand what you said", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Na variável level você coloca o nível mínimo, na variável effect mude para false caso não queira efeito ao teleportar e na variável effect_id coloque o id do efeito que quer ao teleportar caso opte pelo efeito. Também precisa ajustar os valores das variáveis que você tinha colocado, no caso da posição e nome do lugar. De resto não precisa alterar mais nada, só colocar o tempo em horas que quer na variável tempo_minimo.
  18. Pode ser que o seu server trabalhe somente com a pasta scripts. Manda uma print das pastas que fica dentro de Data, onde fica as pastas Actions, Creaturescripts, Globalevents e etc. Preciso entender como está a estrutura de diretório do seu servidor.
  19. Pelo que entendi a partir do momento que o player tiver X horas online ele pode ser teleportado quantas vezes quiser certo? Vamos lá! Primeiro, vá em Data/Creaturescripts/Scripts e abra o arquivo login.lua e embaixo da função onLogin() coloque essa linha: setPlayerStorageValue(cid, 777777, os.time()) Agora vá em Data/Npc e crie um arquivo XML chamado Teleporter.xml (ou o nome que achar melhor) e adicione o código dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Telep" script="Teleporter.lua" walkinterval="4000" floorchange="0" level="1" maglevel="1"> <health now="150" max="150"/> <look type="1421" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|! Would you like to be teleported? Say {help} or {ajuda} for more informations."/> </parameters> </npc> Agora abra a pasta Scripts dentro da pasta NPC e crie um arquivo chamado Teleporter.lua e adicione o código dentro: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function GetHourFromSeconds(hour) return 60 * 60 * hour end 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 -- msg = string.lower(msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local position = {x= 1500, y= 1500, z= 7} -- POSIÇÃO PARA ONDE SERÁ TELEPORTADO local tempo_minimo = 1 -- QUANTIDADE DE HORAS QUE SERÁ NECESSÁRIO ESTAR ONLINE PARA SER TELEPORTADO local local_name = 'Village' -- NOME DO LOCAL OU PARA ONDE SERÁ TELEPORTADO local storage_time = 777777 -- STORAGE QUE ARMAZENA O TEMPO ONLINE DO PLAYER ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then selfSay("If you want to teleport to {" .. local_name .. "} you need to be at least {" .. tempo_minimo .. "} hour(s) online. Are you online the enough time to be teleported?", cid) talkState[talkUser] = 1 elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if (getPlayerStorageValue(cid, storage_time) + GetHourFromSeconds(tempo_minimo)) <= os.time() then selfSay("Good journey!", cid) doTeleportThing(cid, position) else selfSay("You aren't online enough time to be teleported", cid) end talkState[talkUser] = 0 return true elseif (msgcontains(msg, 'no') or msgcontains(msg, 'não')) and talkState[talkUser] == 1 then selfSay("Ok, goodbye!", cid) talkState[talkUser] = 0 return true else selfSay("I didn't understand what you said", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora vá na pasta Data/Globalevents/Scripts e crie um arquivo chamado ResetTeleportTime.lua e adicione o código dentro: local storage = 777777 -- STORAGE QUE ARMAZENA O TEMPO ONLINE DO PLAYER function onTimer() for _, player in pairs(getPlayersOnline()) do if getPlayerStorageValue(player, storage) > 0 then setPlayerStorageValue(player, storage, 0) end end return true end E por fim, volte na pasta Data/Globalevents e abra o arquivo globalevents.xml e adicione o seguinte código dentro: <globalevent name="reset_teleport" time="00:00" event="script" value="ResetTeleportTime.lua"/> Eu deixei todas as variáveis comentadas, só alterar os valores desejado nelas. Teste e me avise se der algum problema.
  20. Pode ser as duas coisas que os amigos acima falaram, tanto nas propriedades da sprite/item que pode estar faltando o atributo de equipar, quanto o id do pokemon na tabela de icones. Precisa ver essas duas questões.
  21. Essa spell que vai mudar a outfit durante a animação da spell para 329 e depois voltar ao normal, está funcionando normal e você só quer que adicione a outfit? Sobre sua dúvida ficou um pouco confuso, mas que efeitos serão? Todos esses efeitos são em uma única spell? Precisa deixar mais claro o funcionamento da spell e os id. Poste o script da spell do seu primeiro pedido.
  22. Que bom que deu certo! A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico. Tópico movido de Suporte > OTServ > Scripts para Suporte > OTServ > Resolvidos.
  23. Substitua o código por este: local message_color = 25 -- COR DA MENSAGEM function getSpectators(fromPos, toPos) -- Function made by Vodkart local players = {} for _, pid in ipairs(getSpectators()) do if isInRange(getSpectators(pid), fromPos, toPos) then table.insert(players, pid) end end return players end -- Do not remove the credits ---- [MOVEEVENT] Limite de player por sala ---- Developed by Rigby ---- Especially for the Xtibia.com -- function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local config = { [2233] = {area = getPlayersInArea({x = 696, y = 971, z = 11}, {x = 821, y = 1063, z = 12}), amountOfPlayers = 4, teleport = Position(721, 1003, 11)}, [2234] = {area = getPlayersInArea({x = 725, y = 1069, z = 11}, {x = 895, y = 1126, z = 12}), amountOfPlayers = 4, teleport = Position(685, 991, 11)}, [2235] = {area = getPlayersInArea({x = 448, y = 192, z = 11}, {x = 523, y = 230, z = 12}), amountOfPlayers = 4, teleport = Position(464, 202, 11)}, } if config[item.actionid] then if #config[item.actionid].area < config[item.actionid].amountOfPlayers then cid:teleportTo(config[item.actionid].teleport) cid:sendTextMessage(message_color, "Welcome") else cid:sendTextMessage(message_color, "The room already reached its limit " .. config[item.actionid].amountOfPlayers .. " player 's wait someone out.") cid:teleportTo(fromPosition) end end return true end Também criei uma variável para armazenar a cor do texto para ficar mais fácil caso queira mudar. Teste e me informe se der algum problema.
  24. Tópico movido de Downloads > OTServ > OTServer Alternativo (ATS) para Pedidos > OTServ > Datapacks. Fique atento às regras do fórum.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...