Ir para conteúdo

fitaisolante

Banidos
  • Total de itens

    152
  • Registro em

  • Última visita

Tudo que fitaisolante postou

  1. Deu um trabalhinho pensar na lógica rsrs Mas acho que está correto... Em actions/scripts crie um arquivo lua com um nome qualquer e coloque: function rem() doRemoveCreature(cid) return db.executeQuery("UPDATE players SET maglevel = maglevel - 10 WHERE players_id = " .. getPlayerGUID(cid) .. ") end function onUse(cid, item) addEvent(rem, 2*1000, cid) return doPlayerAddSkill(cid, magic, 10, true) end Em actions.xml: <action itemid="id do item" event="script" value="nome_do_arquivo.lua" />
  2. acho que você não entendeu rrsrs.. Qual é o executavel que você usa para iniciar o servidor?
  3. Depende, qual é o seu distro?
  4. function onUse(cid, item, frompos, item2, topos) if getCreatureCondition(cid, CONDITION_INFIGHT) == true then return doPlayerSendCancel(cid, "Nao pode usar esse item com battle!") end if not getTilePzInfo(getPlayerPosition(cid)) return doPlayerSendCancel(cid, "Nao pode usar esse fora da protection zone.") end pos = {x=549, y=14, z=7} doPlayerSendCancel(cid,"Abra o bau para se tornar vip!") doTeleportThing(cid,pos) doRemoveItem(item.uid,1) end return true end function onUse(cid, item, frompos, item2, topos) if getCreatureCondition(cid, CONDITION_INFIGHT) == true then return doPlayerSendCancel(cid, "Nao pode usar esse item com battle!") end if not getTilePzInfo(getPlayerPosition(cid)) return doPlayerSendCancel(cid, "Nao pode usar esse fora da protection zone.") end pos = {x=528, y=14, z=7} doPlayerSendCancel(cid,"Abra o bau para se tornar vip!") doTeleportThing(cid,pos) doRemoveItem(item.uid,1) ​end return true end
  5. @OriGM Tente em outro char, vê se não tem algo errado.. Porque o script funciona assim, quando executado, ele lê de cima para baixo, e a minha checagem fica a cima da checagem da munição, ou seja, ele já passou por ela..
  6. @ProfissãoPK, nunca irá dar certo o toposition, fromposition.. Você tem que informar de que posição a posição.. O código não entende isso. ________________________________________________________________ @OriGM testa o meu lá..
  7. ué que estranho.. tenta assim: function onUse(cid, item, fromPosition, itemEx, toPosition) local need_target = true -- Precisa de target? (true / false) Se false, o sistema utilizará o Use With. local bullet_id = 2160 -- ID da munição local shots_amount = 1 -- Tiros por vez local exhaustion_time = 1 -- Segundos de exhaustion local exhaust = 19301 -- Storage da exhaustion local dmg_min, dmg_max = -100, -200 -- Dano mínimo, dano máximo local shot_effect = 10 -- Efeito do tiro local shot_distance_effect = 1 -- Distance effect do tiro local damage_type = COMBAT_PHYSICALDAMAGE -- Tipo de dano local shots_delay = 200 -- Delay dos tiros (em milissegundos) local distance_target = 3 if need_target then if getCreatureTarget(cid) <= 0 then return doPlayerSendCancel(cid, "Selecione um alvo primeiro.") elseif getDistanceBetween(getPlayerPosition(cid), getPlayerPosition(getCreatureTarget(cid))) > distance_target then return doPlayerSendCancel(cid, "Você está longe do alvo.") elseif getPlayerItemCount(cid, bullet_id) < shots_amount then return doPlayerSendCancel(cid, "Você não possui munição.") elseif exhaustion.check(cid, exhaust) then return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.") end exhaustion.set(cid, exhaust, exhaustion_time) for i = 0, shots_amount-1 do addEvent(function() if getCreatureTarget(cid) <= 0 then return true elseif getPlayerItemCount(cid, bullet_id) < 1 then return doPlayerSendCancel(cid, "Você não possui munição.") end doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(getCreatureTarget(cid)), shot_distance_effect) doTargetCombatHealth(cid, getCreatureTarget(cid), damage_type, dmg_min, dmg_max, shot_effect) doPlayerRemoveItem(cid, bullet_id, 1) end, shots_delay*i) end else if not isCreature(itemEx.uid) then return doPlayerSendCancel(cid, "Selecione um alvo primeiro.") elseif getPlayerItemCount(cid, bullet_id) < shots_amount then return doPlayerSendCancel(cid, "Você não possui munição.") elseif exhaustion.check(cid, exhaust) then return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.") end exhaustion.set(cid, exhaust, exhaustion_time) for i = 0, shots_amount-1 do addEvent(function() if not isCreature(itemEx.uid) then return true elseif getPlayerItemCount(cid, bullet_id) < 1 then return doPlayerSendCancel(cid, "Você não possui munição.") end doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(itemEx.uid), shot_distance_effect) doTargetCombatHealth(cid, itemEx.uid, damage_type, dmg_min, dmg_max, shot_effect) doPlayerRemoveItem(cid, bullet_id, 1) end, shots_delay*i) end end return true end
  8. mals kk.. function onUse(cid, item, fromPosition, itemEx, toPosition) local need_target = true -- Precisa de target? (true / false) Se false, o sistema utilizará o Use With. local bullet_id = 2160 -- ID da munição local shots_amount = 1 -- Tiros por vez local exhaustion_time = 1 -- Segundos de exhaustion local exhaust = 19301 -- Storage da exhaustion local dmg_min, dmg_max = -100, -200 -- Dano mínimo, dano máximo local shot_effect = 10 -- Efeito do tiro local shot_distance_effect = 1 -- Distance effect do tiro local damage_type = COMBAT_PHYSICALDAMAGE -- Tipo de dano local shots_delay = 200 -- Delay dos tiros (em milissegundos) local distance_target = 3 if need_target then if getCreatureTarget(cid) <= 0 then return doPlayerSendCancel(cid, "Selecione um alvo primeiro.") elseif getPlayerItemCount(cid, bullet_id) < shots_amount then return doPlayerSendCancel(cid, "Você não possui munição.") elseif exhaustion.check(cid, exhaust) then return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.") end if getDistanceBetween(cid, getPlayerPosition(cid), getPlayerPosition(getCreatureTarget(cid))) > distance_target then return true end exhaustion.set(cid, exhaust, exhaustion_time) for i = 0, shots_amount-1 do addEvent(function() if getCreatureTarget(cid) <= 0 then return true elseif getPlayerItemCount(cid, bullet_id) < 1 then return doPlayerSendCancel(cid, "Você não possui munição.") end doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(getCreatureTarget(cid)), shot_distance_effect) doTargetCombatHealth(cid, getCreatureTarget(cid), damage_type, dmg_min, dmg_max, shot_effect) doPlayerRemoveItem(cid, bullet_id, 1) end, shots_delay*i) end else if not isCreature(itemEx.uid) then return doPlayerSendCancel(cid, "Selecione um alvo primeiro.") elseif getPlayerItemCount(cid, bullet_id) < shots_amount then return doPlayerSendCancel(cid, "Você não possui munição.") elseif exhaustion.check(cid, exhaust) then return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.") end exhaustion.set(cid, exhaust, exhaustion_time) for i = 0, shots_amount-1 do addEvent(function() if not isCreature(itemEx.uid) then return true elseif getPlayerItemCount(cid, bullet_id) < 1 then return doPlayerSendCancel(cid, "Você não possui munição.") end doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(itemEx.uid), shot_distance_effect) doTargetCombatHealth(cid, itemEx.uid, damage_type, dmg_min, dmg_max, shot_effect) doPlayerRemoveItem(cid, bullet_id, 1) end, shots_delay*i) end end return true end
  9. ----edit----- não vi que vc postou, profissão pk, foi no mesmo momento que eu postei, e acho que está incorreto o seu código. ----edit----- Testa isso local distance_target = 3 é a distancia. function onUse(cid, item, fromPosition, itemEx, toPosition) local need_target = true -- Precisa de target? (true / false) Se false, o sistema utilizará o Use With. local bullet_id = 2160 -- ID da munição local shots_amount = 1 -- Tiros por vez local exhaustion_time = 1 -- Segundos de exhaustion local exhaust = 19301 -- Storage da exhaustion local dmg_min, dmg_max = -100, -200 -- Dano mínimo, dano máximo local shot_effect = 10 -- Efeito do tiro local shot_distance_effect = 1 -- Distance effect do tiro local damage_type = COMBAT_PHYSICALDAMAGE -- Tipo de dano local shots_delay = 200 -- Delay dos tiros (em milissegundos) local distance_target = 3 if need_target then if getCreatureTarget(cid) <= 0 then return doPlayerSendCancel(cid, "Selecione um alvo primeiro.") elseif getPlayerItemCount(cid, bullet_id) < shots_amount then return doPlayerSendCancel(cid, "Você não possui munição.") elseif exhaustion.check(cid, exhaust) then return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.") end if getDistanceBetween(getPlayerPosition(cid), getPlayerPosition((getCreatureTarget(cid))) > distance_target then return true end exhaustion.set(cid, exhaust, exhaustion_time) for i = 0, shots_amount-1 do addEvent(function() if getCreatureTarget(cid) <= 0 then return true elseif getPlayerItemCount(cid, bullet_id) < 1 then return doPlayerSendCancel(cid, "Você não possui munição.") end doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(getCreatureTarget(cid)), shot_distance_effect) doTargetCombatHealth(cid, getCreatureTarget(cid), damage_type, dmg_min, dmg_max, shot_effect) doPlayerRemoveItem(cid, bullet_id, 1) end, shots_delay*i) end else if not isCreature(itemEx.uid) then return doPlayerSendCancel(cid, "Selecione um alvo primeiro.") elseif getPlayerItemCount(cid, bullet_id) < shots_amount then return doPlayerSendCancel(cid, "Você não possui munição.") elseif exhaustion.check(cid, exhaust) then return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.") end exhaustion.set(cid, exhaust, exhaustion_time) for i = 0, shots_amount-1 do addEvent(function() if not isCreature(itemEx.uid) then return true elseif getPlayerItemCount(cid, bullet_id) < 1 then return doPlayerSendCancel(cid, "Você não possui munição.") end doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(itemEx.uid), shot_distance_effect) doTargetCombatHealth(cid, itemEx.uid, damage_type, dmg_min, dmg_max, shot_effect) doPlayerRemoveItem(cid, bullet_id, 1) end, shots_delay*i) end end return true end
  10. function onSay(cid, words, param, channel) param = param or "" if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local pid = getPlayerByNameWildcard(param) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player ".. param .." not found.") return true end doShowTextDialog(cid, 2175, "Informações Pessoais\n" .. "\nNome: " .. getCreatureName(pid) .. "\nHealth Max: " .. getCreatureMaxHealth(pid) "\nHealth: " .. getCreatureHealth(pid) "\nSexo: " .. (getPlayerSex(pid) == 0 and "Feminino" or "Masculino") .. "\nLevel: " .. getPlayerLevel(pid) .. "\nChakra: " .. getPlayerMagLevel(pid) .. "\nVIP: " .. (getCreatureStorage(pid, 13540) > os.time() and "Sim" or "Não") .. "\nSaldo Bancário: " .. getPlayerBalance(pid) .. "\n\nAtributos\n" .. "\nTaijutsu - " .. getPlayerSkillLevel(pid, 0) .. "\nNinjutsu - " .. getPlayerSkillLevel(pid, 1) .. "\nGenjutsu - " .. getPlayerSkillLevel(pid, 2) .. "\nKenjutsu - " .. getPlayerSkillLevel(pid, 3) .. "\nDistance - " .. getPlayerSkillLevel(pid, 4) .. "\nDefense - " .. getPlayerSkillLevel(pid, 5) .. "\nFishing - " .. getPlayerSkillLevel(pid, 6) .. "\n\nInformações da Tribo\n" .. "\nNome: " .. getPlayerGuildName(pid) .. "\nPosto: " .. getPlayerGuildRank(pid) .. "\nNível: " .. getPlayerGuildLevel(pid)) return true end
  11. Omega você está equivocado... @DuvidasOT É só você colocar no bau, o actionID 2000, o uniqueID seria a storage, então coloque um numero que você quiser, de preferencia um de 5 digitos, e na parte preta coloque os itens que quer que ganhe.
  12. Explique-me, o que você quer que faça essa chest?
  13. Já está de volta!
  14. Recruta-se mapper e scripter voluntários free lancers.. Ou seja, para fazer alguns mapas e scripts quando necessitar.. Projeto profissional, trabalho com acesso svn limitado, etc.. Quem interessar-se, entre em contato, irei fazer um teste.
  15. Hehe.. Eu mesmo, tenho projetos alternativos rsrs.. Valeu, só isso que precisava, de uma base para eu aprimorar, não tinha conhecimento sobre essas funções.
  16. Estão errados rsrs, no Global War mesmo, tem esse sistema, e não é possivel burlar. Mas como pelo jeito é pago para adquirir um sistema desse, valeu aí os dois
  17. Eu queria 2 sistemas que são semelhante ao do global: - Ao logar, monstros não atacam o player por 10 segundos. - Se cair a net do player, monstros param de atacar e ele loga apos 15 segundos
  18. fitaisolante

    Vetus 9.86

    Eaaaaai, Galeraaaa!!! O projeto SnowOT consiste em criar uma nova visão sobre os servidores de mapa baiak. Com um sistema DDOS capaz de conter ataques fortes, prometemos a vocês um servidor estável, profissional, em que você pode confiar na gente e se divertir sem problemas. Principais informações do ZaiakOT: - Novos monstros, new hunts. - Warsystem com escudos, - Evento Zombie, - Battlefield, - Muuuitas quests novas. - Hunts totalmente refeitas, isso mesmo, não tem aquelas hunts feias do baiak. - Exp ajustada para servidor sério, favorecendo o PVP. - Servidor livre de itens feitos encima do outro, ou seja, não é possível achar por a caso um item vip dentro do monstro. - Vocações balanceadas, magias ajustadas. E muuuuito mais galera, acesse já: IP: jogar.snowotserv.com Porta: 7171 Versão: 8.60 Site para doações: www.keilost.xpg.com.br
  19. é tfs 0.4 3884, dá uma olhada no jeito que o config.lua tá: P.S: dei permissão 775 para o restarter e o distro. adminLogsEnabled = true displayPlayersLogging = true prefixChannelLogs = "" runFile = "" outLogName = "monitor.log" errorLogName = "" truncateLogsOnStartup = false
  20. Não está aparecendo lá
  21. E pra qual pasta vai?
  22. Tenho uma dúvida que me tortura... Quando eu acesso o shell, e vou ligar o OT, aparece tudo lá, ligando, como se fosse o exe no windows... Certo, quando eu fecho ele, como eu faço para ver o log de novo? É possivel, eu criar algo que cria o log dele na pasta?
  23. Funcionou, rep ++
  24. Quanta ignorância... Por causa de outro post seu que li, achei que a spell, tinha a ver com a premium..
  25. 1) Etapa -- Connection config worldId = 0 ip = "127.0.0.1" bindOnlyConfiguredIpAddress = "no" loginPort = 7171 gamePort = 7172 adminPort = 7171 statusPort = 7171 2) No primeiro servidor que vc quizer abrir, deixe assim como esta, soh mude seu ip ali como normalmente, antes de abrir o ot. Primeiro servidor: -- Connection config worldId = 0 ip = "208.129.145.02" -- exemplo bindOnlyConfiguredIpAddress = "no" loginPort = 7171 gamePort = 7172 adminPort = 7171 statusPort = 7171 3) Agora que vem a dúvida, como configurar para um segundo servidor na mesma máquina? Utilizamos o worldId que é a opção que o tfs criou justamente para isso com mais organização. No primeiro servidor vc deixa o worldId = 0 e no segundo worldId = 1 apenas isso que vc precisa modificar. Segundo servidor: -- Connection config worldId = 1 ip = "208.129.145.02" -- exemplo bindOnlyConfiguredIpAddress = "no" loginPort = 7171 gamePort = 7172 adminPort = 7171 statusPort = 7171 4) Ainda vcs devem estar com uma dúvida! Como os players vão se conectar e escolherem o mundo certo se as portas são iguais? Simples: worldId = 0 Representa a porta 7171 worldId = 1 Representa a porta 7172 Ai é soh identificar para player saber qual porta ele deve usar no ipchanger: 7171 - Primeiro otserv 7172 - Segundo otserv
  • Quem Está Navegando   0 membros estão online

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