Ir para conteúdo
  • Cadastre-se

Normal Spell de speed que muda outfit até tal ação


Posts Recomendados

Boa noite, estou tentando uma spell cuja função será mudar a aparencia do player até que ataque alguém ou seja atacado.

 

Enquanto o player estiver com tal aparencia, ele terá o movement speed buffado.

 

Dai pensei em fazer uma spell que:

 

  • Guarda o outfit do caster (antes de mudar a aparencia);
  • Muda o outfit do player para o 318;
  • Aumenta a velocidade dele por 1 segundo.

 

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 3000)
setConditionFormula(condition, 0.7, -56, 0.7, -56)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
local outfitback = getCreatureOutfit(cid)
setPlayerStorageValue(cid, 89945, outfitback)
local outfit = {lookType = 318, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}
if isPlayer(cid) then
doCreatureChangeOutfit(cid, outfit)
end
	return doCombat(cid, combat, var)
end

 

 

Dai, criei um globalevent com intervalo de 1 segundo para adicionar mais 1s de buff de mov speed para o player que estiver com o outfit 318:

 

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_TICKS, 1000)
setConditionFormula(condition, 0.7, -56, 0.7, -56)
setCombatCondition(combat, condition)


function onThink(interval, lastExecution)
    local outfit = {lookType = 318, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 0}
    if getCreatureOutfit(getPlayersOnline()) == outfit then
	end
    return doCombat(cid, combat, var)
end

 

 

Acredito que esteja bem errado.

Além disso, falta o script q tornaria possivel o retorno do outfit normal do player ao entrar em combat( e assim, perderia o buff do mov speed), so q nao tenho ideia de onde devo tentar fazer esse script e nem como começar a faze-lo

 

Peço a ajuda de voces de novo c:

Link para o post
Compartilhar em outros sites

muito complexa a sua linha de raciocínio.. pensa cmg:

Uma spell que seta a outfit e velocidade por tempo indeterminado, caso o player perca vida ou ataque alguém ela remove as conditions responsáveis pelo haste e pelo outfit ->

e temos isso daqui:
 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1) -- seta por tempo ilimitado
setConditionFormula(condition, 0.7, -56, 0.7, -56)
setCombatCondition(combat, condition)

local function checker(uid, health)
	if isPlayer(uid) then		
		if not getCreatureTarget(uid) and getCreatureHealth(uid) >= health then --se ele tiver um target ou perder vida cancela.
			local health = getCreatureHealth(uid)
			addEvent(checker, 200, uid, health) -- checa a cada 200 milisegundos
		else
			if getCreatureCondition(cid, CONDITION_HASTE)
				doRemoveCondition(uid, CONDITION_HASTE)
			end
			if getCreatureCondition(cid, CONDITION_OUTFIT)
				doRemoveCondition(uid, CONDITION_OUTFIT)
			end
			doSendMagicEffect(getCreaturePosition(uid), 2)
		end	
	end
return true
end

function onCastSpell(cid, var)
	doSetCreatureOutfit(cid, {lookType = 318}, -1) -- seta o outfit 318 por tempo ilimitado
	checker(cid, getCreatureHealth(cid))
	doCombat(cid, combat, var)
return true
end

 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Obrigado por responder.

Verdade, foi bem complexo DOSAKOPDASKPODKASKPODKSAPDSA

Não sabia que se colocasse o tempo -1 seria infinito daí nem pensei em colocar doSetCreatureOutfit

Usei o script e não deu certo, o outfit do player é mudado e o mov speed buffado, entretanto, ao atacar ou ser atacado, o player continua com o mov speed e o outfit da skill.

Coloquei os dois 'then' que estavam faltando depois dos dois 'if'

Btw, quando tiver um tempo livre, pode me explicar essa parte abaixo ? Tipo, pq usa uid?

 

Spoiler

function checker(uid, health)
	if isPlayer(uid) then		
		if not getCreatureTarget(uid) and getCreatureHealth(uid) >= health then --se ele tiver um target ou perder vida cancela.
			local health = getCreatureHealth(uid)
			addEvent(checker, 200, uid, health) -- checa a cada 200 milisegundos

 

 

