Postado Fevereiro 9, 2016 9 anos 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:
Postado Fevereiro 10, 2016 9 anos 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Fevereiro 10, 2016 9 anos Autor 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
Postado Fevereiro 11, 2016 9 anos 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Fevereiro 11, 2016 9 anos Autor 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 Fevereiro 11, 2016 9 anos por Hoad (veja o histórico de edições)
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.