Ir para conteúdo
  • 0

[Pedido] Aura System


melocom

Pergunta

Sei Que Esse Script Ja Existe Tenho No Meu Sever Mais Tenho Ideias Pra Modificalo E Ficar Mais Interesante

 

 

Teria Como Faser Pra Troca De Aura No Npc

Se Alguem Poder Me Ajudar Darei REP +

 

 

 

 

 

 

Entre na pasta data/lib e crie um arquivo chamado configAura.lua e cole o seguinte código:

 

 

-- [[ AURA SYSTEM LIB (BY: XXOTSERVXX) ]] --

 

-- [[ CONFIGURAÇÕES DO NPC ]] --

npc = {

level = 1, -- level para pegar aura (1 para não precisar)

price = 0, -- preço para comprar a aura (0 para ser gratis)

premmy = false, -- precisar ser premium (false para não precisar)

}

 

-- [[ OUTRAS CONFIGURAÇÕES ]] --

auexchance = 20 -- chance de acontecer uma explosão de aura(maixmo 100)

aurast = 56897 -- storage da aura (troque se ja estiver usando ela)

 

Bom nesse script é onde você vai poder configurar variias coisas do script, é só seguir os comentários no script.

 

Continuando na mesma pasta data/lib crie outro arquivo com o nome libAura.lua e cole o seguinte script:

 

 

-- [[ FUNÇÕES ]] --

au = {

["fire"] = {ef = {5, 6, 15, 36}, sh = 3, dmg = COMBAT_FIREDAMAGE},

["ice"] = {ef = {41, 42, 43}, sh = 28, dmg = COMBAT_ICEDAMAGE},

["earth"] = {ef = {8, 45, 20}, sh = 29, dmg = COMBAT_EARTHDAMAGE},

["death"] = {ef = {17, 34, 38}, sh = 31, dmg = COMBAT_DEATHDAMAGE},

["holy"] = {ef = {39, 49}, sh = 30, dmg = COMBAT_HOLYDAMAGE},

["energy"] = {ef = {11, 47, 48}, sh = 35, dmg = COMBAT_ENERGYDAMAGE}

}

 

function isAura(cid)

if type(getPlayerStorageValue(cid, aurast)) == "string" then

return true

end

return false

end

 

function addAura(cid, aura)

return setPlayerStorageValue(cid, aurast, aura)

end

 

function getAura(cid)

return getPlayerStorageValue(cid, aurast)

end

 

function startAura(cid, aura)

a = au[aura]

if not isCreature(cid) then return true end

