Ir para conteúdo
  • Cadastre-se

(Resolvido)Não andar durante spell


Ir para solução Resolvido por Cerberus,

Posts Recomendados

(8.54) tfs 0.4
Gostaria de saber como faço para o player não andar por X tempo (0.1s) ou (0.2s) editavel enquanto usa um spell, eu estou usando um script que quando o player usa o spell ele troca de outfit, porem o mesmo outfit não tem animação andando e ai o player sai se "arrastando"

local tempo = 0.1
local config = {
[1] = 21,  
[2] = 27,  
[3] = 22,  
[4] = 23,  
[5] = 25,  
[6] = 26, 
[7] = 24,
[8] = 11
}

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 7)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 1.5, 2)


function onCastSpell(cid, var)
local currcolor = getCreatureOutfit(cid)
local homem = {lookType = config[getPlayerVocation(cid)], lookHead = currcolor.lookHead, lookBody = currcolor.lookBody, lookLegs = currcolor.lookLegs, lookFeet = currcolor.lookFeet} 
local mulher = {lookType = config[getPlayerVocation(cid)], lookHead = currcolor.lookHead, lookBody = currcolor.lookBody, lookLegs = currcolor.lookLegs, lookFeet = currcolor.lookFeet}
local sex = getPlayerSex(cid)
if sex == 0 then --sexo == 0 significa que o personagem é mulher
doSetCreatureOutfit(cid, mulher, tempo*1000)
else 
doSetCreatureOutfit(cid, homem, tempo*1000)
end
	return doCombat(cid, combat, var)
end


Exemplo em video:

 

Link para o post
Compartilhar em outros sites
  • Solução

doCreatureSetNoMove(cid,true)   -- Fica parado sem poder andar so vira pros lado usando control

 

doCreatureSetNoMove(cid,false) -- volta andar novamente.

pode fazer assim.

  if sex == 0 then --sexo == 0 significa que o personagem é mulher
      doCreatureSetNoMove(cid,true)
      doSetCreatureOutfit(cid, mulher, tempo*1000)
      addEvent(doCreatureSetNoMove, tempo*1000, cid,false) -- volta no tempo do script
  else 
      doCreatureSetNoMove(cid,true)
      addEvent(doCreatureSetNoMove, tempo*1000, cid,false) -- volta no tempo do script
      doSetCreatureOutfit(cid, homem, tempo*1000)
  end

 

Editado por kbpaulo (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Consegui !!! vlw
eu fiz assim, botei 2 functions
 

local function onCastSpell1(cid, target)
doCreatureSetNoMove(cid, true)
doPlayerAddItem(cid, 6300, 1)
end
 
local function onCastSpell2(cid, target)
doCreatureSetNoMove(cid, false)
end

e depois chamei elas no oncast spell
 

addEvent(onCastSpell1, 0, cid, target)
addEvent(onCastSpell2, 1000, cid, target) --- 1 segundo para voltar a andar

 

Link para o post
Compartilhar em outros sites
26 minutos atrás, Meguminyan disse:

Consegui !!! vlw
eu fiz assim, botei 2 functions
 


local function onCastSpell1(cid, target)
doCreatureSetNoMove(cid, true)
doPlayerAddItem(cid, 6300, 1)
end
 
local function onCastSpell2(cid, target)
doCreatureSetNoMove(cid, false)
end

e depois chamei elas no oncast spell
 


addEvent(onCastSpell1, 0, cid, target)
addEvent(onCastSpell2, 1000, cid, target) --- 1 segundo para voltar a andar

 

 

 

a primeira função que e add não precisa por evento.. poe igual te falei... a segunda que e tirar precisa de evento pq tem tempo para sair xd.. mais vc q sabe.

if sex == 0 then --sexo == 0 significa que o personagem é mulher
      doCreatureSetNoMove(cid,true)  -- para o player assim que ele usa
      doSetCreatureOutfit(cid, mulher, tempo*1000)--troca o outfit dele e some depois de 100 milisegundos pq vc pois 0.1*1000
      addEvent(doCreatureSetNoMove, tempo*1000, cid,false) -- tira o outfit depois dos mesmo 100 qdo outfit
  else 
      doCreatureSetNoMove(cid,true)
      addEvent(doCreatureSetNoMove, tempo*1000, cid,false) -- volta no tempo do script
      doSetCreatureOutfit(cid, homem, tempo*1000)
  end

pois isso fiz assim..em ves de add 2 evento.

negocio e que seu script aqui ta assim

 

local tempo = 0.1
local config = {
[1] = 21,  
[2] = 27,  
[3] = 22,  
[4] = 23,  
[5] = 25,  
[6] = 26, 
[7] = 24,
[8] = 11
}

deveria tar assim

local tempo = 1
local config = {
[1] = 21,  
[2] = 27,  
[3] = 22,  
[4] = 23,  
[5] = 25,  
[6] = 26, 
[7] = 24,
[8] = 11
}

 

Editado por kbpaulo (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

ah sim, o tempo 0.1 eu tinha arrumado só esqueci de editar aqui, é que estou usando em mais de 1 spell.
fiz como você falou está funciondando vlw, o unico problema é que o char fica tentando andar e voltando qdo vc usa correndo, isso da pra editar em algum lugar? estou usando ot client não sei se faz diferença nessa parte.
Pra dar rep é só marcar melhor resposta?

Editado por Meguminyan (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

achei legal , tem num poketibia aqui.. já que falou q usa em varios scripts.. poe isso na sua lib e usa somente isso stopNow(cid, time)   nos scripts xd..

 

Spoiler

function stopNow(cid, time)   
if not isCreature(cid) or not tonumber(time) then return true end

local function podeMover(cid)                        
if isCreature(cid) then mayNotMove(cid, false) end
end
mayNotMove(cid, true)
addEvent(podeMover, time, cid)
end

 

 

enquanto ele fica tentando andar não entendo seria.seria no cliente o clique de stop...ai e com alguem mais experiente xD.

Editado por kbpaulo (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo