Postado Maio 26, 2014 11 anos Olá TK Friends! Trouxe-lhes dois scripts que preciso de uma modificação para ficar perfect ! Vamos lá. 1º Gun System: Script logo abaixo: data/spells/scripts: local runa = 7417 <- id da arma, tem que ser club, sowrd, ou axe local msg = "Coloque a %s na mão para atirar." local attackmin, attackmax = 30, 42 -- attack minimo, attack maximo function onCastSpell(cid, var) local left, right = getPlayerSlotItem(cid, CONST_SLOT_LEFT), getPlayerSlotItem(cid, CONST_SLOT_RIGHT) if isInArray({left.itemid, right.itemid}, runa) then else return doPlayerSendCancel(cid, msg:format(getItemNameById(runa))) end if doPlayerRemoveItem(cid, 2671, 1) then -- id da bala [bolt] target = getCreatureTarget(cid) if (target <= 0) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Selecione um target.") return false end hit = (math.random(attackmin,attackmax) + getPlayerSkillLevel(cid, SKILL_DISTANCE) / 3) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -hit, -hit, CONST_ME_MORTAREA) doSendDistanceShoot(getCreaturePos(cid), getCreaturePos(target), 15) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não possui dardos.") return false end data/spells/spells.xml: adicione essa tag\/ <rune name="Espuleta" id="7417" allowfaruse="1" charges="no" lvl="1" exhaustion="2000" maglv="0" range="7" needtarget="0" blocktype="solid" event="script" value="1espuleta.lua"/> Esse script precisa de mais algumas coisas, o exaustion não funciona, e eu preciso que funcione. E também o hit da arma poderia ser baseado no distance fighting, quanto maior, mais irá hitar. 2º Heal Aura: Aproveitando esse post, irei pedir uma modificação nesse script: data/creaturescript/scripts: -- CONFIGURAÇÕES porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) -- Função que chama a aura function efeitosAura(i,tm,cid) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local posaura = { {x=(atual.x)-1, y=(atual.y)-1, z=atual.z}, {x=atual.x, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=atual.y, z=atual.z}, {x=(atual.x)+1, y=(atual.y)+1, z=atual.z}, {x=atual.x, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=atual.y, z=atual.z}, } local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal) if(i<=8 and i>1) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura) else doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura) elseif(i<8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura) end if(i<=8) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) else return efeitosAura(1,0,cid) end else return TRUE end end --Função principal function onLogin(cid) return efeitosAura(1,tempo/8,cid) end data/creaturescript/creaturescript.xml: Adicione essa tag\/ <event type="login" name="AuraLogin" script="auralogin.lua"/> data/creaturescript/login.lua: Adicione depois de "onLogin" \/ function onLogin(cid) if(getPlayerLevel(cid)>1000) then return efeitosAura(1,tempo/8,cid) end return TRUE end Script feito por: bielzinhocrazy Nesse Heal Aura, o script faz com que uma "aura" fique em volta de você te curando, a modificação desse script seria assim: Definir 3 efeitos para ficar passando no player, em vez de ficar rodando em volta dele. "Como assim?" Ex: Eu defino do script 3 efeitos que irão ficar "piscando" no player, desde o momento que ele loga, até o momento que ele desloga. Mas serão 3 tipos de aura: "Leaves aura", "Energy aura" e "Psych aura". Leaves aura: Esta irá curar o player como o script acima Energy aura: Esta irá dar mais speed ao player Psych aura: Esta irá curar a mana do player Espero que alguém possa atender ao meu clamor ! Obrigado amigos! Oi
Postado Maio 27, 2014 11 anos Solução 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não possui dardos.") return false end muda o return false pra return true. 2) -- CONFIGURAÇÕESporcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) -- Função que chama a aura function efeitosAura(i,tm,cid) tipoaura = math.random(30,33) -- número do efeito da aura (efeito normal, /z do jogo) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal) if(i<=8 and i>1) then doSendMagicEffect(atual, tipoaura) else doSendMagicEffect(atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendMagicEffect(atual, tipoaura) elseif(i<8) then doSendMagicEffect(atual, tipoaura) end if(i<=8) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) else return efeitosAura(1,0,cid) end else return TRUE end end --Função principal function onLogin(cid) return efeitosAura(1,tempo/8,cid) end /\ cura a vida e solta os efeitos 30 a 33 -- CONFIGURAÇÕES porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem quantmana = 10 -- porcentagem da mana máxima que cada cura irá curar. (No caso, irá curar 10% da mana máxima cada cura) tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) -- Função que chama a aura function efeitosAura(i,tm,cid) tipoaura = math.random(30,33) -- número do efeito da aura (efeito normal, /z do jogo) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureMana(cid)<getCreatureMaxMana(cid)) then doCreatureAddMana(cid, getCreatureMaxMana(cid)/quantmana) if(i<=8 and i>1) then doSendMagicEffect(atual, tipoaura) else doSendMagicEffect(atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendMagicEffect(atual, tipoaura) elseif(i<8) then doSendMagicEffect(atual, tipoaura) end if(i<=8) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) else return efeitosAura(1,0,cid) end else return TRUE end end --Função principal function onLogin(cid) return efeitosAura(1,tempo/8,cid) end /\ cura mana e solta os efeitos 30 a 33 (se quiser muda no math.random -- CONFIGURAÇÕES porcentagem = 40 -- chance de dar haste em cada volta da aura, em porcentagem tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) efeitocura = 49 -- número do efeito quando der haste (efeito de posição fixa, pode ser identificado com /z no jogo) duration = 10 -- segundos que vai durar o haste da aura. (coloque um tempo baixo porque ela vai ficar se repetindo. local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, duration*1000) setConditionFormula(condition, 1.7, -36, 1.7, -36) -- Função que chama a aura function efeitosAura(i,tm,cid) tipoaura = math.random(12,14) -- número do efeito da aura (efeito normal, /z do jogo) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureCondition(cid, condition) == false) then doAddCondition(cid, condition) if(i<=8 and i>1) then doSendMagicEffect(atual, tipoaura) else doSendMagicEffect(atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendMagicEffect(atual, tipoaura) elseif(i<8) then doSendMagicEffect(atual, tipoaura) end if(i<=8) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) else return efeitosAura(1,0,cid) end else return TRUE end end --Função principal function onLogin(cid) return efeitosAura(1,tempo/8,cid) end /\ da velocidade a cada rodada de aura por 10 segundos.. os efeitos são um math.random de 12 até 14 (12, 13, 14) 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 Maio 27, 2014 11 anos Autor Vou dar uma testada aqui, já digo se funcionou. ---------Editado--------- Perfeito cara, ficou ótimo! Editado Maio 27, 2014 11 anos por NathanAmaro (veja o histórico de edições) Oi
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.