doSendMagicEffect(getThingPos(cid), a.ef[math.random(1, #a.ef)])

addEvent(startAura, 2000, cid, aura)

end

 

arrex = createCombatArea{

{0, 0, 1, 0, 0},

{0, 1, 1, 1, 0},

{1, 1, 2, 1, 1},

{0, 1, 1, 1, 0},

{0, 0, 1, 0, 0}

}

 

function sendExplosion(cid, aura, model)

rateatk = math.ceil(getPlayerLevel(cid)/2*1,5)

a = au[aura]

min, max = rateatk/2, rateatk

if model == 1 then

doAreaCombatHealth(cid, a.dmg, getThingPos(cid), arrex, -min, -max, a.ef[math.random(1, #a.ef)])

elseif model == 2 then

for i = 0, 3 do

doSendDistanceShoot(getThingPos(cid), getPositionByDirection(getThingPos(cid), i, 1), a.sh)

doAreaCombatHealth(cid, a.dmg, getPositionByDirection(getThingPos(cid), i, 1), 0, -min, -max, a.ef[math.random(1, #a.ef)])

end

end

end

 

function getPositionByDirection(position, direction, size) -- TFS FUNCTION

local n = size or 1

if(direction == NORTH) then

position.y = position.y - n

elseif(direction == SOUTH) then

position.y = position.y + n

elseif(direction == WEST) then

position.x = position.x - n

elseif(direction == EAST) then

position.x = position.x + n

elseif(direction == NORTHWEST) then

position.y = position.y - n

position.x = position.x - n

elseif(direction == NORTHEAST) then

position.y = position.y - n

position.x = position.x + n

elseif(direction == SOUTHWEST) then

position.y = position.y + n

position.x = position.x - n

elseif(direction == SOUTHEAST) then

position.y = position.y + n

position.x = position.x + n

end

 

return position

end

 

 

Neste script não é recomendado mexer a não ser que vc seje um scritper e saiba oque faça.

 

Agora entre na pasta data/creaturescripts/scripts e crie um arquivo chamado creatureAura.lua e cole o seguinte código:

 

 

function onStatsChange(cid, attacker, type, combat, value)

if type == STATSCHANGE_HEALTHLOSS then

if isAura(cid) then

if math.random(1, 100) < auexchance then

sendExplosion(cid, getAura(cid), math.random(1, 2))

end

end

end

return true

end

 

function onLogin(cid)

if isAura(cid) then

startAura(cid, getAura(cid))

end

return true

end

 

 

Também não é recomendando mexer, continuando nesta mesma pasta (data/creaturescripts/scripts) procure pelo login.lua e no final do script antes do return true end, cole isto:

 

 

registerCreatureEvent(cid, "loginAura")

registerCreatureEvent(cid, "statsAura")

 

Vá na pasta anterior data/creaturescripts e procure pelo arquivo creaturescripts.xml e adicione as seguintes tags:

 

 

<event type="login" name="loginAura" event="script" value="creatureAura.lua"/>

<event type="statschange" name="statsAura" event="script" value="creatureAura.lua"/>

 

 

Agora entre na pasta data/npc e crie um arquivo chamado Npc Aura.xml e cole o seguinte codigo:

 

 

<?xml version="1.0" encoding="UTF-8"?>

<npc name="Npc Aura" script="npcAura.lua" walkinterval="2000" floorchange="0">

<health now="100" max="100"/>

<look type="128" head="55" body="53" legs="42" feet="0" addons="2"/>

<parameters>

<parameter key="message_greet" value="Ola, diga {aura} para ver as auras disponiveis."/>

</parameters>

</npc>

 

Entre na pasta data/npc/scripts e crie um arquivo chamado npcAura.lua e cole o seguinte código:

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

 

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

 

function creatureSayCallback(cid, type, msg)

 

if(not npcHandler:isFocused(cid)) then

return false

end

 

if msgcontains(msg, 'aura') then

if not isAura(cid) then

selfSay('Temos disponiveis as seguintes auras: {fire}, {ice}, {earth}, {death}, {holy} e {energy}, qual você quer aprender ?', cid)

talkState = 1

else

selfSay('Você já tem á '..getAura(cid).." aura.", cid)

end

elseif isInArray({"fire", "ice", "earth", "death", "holy", "energy"}, msg) and talkState == 1 then

if getPlayerLevel(cid) < npc.level then

return selfSay("Desculpe mais para aprender a aura é preciso level "..npc.level..".")

end

if getPlayerMoney(cid) < npc.price then

return selfSay("Desculpe mais para aprender a aura é preciso "..npc.price.."gps.")

end

if not isPremium(cid) and npc.premmy then

return selfSay("Desculpe mais para aprender a aura é preciso ser premium.")

end

addAura(cid, msg)

startAura(cid, getAura(cid))

doPlayerRemoveMoney(cid, npc.price)

selfSay("Você acaba de receber á "..getAura(cid).." aura.")

talkState = 2

end

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Editado por Vilden
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

@Melocom

 

Como configuro a cor da aura?

 

tipo só tenhu 2 tipos de aura no meu servidor e queria colocar só esses tipos.

 

Esta modificado pra só pokemon que estiver +50 poder comprar?

 

Edit: Vei esse system de aura esta dando aura pro jogador não pro pokemon, como faço pra configurar no pokemon

Editado por vudi
Link para o comentário
Compartilhar em outros sites

  • 0

cara esse script n e meu mais assim

n sei no pokemon como funciona mais no meu servidor

eu digo /z e um numero e aparese a aura entendeu

n sei mecher em script pokemon desculpa nisso n posso ajudar

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...