Ir para conteúdo

Snowsz

Héroi
  • Registro em

  • Última visita

Tudo que Snowsz postou

  1. Snowsz postou uma resposta no tópico em Suporte Tibia OTServer
    Tenta assim:
  2. Snowsz postou uma resposta no tópico em Suporte Tibia OTServer
    É o seguinte, em getCreatureOutfit(uid), ele retorna uma tabela, essa tabela pode-se verificar com um for, mas, como você já sabe o que quer pegar daquela tabela, basta por o parâmetro, por exemplo, você usou a função sem pegar o parâmetro de id da outfit, para fazer a checagem, não sei se deu para entender mas: Errado: if getCreatureOutfit(cid) == 10 then Certo: if getCreatureOutfit(cid).lookType == 10 then Looktype seria o looktype da criatura, no caso, o id.
  3. Como eu disse, procure la nas sources, não tenho de cór, mas eu vi, ainda acho que era no onGainExperience
  4. Sim, procure nas suas sources, se não me engano a função é onGainExperiencie, procura isso nas sources do seu servidor, eu não tenho certeza mas, o calculo da exp deve estar lá, da uma olhada
  5. Eu percebi uns erros só agora... Troca tudo por isso: Tag: <instant name="Fire Attack" words="exori flame" lvl="10" mana="20" prem="1" range="3" needtarget="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="exori flame.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5"/> <vocation id="6"/> </instant> Script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 15) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) local target = getCreatureTarget(cid) local effect = 3 doSendDistanceShoot({x = getThingPos(target).x-6, y = getThingPos(target).y-6,z = getThingPos(target).z}, getThingPos(target), effect) return doCombat( cid, combat, var) end
  6. aqui esta o scrip da pokedex: Espero poder contar com ajuda de vcs para colocar esse servidor on obrigado. Acho que assim funciona:
  7. Cara, seria legal você prestar mais atenção onde posta, o lugar certo seria a área de spells, pois lá também se encaixam runas, pesquise melhor da próxima vez... Sobre o tutorial, achei legal
  8. Bom, eu fiz desse jeito, espero que goste... Tag: <instant name="Fire Attack" words="exori flame" lvl="10" mana="20" prem="1" range="3" casterTargetOrDirection="0" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="exori flame.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5"/> <vocation id="6"/> </instant> Você pode trocar os nomes, as vocações, basicamente tudo, menos casterTargetOrDirection="0", deixe 0 mesmo. Script: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 15) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) local target = getCreatureTarget(cid) local effect = 3 doSendDistanceShoot({x = getThingPos(target).x-9, y = getThingPos(target).y-12,z = getThingPos(target).z}, getThingPos(target), effect) return addEvent(doCombat, 500, cid, combat, var) end Onde tem local effect 3, é o efeito de distance, como você diz "/x".
  9. Bom, sempre o pior de pensar é a criatividade, algo que eu não tenho, posso pedir ajuda para um primo meu aqui, ele tem boa cabeça, vou ver se vai dar certo...
  10. Eu só não irei participar por falta de ideias, e estou meio ocupado também, bom, de resto, isso vai ser ótimo, quero ver o resultado
  11. Lhe peço uma coisa, o evento com 500 de intervalo, aumente para 2000, o que tiver 1, pelo menos, aumente para 200, é o suficiente, irá diminuir muito! O gasto da máquina, o server save, não coloque de hora em hora, mas, pelo menos, no máximo 30 minutos, é algo que se deve conservar, se der rollback, os players perderão cerca 1 hora de jogo!
  12. Amigo, não existe esse "Skills por rate stage", simplesmente, vá no seu vocations.xml, lá estará a configuração: <skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/> Seu vocations.xml deve ter isso em cada vocação, se quiser mais rápido up, abaixe o valor, por exemplo: Antes: distance="1.8" Depois: distance="1.0" Isso vai deixar o player upar este skill mais rapidamente, porém, quanto menor, menos dano ele dará, mas, quando o skill estiver alto novamente será um hit razoável, já que quer deixar seus skills difíceis, aumente o valor, lembre-se, quanto maior, menos rápido, quanto menor, mais rápido. Obs: Faça em todas as vocações. Obs²: Respeite as vocações como knight, não aumente muito os skills, aumente consideravelmente, se não, ficará muito difícil upar o skill como sword para o knight, e magic level para druids por exemplo.
  13. O otservlist.org tem um tempo(delay) para dar refresh, ou seja, para atualizar seus servidores etc... Quantidade de players... Então, só ter paciência amigo
  14. Na verdade isso ajuda bastante, principalmente deletar houses inativas, pois, quando o server inicia ele sincroniza as houses, e os players, mexendo assim na db, uma boa alternativa é dar uma limpa na db mesmo, mas, antes, faça backup, nunca confie 100% em algo. poko, verifique se é também quando da save que o servidor cai.
  15. Amigo, lembre que o item deve ser multi use, ou seja, clica com o botão direito nele, e ele vira uma seta para você usar em algo.
  16. Não interfere, eu testei, ele só muda a direção do olhar, não influencia em nada
  17. Ele pediu para adicionar com o player offline, não para entregar só com ele online.
  18. Ele fez corretamente, usa a chave(item x) no baú(item y) e ganha um item(z).
  19. Se não me engano, assim deve estar correto, mude ou adicione mais vocações em 1,2,3,4 para as vocações que podem usar isto. function onAttack(cid, target) local vocations = {1, 2, 3, 4} if isCreature(cid) and isCreature(target) and isInArray(vocations, getPlayerVocation(cid)) then dir = getDirectionTo(getCreaturePosition(cid), getCreaturePosition(target)) doCreatureSetLookDirection(cid, dir) end return true end
  20. Estou pensando em criar um outro, diferente deste, mas, referido a otclient, obrigado pela sugestão.
  21. Na verdade estava na área correta, pois, não consigo criar tópico em MODs de clients.
  22. Amigo, tenta assim: if not getPlayerStorageValue(cid, "sennin") >= 1 then return true end
  23. Testado em: TFS 0.4 8.60. Otclient 0.6.3. Descrição: O player só poderá entrar no seu otserver com este mod, caso contrário, levará um kick bonito Bom galera, criei este mod para ajudar um membro do fórum que, quer que seu server só seja acessado com um otclient dele, então, vamos ao mod. Vá na pasta do seu otclient e entre na pasta mods, lá, crie outra pasta, chamada exclusiveclient, nesta pasta, crie um arquivo com o nome exclusiveclient.lua e coloque isso dentro: function init() connect(g_game, 'onTextMessage', serverComunication) connect(g_game, { onGameEnd = hide } ) end function terminate() disconnect(g_game, { onGameEnd = hide }) disconnect(g_game, 'onTextMessage', serverComunication) end function serverComunication(mode, text) if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("$@$ExclusiveClient") then g_game.talk("/$@$exclusive$@$") end end end Feche e salve o arquivo. Ainda na mesma pasta, crie um novo arquivo chamado, exclusiveclient.otmod (lembrem-se da extensão sempre, exemplo: login>.lua<) No exclusiveclient.otmod coloque isto dentro: Module name: Exclusive Client description: author: Snowsz website: autoload: true autoload-priority: 1000 scripts: - exclusiveclient.lua @onLoad: init() @onUnload: terminate() Após isso, feche e salve o arquivo, não é só isso, agora iremos mexer no seu servidor, vá na pasta data/creaturescripts/scripts e abra o login.lua, coloque isso antes do ultimo return true. addEvent(doPlayerSendCancel, 100, cid, "$@$ExclusiveClient$@$") addEvent(doPlayerSendCancel, 200, cid, " ") addEvent(function() if getPlayerStorageValue(cid, "exclusive") <= 0 then doRemoveCreature(cid) end end, 500) Após isso, feche e salve o arquivo, agora, crie um novo arquivo nesta mesma pasta, chamado exclusivelogout.lua, nele coloque isto dentro: function onLogout(cid) setPlayerStorageValue(cid, "exclusive", -1) return true end Feche e salve o arquivo, agora, vá em data/creaturescripts/creaturescripts.xml e coloque esta tag: <event type="logout" name="ExlusiveLogout" event="script" value="exclusivelogout.lua"/> Após isso, vá em data/talkactions/scripts e crie um arquivo chamado exclusive.lua, coloque isso dentro: function onSay(cid, words, param) setPlayerStorageValue(cid, "exclusive", 1) return true end Feche e salve o arquivo, vá em data/talkactions/talkactions.xml e coloque esta tag: <talkaction log="no" access="0" words="/$@$exclusive$@$" event="script" value="exclusive.lua"/> Feche e salve o arquivo, pronto, sistema instalado, espero que gostem Créditos: Snowsz
  24. Se não me engano tem duas formas de fazer isso, a primeira opcode, instale na source do seu servidor, caso não queria isso, da para usar uma talkaction, quando o player logar, o server manda uma mensagem, o otclient recebe, e o player emite uma talkaction, com essa talkaction ele fica com tal storage até deslogar, e assim fica fazendo, quando ele não estiver com esta storage, ele levará kick em alguns segundos. @Edit Bom, fiz o tutorial, espero que seja aprovado, por em quanto o link será este: http://www.tibiaking.com/forum/topic/49682-otclient-exclusivo-para-seu-servidor/
  25. Não reviva o tópico é contra as regras, sempre que precisar, cria um novo tópico, é até melhor

Informação Importante

Confirmação de Termo