Obrigado mais uma vez :D

Link para o post
Compartilhar em outros sites

onde tá 

not getCreatureTarget(uid)

coloca
 

getCreatureTarget(uid) ~= nil



---------------------------------------------------------------------
Eu uso uid porque é uma convenção.. na vdd eu posso colocar qualquer coisa ali.

Pensa numa função que recebe um numero qualquer e incrementa 10 no valor dele:
 

local function increment10 (x)
   return x + 10
end

se eu trocar o nome do x no parâmetro e trocar ali no return continua a mesma coisa
 

local function increment10 (qualquercoisa)
 return qualquercoisa + 10
end


uid é a sigla para uniqueid e cid é a sigla para creatureid, muita gente adota cid em tudo mas usar cid em parametros de funções locais pode acabar confundindo quem não é programador e induzindo a pensar que cid representa sempre o player, oque não é verdade.
 

local function increment10 (cid)
return cid + 10
end

 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Entendi!

Então, mesmo depois da substituição, o personagem continua no outfit 318 e com a speed modificada depois de ser atacado ou atacar

 

 

Edit: Apareceu um erro na distro:

In a timer event called

Description:

<luaGetCreatureCondition>  Creature not found

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

não sei como funciona a getCreatureTarget no seu servidor, mas usa assim q deve dar certo:
 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

local condition = createConditionObject(CONDITION_HASTE)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1) -- seta por tempo ilimitado
setConditionFormula(condition, 0.7, -56, 0.7, -56)
setCombatCondition(combat, condition)

local function checker(uid, health)
	if isPlayer(uid) then		
		if (getCreatureTarget(uid) and isCreature(getCreatureTarget(uid))) or getCreatureHealth(uid) < health then --se ele tiver um target ou perder vida cancela.
			if getCreatureCondition(uid, CONDITION_HASTE)
				doRemoveCondition(uid, CONDITION_HASTE)
			end
			if getCreatureCondition(uid, CONDITION_OUTFIT)
				doRemoveCondition(uid, CONDITION_OUTFIT)
			end
			doSendMagicEffect(getCreaturePosition(uid), 2)
		else
			local health = getCreatureHealth(uid)
			addEvent(checker, 200, uid, health) -- checa a cada 200 milisegundos
		end	
	end
return true
end

function onCastSpell(cid, var)
	doSetCreatureOutfit(cid, {lookType = 318}, -1) -- seta o outfit 318 por tempo ilimitado
	checker(cid, getCreatureHealth(cid))
	doCombat(cid, combat, var)
return true
end

 

Editado por xWhiteWolf (veja o histórico de edições)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Aeeeeeeho, agora foi certinho, so mudei o cid para uid das paradinhas abaixo <3 Ficou otimo, vlw :D

			if getCreatureCondition(cid, CONDITION_OUTFIT)
if getCreatureCondition(cid, CONDITION_HASTE)
Link para o post
Compartilhar em outros sites

ah é, realmente.. falha minha que copiei as funções e não arrumei huahua pelo menos vc entendeu a lição e foi capaz de me corrigir, parabéns.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

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.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por 001rafa
      Galera como faz para poder criar um slot a mais no otcliente para poder equipar com itens por exemplo mais um ring e mais um colar?
      sei que tem q modificar no source do cliente e no distro alguem poderia me ajudar com um tutorial?

      grato pela atenção.

      up
    • Por M Cronos
      Boa Noite amigos, eu estava usando o Object builder e o item editor para adicionar uns sprites no meu servidor para usar com um script, este aqui >>> 
       que o @Comedinha postou para ajudar um outro membro.
      Bom a questão é que o script parece estar funcionando,por que não dá nenhum erro, mas o item também não é usado. bom eu fucei bastante e ainda  não consegui resultado então eu pensei que talvez eu tivesse que setar o item como usável no OB ou no IE, pois me lembro de ter visto isso em algum lugar, mas não consigo achar onde eu faço isso. alguém pode me ajudar? se possível. obrigado.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo