Ir para conteúdo
  • Cadastre-se

139

Membro
  • Total de itens

    84
  • Registro em

  • Última visita

  • Dias Ganhos

    3

Tudo que 139 postou

  1. function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerGuildId(cid) > 0 then doPlayerSendTextMessage(cid, 27, "Voce entrou, Guild "..getPlayerGuildName(cid)..".") else doPlayerSendTextMessage(cid, 27, "Desculpe,mais somente players que possuem guild pode entrar nessa area.") doTeleportThing(cid, fromPosition) end return true end
  2. Coloca o código de algum script que ta usando essa função, pode ser esse ember.lua mesmo. Basicamente tem um parâmetro dela que deveria receber um player, mas está recebendo outra coisa. Por isso o retorno do erro.
  3. Coloca isso na linha acima do return(doCombat...): local rng = math.random(0, 1) local pos = getCreaturePosition(target) local toposA = {x = pos.x + rng-1, y = pos.y + rng, z = pos.z} local toposB = {x = pos.x + rng, y = pos.y + rng-1, z = pos.z} doSendDistanceShoot(pos, toposA, 41) doSendDistanceShoot(pos, toposB, 41)
  4. local misseis = 5 -- quantidade de misseis local delay = 100 -- tempo entre o disparo de cada missel (milisegundos) local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -78.2, 1, -88.2, 1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 41) function onTargetCreature(cid, target) for i = 1, misseis do addEvent(function() if isCreature(cid) and isCreature(target) then doCombat(cid, combat2, {type = 2, pos = getCreaturePosition(target)}) en
  5. Testa se o erro é só por conta da ausência de vírgula: { itemId = 2187, type = WEAPON_WAND, wandType = "fire", level = 33, mana = 8, damage = {56, 74}, vocation = { {"Sorcerer", true}, {"Master Sorcerer"}, {"Epic Master Sorcerer"}, }, }, -- wand of inferno
  6. addEvent(player:setAttackSpeed, tempo, valor_original_do_atk_speed) Tenta assim, se não for, eu não faço idéia.
  7. Tenta isso: addEvent(function() local p = getTileItemById(fromPosition, porta).uid if p > 0 then doTransformItem(p, porta-1) end end, 2000)
  8. addEvent(player, tempo, setAttackSpeed(valor original do atk speed)) Não mexo com tfs 1.2 Testa se isso aí resolve, coloca embaixo do "player:setAttackSpeed(500)"
  9. Vou te dar um exemplo de como é na versão 8.6 (otx ou tfs mais antiga), que é o que eu uso. data/creaturescripts/creaturescripts.xml: <event type="extendedopcode" name="ExtendedOpcode" event="script" value="opcode.lua"/> data/creaturescripts/scripts/opcodes.lua: function onExtendedOpcode(cid, opcode, buffer) --> Recebe os extendedopcodes enviados pelo client. if opcode == 80 and buffer == "apple" then --> O buffer é a informação que foi enviada do client pro server side. doPlayerFeed(cid, 50) elseif opcode == 80 and buffer == "cake" then
  10. local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, 205) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 1) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -99.0, 0, -190.5, 0) function onTargetCreature(cid, target) local position = {x=getThingPosition(target).x+1, y=getThingPosition(target).y+1, z=getThingPosition(target).z} doSendMagicEffect(position, 329) end setCombatCallback(combat1, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onCastSpell(cid, var) local wait
  11. local chance = 50 local condition = createConditionObject(CONDITION_MUTED) setConditionParam(condition, CONDITION_PARAM_TICKS, 5000) function onCastSpell(cid, var) if not isPlayer(cid) then return false end if math.random(1,100) > chance then doSendAnimatedText(getCreaturePosition(cid), "Miss!", 215) return false end if exhaustion.check(cid, 13117) == true then doPlayerSendCancel(cid, "Podera usar novamente dentro de 15 segundos.") doSendMagicEffect(getCreaturePosition(cid), 2) return false end local tar =
  12. Coloquei alguns comentários pra vc entender passo a passo.
  13. creaturescripts.xml: <event type="statschange" name="hpCheck" event="script" value="hpCheck.lua"/> creaturescripts/scripts/hpCheck.lua: local percentage = 50 local area1 = {x = x, y = y, z = z} -- canto superior esquerdo local area2 = {x = x, y = y, z = z} -- canto superior direito local area3 = {x = x, y = y, z = z} -- destino a ser teleportado local function getHpPercentage(cid) percent = 100 * getCreatureHealth(cid) / getCreatureMaxHealth(cid) percent = math.floor(percent) return(percent) end function onStatsChange(cid, attacker, type, combat, value) if
  14. É pra checar se existe um ITEMID X com a descrição X no SLOT 1 e caso sim, remover? Se não for isso reformule a sua ideia.
  15. É só literalmente você pegar o script do exeta res (challenge) de qualquer OT e aumentar a área. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) local arr1 = { {1, 1, 1}, {1, 3, 1}, {1, 1, 1}, } local area = createCombatArea(arr1) setCombatArea(combat, area) function onTargetCreature(cid, target) return doChallengeCreature(cid, target) end setCombatCallback(combat, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  16. Se nem via creaturescripts resolve, sua source ta com alguma alteração esquisita. Acho que é mais fácil pegar uma versão limpa do que tentar arrumar isso :x
  17. Ou a sua distro ta muito zoada, ou essas spells foram criadas pra causarem dano em players de fato. Poste o .lua de uma delas.
  18. Solução do outfit: Sobre a vocação bugada, já te falei a função que altera vocação, usa ela pra corrigir. Se não der pra corrigir com ela, altera o char direto na database.
  19. Tira a virgula dessa linha: local msg = "Voce precisa aguardar %d segundos.",
  20. Se deslogar, morrer, ou passar 30 min, perde a transformação. O cooldown é 30 min e continua contando mesmo se o player morrer.
  21. Agora que eu parei pra ler o script inteiro. Tava cheio de problemas, esse do tempo era um deles, a vocação de fato mudava pra 11, mas 0.030 segundos depois o char voltava pra voc original Essa variável tempo tava setada em 30, mas era pra ser 30 minutos, só que você não multiplicava esse 30 por 60 (segundos), pra dar 30 minutos em lugar nenhum. E a escala de tempo dos eventos é em milisegundos. Então o que for ser acionado em segundos você tem que multiplicar por 1000, como você vai ver varias vezes ao longo do código. Acho que refiz tudo que precisava, agora deve rodar.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo