Ir para conteúdo
  • 0

Summon spell


Duuhzinhow

Pergunta

Entao galera, eu queria uma spell de summon que funcionaria da seguinte maneira:

 

Seria como a 'utevo res' porém assim :

*No level 25+ poderia summonar orc berserker, orc leader.. (exemplo)

Quando chegasse no level 35, poderia sumonar alguns monstros a mais.. e assim por diante.

*O monstro nao ganharia xp, quando o summon matar algo a xp irá toda para o player.

 

Se possivel, a lista de monstros sumonavel em seus respectivos levels necessarios a serem configurados dentro do script. Agradeço desde ja quem puder me ajudar!

 

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Eu não sabia como fazer isso por spell então fiz por talkaction.

Esse é meu primeiro talk que eu fiz na vida :D

 

.lua

local limite = 2 -- limite de summons
local vocation = {1, 2, 3} -- Vocações que poderão usar a magia
local config = {
--[Nome do monstro] = {level, mana},
    ["rat"] = {level = 25, mana = 300},
    ["orc"] = {level = 50, mana = 2000},
["demon"] = {level = 50, mana = 7000},
}
 
function onSay(cid, words, param, channel)
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Exemplo: Test orc")
    return true
    end
    if isInArray(vocation, getPlayerVocation(cid)) then
        if #getCreatureSummons(cid) < limite then
            local t = config[param]
            if t then
                if getPlayerLevel(cid) >= t.level then
                    if getCreatureMaxMana(cid) >= t.mana then
                        doConvinceCreature(cid, doSummonCreature(param, getCreaturePosition(cid)))
                        doCreatureAddMana(cid, - t.mana)
                    else
                        doPlayerSendCancel(cid, "é necessário "..t.mana.." para summonar!")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem level necessário para summonar ele!")
                end
            else
                doPlayerSendCancel(cid, "Esse monstro não esta na lista!")
            end
        else
            doPlayerSendCancel(cid, "Você ja atingiu o limite de "..limite.." summons!")
        end
    else
        doPlayerSendCancel(cid, "Sua vocação não permite usar essa magia!")
    end
return true
end
.xml, tag
<talkaction words="test" script="nomedoscript.lua" />

 

Link para o comentário
Compartilhar em outros sites

  • 0

 

Rep

Mano, obrigado por ajudar mas uma coisa, a summon por level seria a mesma utevo res?

 

E se puder explicar onde eu adiciono o script do summon nao ganhar exp, pq realmente nao entendi.. obrigado :3

Link para o comentário
Compartilhar em outros sites

  • 0

 

Rep

Mano, obrigado por ajudar mas uma coisa, a summon por level seria a mesma utevo res?

 

E se puder explicar onde eu adiciono o script do summon nao ganhar exp, pq realmente nao entendi.. obrigado :3

 

Seria uma magia normal, só que em cada level summonaria um Mob diferente.

Digamos que eu coloque essa magia no lugar de exura, se eu usa-se exura no level 25 summonaria um rat, se eu usa-se exura no level 100 summonaria um demon.

 

Para adicionar, acredito eu que so basta substitui essa função:

void Creature::addDamagePoints(Creature* attacker, int32_t damagePoints)

por essa dai que eu ta no tópico.(acredito eu)

Acabei de formatar o pc, to sem os programas aqui, ai não da para eu testa

Link para o comentário
Compartilhar em outros sites

  • 0

 

Seria uma magia normal, só que em cada level summonaria um Mob diferente.

Digamos que eu coloque essa magia no lugar de exura, se eu usa-se exura no level 25 summonaria um rat, se eu usa-se exura no level 100 summonaria um demon.

 

Para adicionar, acredito eu que so basta substitui essa função:

void Creature::addDamagePoints(Creature* attacker, int32_t damagePoints)

por essa dai que eu ta no tópico.(acredito eu)

Acabei de formatar o pc, to sem os programas aqui, ai não da para eu testa

 

Ah mano entao nao é assim, tipo, eu quero que mesmo depois de ter level alto, ainda tenha a opçao das outras summons dos levels anteriores.

up^^

Link para o comentário
Compartilhar em outros sites

  • 0

Eu não sabia como fazer isso por spell então fiz por talkaction.

Esse é meu primeiro talk que eu fiz na vida :D

 

.lua

local limite = 2 -- limite de summons
local vocation = {1, 2, 3} -- Vocações que poderão usar a magia
local config = {
--[Nome do monstro] = {level, mana},
    ["rat"] = {level = 25, mana = 300},
    ["orc"] = {level = 50, mana = 2000},
["demon"] = {level = 50, mana = 7000},
}
 
function onSay(cid, words, param, channel)
    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Exemplo: Test orc")
    return true
    end
    if isInArray(vocation, getPlayerVocation(cid)) then
        if #getCreatureSummons(cid) < limite then
            local t = config[param]
            if t then
                if getPlayerLevel(cid) >= t.level then
                    if getCreatureMaxMana(cid) >= t.mana then
                        doConvinceCreature(cid, doSummonCreature(param, getCreaturePosition(cid)))
                        doCreatureAddMana(cid, - t.mana)
                    else
                        doPlayerSendCancel(cid, "é necessário "..t.mana.." para summonar!")
                    end
                else
                    doPlayerSendCancel(cid, "Você não tem level necessário para summonar ele!")
                end
            else
                doPlayerSendCancel(cid, "Esse monstro não esta na lista!")
            end
        else
            doPlayerSendCancel(cid, "Você ja atingiu o limite de "..limite.." summons!")
        end
    else
        doPlayerSendCancel(cid, "Sua vocação não permite usar essa magia!")
    end
return true
end
.xml, tag
<talkaction words="test" script="nomedoscript.lua" />

 

 

Bem, nenhum erro, porém... Mesmo o monstro estando na lista ele diz "Esse monstro nao esta na lista"

E teria como eu colocar para aparecer nas spells? porque vai ser necessario kkk

ps: o monstro irá roubar xp?

 

Link para o comentário
Compartilhar em outros sites

  • 0

 

Bem, nenhum erro, porém... Mesmo o monstro estando na lista ele diz "Esse monstro nao esta na lista"

E teria como eu colocar para aparecer nas spells? porque vai ser necessario kkk

ps: o monstro irá roubar xp?

 

 

ta ligado que isso é um talk né

aqui ta funcionando certo

http://prntscr.com/7o615g

manda o script do jeito que você configuro para eu ver.

se você fez oque eu falei la em cima, não.

Link para o comentário
Compartilhar em outros sites

  • 0

script

 

 

local limite = 2 -- limite de summons
local vocation = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} -- Vocações que poderão usar a magia
local config = {
--[Nome do monstro] = {level, mana},
["rat"] = {level = 5, mana = 10},
["orc"] = {level = 15, mana = 10},
["demon"] = {level = 50, mana = 7000},
}

function onSay(cid, words, param, channel)
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invocou")
return true
end
if isInArray(vocation, getPlayerVocation(cid)) then
if #getCreatureSummons(cid) < limite then
local t = config[param]
if t then
if getPlayerLevel(cid) >= t.level then
if getCreatureMaxMana(cid) >= t.mana then
doConvinceCreature(cid, doSummonCreature(param, getCreaturePosition(cid)))
doCreatureAddMana(cid, - t.mana)
else
doPlayerSendCancel(cid, "é necessário "..t.mana.." para summonar!")
end
else
doPlayerSendCancel(cid, "Você não tem level necessário para summonar ele!")
end
else
doPlayerSendCancel(cid, "Esse monstro não esta na lista!")
end
else
doPlayerSendCancel(cid, "Você ja atingiu o limite de "..limite.." summons!")
end
else
doPlayerSendCancel(cid, "Sua vocação não permite usar essa magia!")
end
return true
end

 

 

 

<talkaction words="utore" script="invoker.lua" />

 

 

ta ai, tlg q é talk, mas eu precisava como spell mano :;/, mas de boa assim entao icon_lol.gif

Link para o comentário
Compartilhar em outros sites

  • 0

mermão você que ta usando errado para summona é assim: utore rat

 

acho que você ta usando assim: utore "rat

assim não vai funciona pq não existe nenhum monstro chamado "rat.

 

e troca isso:

    if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invocou")
    return true
    end

por isso:

   if(param == '') then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Se usa assim: utore nome do mostro , EX: utore rat")
    return true
    end
essa parte é tipo um exemplo caso o player fale apenas utore.
para que apareça no spellbook cria uma magia com o mesmo nome do utore mas vazia, apenas com o efeito e pronto.
problema resolvido.
Editado por RigBy
Link para o comentário
Compartilhar em outros sites

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