Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Summon Monsters


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Alguem pode criar uma script pra mim que eu sumone uns 4 tipos diferentes de monstro numa spell só 

 

REP + pra quem ajudar


@UP Ajuda AE

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

Link para o post
Compartilhar em outros sites

data\spells\scripts\summon crie mixsummon.lua ou qualquer outro nome que quiser, lembre se trocar, troque no spells.xml também.

local max = 1

function onCastSpell(cid, var)

local dir = getPlayerLookDir(cid)
local ppos = getPlayerPosition(cid)

if(dir==1)then
ppos.x = ppos.x + 1
elseif(dir==2)then
ppos.y = ppos.y + 1
elseif(dir==3)then
ppos.x = ppos.x - 1
elseif(dir==0)then
ppos.y = ppos.y - 1
end
local count, pos = #getCreatureSummons(cid), getThingPos(cid)
if count == max then
doPlayerSendCancel(cid, 'Voce nao pode sumonar mais criaturas.')
doSendMagicEffect(pos, CONST_ME_POFF)
return false
end
local summon = getCreatureSummons(cid)
local MaximoSummon = 4
if (table.maxn(summon) < MaximoSummon) then
local spider = doConvinceCreature(cid, doCreateMonster("spider", ppos))
local wolf = doConvinceCreature(cid, doCreateMonster("wolf", ppos))
local orc = doConvinceCreature(cid, doCreateMonster("orc", ppos))
local demon = doConvinceCreature(cid, doCreateMonster("demon", ppos))
        doPlayerSendTextMessage(cid, 22, "Voce summonou quatro criaturas!")
end
end

Entendendo o script acima

local spider = doConvinceCreature(cid, doCreateMonster("spider", ppos))
local wolf = doConvinceCreature(cid, doCreateMonster("wolf", ppos))
local orc = doConvinceCreature(cid, doCreateMonster("orc", ppos))
local demon = doConvinceCreature(cid, doCreateMonster("demon", ppos))

 

onde esta em vermelho é os monsters, troque para qual quiser.

 

data\spells abra o spells.xml e adicione a seguinte linha

    <instant name="Summon 4 Monsters" words="mixsummon" lvl="25" params="1" exhaustion="2000" needlearn="0" event="script" value="summon/mixsummon.lua">
        <vocation id="1"/>
        <vocation id="2"/>
        <vocation id="5"/>
        <vocation id="6"/>
    </instant>

testa ai

Link para o post
Compartilhar em outros sites

Deu certo não sempre ta dando erro na primeira linha de monsters

EX :

 

local spider = doConvinceCreature(cid, doCreateMonster("spider", ppos))
Editado por dbko (veja o histórico de edições)

Link para o post
Compartilhar em outros sites

Não ta lendo a primeira linha que você ponha o monstro ja tentei de tudo e não ta lendo

Link para o post
Compartilhar em outros sites

hmm, aqui eu testei e funcionou certinho, sem nenhum erro..

 

se você não postar o que aparece na distro fica difícil eu te ajudar, já que sou iniciante..

 

Vê o que aparece na distro, tipo esses erros aqui:

 

(luaDoCreateMonster) Monster with name 'spider' not found

ou

(luaDoCreateMonster) Cannot create monster:

ou

(luaDoConvinceCreature) Creature not found

 

e fala pra mim, pra vê se eu consigo te ajudar, e mais uma pergunta, o teu servidor tem esses monsters que você botou né?

Link para o post
Compartilhar em outros sites

Eu fiz assim: Voce usa a magia sem ter nenhum summon, o script vai sumonar 4 monstros aleatórios de acordo com a tabela, porém se voce tiver 2 summons ele vai sumonar apenas 2, e assim vai funcionando. Ele sempre vai completar a quantidade que falta de summons pra chegar a 4.

 

Não teste.

 

local summons = {"Demon", "Orc", "Spider", "Rat", "Tarantula", "Orc Leader"}
local maxSummons = 4

