Ir para conteúdo

Vabrindox

Membro
  • Registro em

  • Última visita

  1. Certo eu como gosto de servidores alternativos, costumo sempre entrar nesses servers diferentes mas preciso dizer algumas coisas sobre o inicio desse ot. A linha de quest inicial te manda até uma missão para fazer 4 pontos em um local de rats, que no inicio fiquei perdido para entender o que precisava ser feito e acabei não conseguindo fazer. Vendo que tinha passado o limite de tentativas (não prestei muita atenção mas acho que era só no outro dia), até pq ele me teletransportava as vezes do nada, eu segui para o grind de monstros para upar e tasks tbm. Fiquei um bom tempo matando os monstros e achando que minha magia ia ser liberada em algum level mas no lv 3 (depois de ter matado uns 300 fk monstros) descobri sozinho olhando os pontos do mapa que existia um local para liberar spells... Ae vamos la... as armas iniciais possuem durabilidades (1000 sendo gasta 1 por hit) com isso, supondo que vc gaste 6 hits em 1 monstro, você iria matar cerca de 166 monstros, desses 166 monstros vc n conhece bem o jogo e ficou em areas muito iniciais e com baixo rendimento de gold e juntou 20-30, ae vc pega outra arma de 1000 de durabilidade dada pelo jogo e faz a msm coisa em outro lugar porem rats por exemplo vc não consegue tankar 2/3 e precisa ficar matando de 1 em 1 e juntou mais 50 gold. Agora vc libera a magia e gasta seila 50 e te sobra 20-30 para gastar com reparo da durabilidade sendo que custa 65 golds...parabens agora vc ta sem arma, sem nada para atacar e n tem o que fazer a não ser criar outra conta e pegar arma free ou achar uma no chão. Conclusão, é uma ideia boa mas o inicio acaba sendo desgastante demais, até msm de uma certa forma difícil e muito grind para um simples lv 1, cada monstro te da 1 % de exp e msm no lv 3 a expectativa de melhora do personagem não é tão boa assim, tenho certeza que muitas pessoas devem parar nessa faixa de level simplesmente pq não chegou a nem desenvolver um aspecto interativo com o servidor que faça valer a pena o tempo dele ali, vc basicamente chega e já cai em um grind extenso e correndo contra o tempo da durabilidade da arma. Depois de ter pego o lv 3 eu certamente mudaria a minha forma de jogar visando outros locais, liberaria a spells mais cedo porém as pessoas que estão começando agora certamente vão encontrar o mesmo problema. Também não sei se o fato de eu n ter feito a quest dos rats possa ter afetado o rendimento do personagem. A questão é que só entrei para conhecer o servidor mesmo e se o inicio me desse aquela vontade de continuar eu certamente iria mas com todos esses pequenos perrengues que acabei passando, acabei achando melhor não continuar. Acredito que o server tenha potencial e eu n cheguei a ver nem 1% do que ele tem a oferecer, apenas estou relatando como foi minha passagem inicial pelo servidor. As sprites são boas, os sistemas são bons, existem alguns bugs como falar com o npc n me deixa mover o personagem e com isso preciso clicar no jogo com o mouse para voltar, clicar no mapa não funciona tão bem o personagem fica parando e acabei tendo um bug após uma morte que ficou o menu de escolha de personagens e modos do jogo na frente e precisei deslogar e entrar novamente.
  2. Vabrindox reagiu a uma resposta no tópico: OpenCoreMMO - Tibia 8.60 em C#!
  3. Essas dlls ficam na pasta junto com o executável do servidor. Provavelmente vc baixou o servidor e o anti virus bloqueou todas as dlls.
  4. Vai na pasta do otclient/data/things crie uma pasta chamada 854 e coloque o Tibia.spr e Tibia.dat dessa versão la. Outra coisa tbm que pode ser é que o oticlient não faz a leitura do seu spr e dat por ter protocolos diferentes por ser custom.
  5. local config = { itemid = {2471, 7730}, --IDs dos items, para aumentar só colocar repetir o padrao Ex: {2471, 7730, 2160}. --Edited by Zefz/Vabrindox drop_effect = false --Efeito que aparecerá em cima da corpse, OPCIONAL! Se não quiser, coloque false. } function examine(cid, position, corpse_id) if not isPlayer(cid) then return true end local corpse = getTileItemById(position, corpse_id).uid if corpse <= 1 or not isContainer(corpse) then return true end for slot = 0, getContainerSize(corpse) - 1 do local item = getContainerItem(corpse, slot) if item.uid <= 1 then return true end for i, listid in ipairs(config.itemid) do if item.itemid == listid then doBroadcastMessage("DROP MENSAGEM: O Jogador (" .. getCreatureName(cid) .. ") Dropou Golden Helmet.", 19) if config.drop_effect then doSendMagicEffect(position, config.drop_effect, cid) end end end end end function onKill(cid, target) if not isMonster(target) then return true end local corpse_id = getMonsterInfo(getCreatureName(target)).lookCorpse addEvent(examine, 2, cid, getThingPos(target), corpse_id) return true end Eu não testei mas tenta assim, la na config esta explicando como add mais itens.
  6. A partir do momento que criamos um interesse em aprender algo, dedicamos muito mais tempo e empenho nisso do que qualquer outra coisa, não pq somos forçados e sim pq realmente queremos! O restante é treinar diversas vezes e ir aprendendo com os erros e ver soluções criativas de outras pessoas tbm. Enfim esse seu erro hj serve para fazer vc n errar mais no futuro. Existem dezenas de tutoriais de todas as áreas de otserv, basta querer e se dedicar. Eu tbm aprendi a maioria das coisas sozinho mas jogo tíbia a uns 15 anos, assim como gosto de conhecer os servidores derivados, seja ele qual for, para sempre aprender cada vez mais.
  7. neighbourhood reagiu a uma resposta no tópico: Como eu coloco essa Door no meu ot?
  8. Qual tfs vc tá usando? Eu testei aqui e está 100% vc configurou as posições no script? E no remeres só troque o uniqueid que é a última opção e n actionid. local pos_frente = {x=99, y=122, z=7} local pos_atras = {x=99, y=124, z=7} local lvMin = 50 local horizontal = true local vertical = false
  9. actions/tpdoor.lua quer dizer que dentro de Scripts tem uma pasta chamada actions e dentro dela tem o lua com o nome tpdoor, vc pode sim tirar o actions caso n tenha essa pasta. Em relação ao conflito vc precisa colocar na porta pelo remeres o mesmo número que vc alterou na tag ou seja altere no map editor(remeres) coloque um valor em uniqueid e use o mesmo número na tags, pois assim ele identifica que é aquela e somente aquela porta. Pode fazer para outras tbm mas teria que ter um uniqueid diferente para cada. Lembrando que fiz baseado na versão do tfs para 8.6
  10. Coloca essa tag em actions e na porta pelo remeres coloque o unique id que esta ae, pode mudar se quiser: <action uniqueid="30015" event="script" value="actions/tpdoor.lua"/> e no script: Vc escolhe se a porta esta horizontal ou vertical: colocando true ou false (coloquei isso para evitar bugs) Coloque a posição que fica atras da porta e na frente da porta E tbm o lv min function onUse(cid, item, fromPosition, itemEx, toPosition) local pos_frente = {x=99, y=122, z=7} local pos_atras = {x=99, y=124, z=7} local lvMin = 50 local horizontal = true local vertical = false if getPlayerLevel(cid) >= lvMin then if horizontal then if CheckPosHorizontal(cid,pos_frente) then doTeleportThing(cid, pos_atras, true) doSendMagicEffect(getPlayerPosition(cid), 12) elseif CheckPosHorizontal(cid,pos_atras) then doTeleportThing(cid, pos_frente, true) doSendMagicEffect(getPlayerPosition(cid), 12) end end if vertical then if CheckPosVertical(cid,pos_frente) then doTeleportThing(cid, pos_atras, true) doSendMagicEffect(getPlayerPosition(cid), 12) elseif CheckPosVertical(cid,pos_atras) then doTeleportThing(cid, pos_frente, true) doSendMagicEffect(getPlayerPosition(cid), 12) end end end return true end function CheckPosHorizontal(cid,pos) if (getPlayerPosition(cid).x == pos.x or getPlayerPosition(cid).x == pos.x+1 or getPlayerPosition(cid).x == pos.x-1) and getPlayerPosition(cid).y == pos.y then return true end end function CheckPosVertical(cid,pos) if (getPlayerPosition(cid).y == pos.y or getPlayerPosition(cid).y == pos.y+1 or getPlayerPosition(cid).y == pos.y-1) and getPlayerPosition(cid).x == pos.x then return true end end Lembrando que n sei se existe alguma maneira mais fácil de se fazer isso ae mas a minha funciona tbm
  11. Engraçado eu já tive um problema parecido, não sei se é igual ao seu, eu não conseguia entrar com o IP fixo no servidor mas entrava pelo 127.0.0.1 msm com o IP fixo no config.lua e dava certo, os outros players entravam pelo IP normalmente, testa ae. Caso ngm consiga entrar no seu server, o problema provavelmente é na liberação das portas no modem ou firewall.
  12. na pasta npc criar Historiador.xml ou entao outro nome de sua preferencia se for trocar tem que trocar no xml tbm, a msg inicial pode ser trocada aqui! <?xml version="1.0" encoding="UTF-8"?> <npc name="Historiador" script="historiador.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola Player voce gostaria de saber da {historia}?"/> </parameters> </npc> em scripts criar historiador.lua 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) -- By Vabrindox if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'historia') then -- By Vabrindox selfSay('Essa e a segunda msg que eu estou falando, para saber mais fale {Vabrindox}!', cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'vabrindox') then selfSay('O vabrindox faz scripts noobs para os noobs, haha!', cid) talkState[talkUser] = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  13. function onStepIn(cid, item, position, fromPosition) local id,amount = 2160,1 if isPlayer(cid) and getPlayerItemCount(cid, id) < amount then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, 25, "Voce so pode passar se tiver " .. amount .. " " .. getItemNameById(id) .. ".") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end return true end
  14. Gnius reagiu a uma resposta no tópico: [AJUDA] Como baixar o EXP da pesca
  15. Tenta isso ae e vê se da erro Tem esse link tbm caso n funcione:
  16. Igorzerah reagiu a uma resposta no tópico: [AJUDA] You cannot use this object.
  17. Igorzerah reagiu a uma resposta no tópico: Slot no Item
  18. Vabrindox postou uma resposta no tópico em Suporte Tibia OTServer
    Ve se é isso que vc quer: local tempo = 10 local time = os.time() local storage = 17900 function CountDown(cid, segundos)-- By Vabrindox if segundos == 0 then return false else doPlayerSendCancel(cid, "Ainda restam: " .. segundos .." segundos.") doSendAnimatedText(getPlayerPosition(cid),'.' ..segundos.. '.',18) return addEvent(CountDown, 1000, cid, segundos-1) end end function onCastSpell(cid, var) local get_stg_value = getPlayerStorageValue(cid, storage) local segundos = getPlayerStorageValue(cid, storage) - time if get_stg_value <= time then setPlayerStorageValue(cid, storage, time + tempo) doPlayerSendTextMessage(cid, 27, "Usou") CountDown(cid, tempo) end end @Edit melhorei o script pq tava meio feio antes
  19. Se for sem item especifico para helmet, armor e etc, vc pode ir colocando por ex: and getPlayerSlotItem(cid, 1).itemid ~= 0 se o helmet for diferente de id 0 ele continua o script se não ele te teleporta de volta ao local anterior. if getPlayerSlotItem(cid, 2).itemid == id_item and getPlayerSlotItem(cid, 1).itemid ~= 0 and getPlayerSlotItem(cid, 4).itemid ~= 0 then e assim por diante, porem se for com item especifico vc vai precisar criar varias variaveis diferentes, por ex: local id_item2 = 2285 local id_item3 = 2345 e iria se aplicar assim: if getPlayerSlotItem(cid, 2).itemid == id_item and getPlayerSlotItem(cid, 1).itemid == id_item2 then teria que fazer de cada um tbm
  20. Vabrindox postou uma resposta no tópico em Suporte Tibia OTServer
    Não adianta pq vc só estaria fazendo um texto atoa sem poder puxar os atributos configurados ou então os slots, não tem nem o que adiantar.

Informação Importante

Confirmação de Termo