function onCastSpell(cid)
    local s = maxSummons - #getCreatureSummons(cid)
    local str = "Voce sumonou"
    
    if s == 0 then
        
        doPlayerSendCancel(cid, "Voce ja tem 4 summons.")
        return false
    end
    
    for r = 1, s do
        local m = doCreateMonster(summons[math.random(1, #summons)], getThingPos(cid))
        
        doConvinceCreature(cid, m)
        str = str .." " .. m ..","
    end
    
    doPlayerSendTextMessage(cid, 27, str)
    return true
end

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites

Orochi sua script ta funcional vlws so que eu quero que sumone os 4 monsters qe eu coloco não quero aleatorio




local summons = {"Edo Tensei Itachi", "Edo Tensei Deidara", "Edo Tensei Nagato", "Edo Tensei Sasori"}


local maxSummons = 4

function onCastSpell(cid)
local s = maxSummons - #getCreatureSummons(cid)
local str = "Voce sumonou"

if s == 0 then

doPlayerSendCancel(cid, "Voce ja tem 4 summons.")
return false
end

for r = 1, s do
local m = doCreateMonster(summons[math.random(1, #summons)], getThingPos(cid))

doConvinceCreature(cid, m)
str = str .." " .. m ..","
end

doPlayerSendTextMessage(cid, 27, str)
return true
end


 

Link para o post
Compartilhar em outros sites

@dbko você colocou esses monsters ai no script que eu passei?

 

"Edo Tensei Itachi", "Edo Tensei Deidara", "Edo Tensei Nagato", "Edo Tensei Sasori" ?

Link para o post
Compartilhar em outros sites

@Orochi Elf

 

Boa Tarde,

É possível usar este seu script com item? A pessoa usa o item, o item some, e acaba sumonando entre estes quatros? Por favor.


@Orochi Elf

 

Boa Tarde,

É possível usar este seu script com item? A pessoa usa o item, o item some, e acaba sumonando entre estes quatros? Por favor.

Link para o post
Compartilhar em outros sites
  • Solução

fiz uma versãozinha aqui, espero que vc curta

function onCastSpell(cid, var)
local pos = getPlayerPosition(cid)
local maxsummon = 4 -- numero máximo de summons


local possible = {
{x = pos.x, y = pos.y - 2, z = pos.z, stackpos = 0},
{x = pos.x, y = pos.y + 2, z = pos.z, stackpos = 0},
{x = pos.x - 2, y = pos.y, z = pos.z, stackpos = 0},
{x = pos.x + 2, y = pos.y, z = pos.z, stackpos = 0},
{x = pos.x - 2, y = pos.y - 1, z = pos.z, stackpos = 0},
{x = pos.x + 2, y = pos.y - 1, z = pos.z, stackpos = 0},
{x = pos.x + 2, y = pos.y + 1, z = pos.z, stackpos = 0},
{x = pos.x - 2, y = pos.y + 1, z = pos.z, stackpos = 0},
{x = pos.x - 1, y = pos.y - 2, z = pos.z, stackpos = 0},
{x = pos.x + 1, y = pos.y - 2, z = pos.z, stackpos = 0},
{x = pos.x + 1, y = pos.y + 2, z = pos.z, stackpos = 0},
----
{x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 0},
{x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 0},
{x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 0},
{x = pos.x + 1, y = pos.y, z = pos.z, stackpos = 0},
{x = pos.x - 1, y = pos.y + 1, z = pos.z, stackpos = 0},
{x = pos.x - 1, y = pos.y - 1, z = pos.z, stackpos = 0},
{x = pos.x + 1, y = pos.y - 1, z = pos.z, stackpos = 0},
{x = pos.x + 1, y = pos.y + 1, z = pos.z, stackpos = 0},
------
{x = pos.x - 1, y = pos.y + 2, z = pos.z, stackpos = 0}
}


local mobs = { -- monstros que serão sumonados (coloque o nome deles)
[1] = "Clone Spider",
[2] = "Demon Skeleton",
[3] = "Dog",
[4] = "Bug"
}
summonpos = 0


for k = 1, #mobs do
alert = false
local summons = getCreatureSummons(cid)
if #summons < maxsummon then 
for i = 1, #possible do
if isWalkable(possible[i], true, false, true) then
summonpos = possible[i]
end
end


if summonpos ~= 0 then
if #summons >= 1 then
for j = 1, #summons do
if getCreatureName(summons[j]):lower() == string.lower(mobs[k]) then
alert = true
end
end
end


if alert == false then
doConvinceCreature(cid, doCreateMonster(mobs[k], summonpos))
doSendMagicEffect(pos, 12)
doSendMagicEffect(summonpos, 10)
else
doPlayerSendCancel(cid, "You already have this kinda of summon.")
doSendMagicEffect(pos, 2)
end
else
doPlayerSendCancel(cid, "There is not enough room.")
doSendMagicEffect(pos, 2)
return true
end
else
doSendMagicEffect(pos, 2)
doPlayerSendCancel(cid, "You cannot summon more than "..maxsummon.." creature(s).")
break
end
end 
end
<instant name="Volatile Spiderling" words="utevo res tera" lvl="40" mana="20" prem="1" selftarget="1" exhaustion="2000" groups="1,2000" icon="88" needlearn="0" event="script" value="especiais/assistedsuicide.lua">
<vocation id="5"/>
<vocation id="6"/>
<vocation id="7"/>
<vocation id="8"/>
</instant>

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
@J4dson

Claro que é possível.

 

local summons = {"Demon", "Orc", "Spider", "Rat", "Tarantula", "Orc Leader"}
local maxSummons = 4

function onUse(cid)
    local s = maxSummons - #getCreatureSummons(cid)
    local str = "Voce sumonou"
    
    if s == 0 then
        
        doPlayerSendCancel(cid, "Voce ja tem 4 summons.")
        return false
    end
    
    for r = 1, s do
        local m = doCreateMonster(summons[math.random(1, #summons)], getThingPos(cid))
        
        doConvinceCreature(cid, m)
        str = str .." " .. m ..","
    end
    
    doPlayerSendTextMessage(cid, 27, str)
    return true
end

 

@DBKO

Amigo, caso não queria esses monstros, só põe na tabela qual você quer.

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites

Orochi Elf

Pow, obrigadão!

Mas não seria para summoner!

Seria monsters mesmo, normais, sakas?

O carinha usa o item e aleatoriamente nasce um monstro - entre as 4 opções.

Não como summon, como monstro mesmo. xD!

Pow, obrigadão mesmo!

Gente fina a galera daqui.

Link para o post
Compartilhar em outros sites

prontissimo

local summons = {"Demon", "Orc", "Spider", "Rat", "Tarantula", "Orc Leader"}
local maxSummons = 4

 function onUse(cid, item, frompos, itemEx, topos)
    
    for r = 1, maxSummons do
        local m = doCreateMonster(summons[math.random(1, #summons)], getThingPos(cid))
    end
    doRemoveItem(item.uid)
    doPlayerSendTextMessage(cid, 27, "Monstros sumonados com sucesso")
    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

 

prontissimo

local summons = {"Demon", "Orc", "Spider", "Rat", "Tarantula", "Orc Leader"}
local maxSummons = 4

 function onUse(cid, item, frompos, itemEx, topos)
    
    for r = 1, maxSummons do
        local m = doCreateMonster(summons[math.random(1, #summons)], getThingPos(cid))
    end
    doRemoveItem(item.uid)
    doPlayerSendTextMessage(cid, 27, "Monstros sumonados com sucesso")
    return true
end

 

Sim, ta prontinho :)

Só que você poderia também tirar a variavel "m", deixar apenas como a função kkk

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites

Só que você poderia também tirar a variavel "m", deixar apenas como a função kkk

nem queria falar nada mas ficou ruim assim porque foi você que fez... auheuhauhuheuha

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

uhauheuhauhea eu tava brincando cara, relaxa

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 emerson334
      Olá,galera do tibiaking estou com 1 grande dificultade em cria script para dar um certo intem para certo player
      exemplo eu quero dar um intem para um player chamado Tibiaking,teria um comando pra dar o intem que nois quiser para ele,ele tando OFFLINE e ONLINE
    • Por emerson334
      Olá,galera do tibiaking,não sei se estou na area correta se estiver em area errada me avise!
      Galera,eu preciso de 1ajuda ai,tipo tenho 1 poketibia(base Dash) e o fly bugo,quando eu tento da fly fala isso
      You can't  do it right now!
      não é de todos players que bugo(so forão apenas de 3pessoas que bugo)
      oque fasso pra ficar normal?
      E tabem quando uma pessoa morre ele perde o pokemon
      Exemplo tem 1 player lá upando nos pokemons,ai ele morreu ele perde um pokemon,como arrumo isso?
    • Por emerson334
      Olá galera,eu queria 1 ajudinha.
      Tipo no meu servidor eu criei torneio soque tem 1 probleminha.
      Tipo,eu quero por ele pra ir de 4x por dia,soque ele so vai 1  por dia alguem poderia me ajudar?
      os horarios que eu queria é 12:30,15:30,20:30,22:30,o script do torneio é esse
      torneio = { awardTournament = 2160, awardAmount = 10, playerTemple = {x = 1032, y = 815, z = 11}, tournamentFight = {x = 992, y = 931, z = 11}, area = {fromx = 1007, fromy = 811, fromz = 11, tox = 1053, toy = 846, toz= 11}, waitPlace = {x = 1020, y = 913, z = 11},   waitArea = {fromx = 1012, fromy = 906, fromz = 11, tox = 1030, toy = 919, toz= 11}, startHour = "22:30:00", endHour = "22:35:00", price = 5000, revivePoke = 12344, }     function getPlayersInArea(area)     local players = {}     for x = area.fromx,area.tox do for y = area.fromy,area.toy do for z = area.fromz,area.toz do     local m = getTopCreature({x=x, y=y, z=z}).uid     if m ~= 0 and isPlayer(m) then table.insert(players, m) end end end end return players end
    • Por emerson334
      Olá galera do TIBIAKING,eu tenho 1 script de TORNEIO e é o seguinte,eu já testei ele tudo 100% soque eu quero que fique 4X por dia nos seguintes horarios Horarios para entrar no torneio 12:30,15:30,20:30,22:30,Apos abrir a inscrição do torneio fecha daqui depois de 5minutos,Exemplo:12:30 fecha as 12:35
      eu só consegui faser com 1 horario
      alguem poderia me ajudar? a script está aki embaixo \/
      torneio = { awardTournament = 2160, awardAmount = 10, playerTemple = {x = 1032, y = 814, z = 11}, tournamentFight = {x = 992, y = 931, z = 11}, area = {fromx = 1007, fromy = 811, fromz = 11, tox = 1053, toy = 846, toz= 11}, waitPlace = {x = 1020, y = 913, z = 11},   waitArea = {fromx = 1012, fromy = 906, fromz = 11, tox = 1030, toy = 919, toz= 11}, startHour = "12:30:00", endHour = "12:35:00", price = 5000, revivePoke = 12344, } function getPlayersInArea(area) local players = {} for x = area.fromx,area.tox do for y = area.fromy,area.toy do for z = area.fromz,area.toz do local m = getTopCreature({x=x, y=y, z=z}).uid if m ~= 0 and isPlayer(m) then table.insert(players, m) end end end end return players end
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo