Ir para conteúdo
  • 0

[Pedido] Mudança em Script


Farathor

Pergunta

Pessoal, esse script funciona da seguinte forma, eu falo assim. /coliseum 10,demon e ele sumona 10 demons em uma determinada area, eu queria fazer assim, que tivesse varías areas configuradas no Script.

Por exemplo: /spawnCity1 50,Demon. Ele sumona 50 demons na area configurada da City 1. se eu falo /spawnCity2 50,Demon. Ele sumona 50 demons na area configurada da city 2, Entenderam?

 

local t = {xx = {1706,1719},
yy = {1614,1623},
zz = {7},
efeito = {10}
}
function onSay(cid, words, param, channel)
addEvent(d,tempo*60*1000)
local ta = string.explode(param, ",")
if(ta[1] and ta[2]) then


for i = 1,tonumber(ta[1]) do
ef,eff = math.random (t.xx[1],t.xx[2]),math.random (t.yy[1],t.yy[2])
doSummonCreature(ta[2],{x=ef, y=eff , z=t.zz[1]})
doSendMagicEffect({x=ef, y=eff , z=t.zz[1]},t.efeito[1])
end
  else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "[Erro] Comando Errado")
return true
end
return true
end

 

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Não se esqueça de registrar as palavras que executarão o código na tag.

Ex.:

<talkaction words="/spawnEnigma;/spawnSvargrond;/spawnYalahar" access="4" event="script" value="nome_do_arquivo.lua"/>

Script:

local cities = {
    ["enigma"] = {                   --Cidade.
        summon_effect = xxx,         --Efeito.
        coordinates = {
            x = {1047, 1053},        --fromPos (x), toPos (x).
            y = {1058, 1061},        --fromPos (y), toPos (y).
            z = 7                    --Coordenadas de z.
        }
    },
    ["svargrond"] = {
        summon_effect = xxx,        
        coordinates = {
            x = {x, x},        
            y = {y, y},      
            z = z                  
        }
    },
}
 
function onSay(cid, words, param)
    local city, w = cities[words:lower():match("/spawn(.*)")], param:explode(";")
    if not city then
        return doPlayerSendCancel(cid, "This city isn't available.")
    end
    
    local monster_raid = {}
    for i = 1, #w do
        local m_info = w[i]:explode(",")
        local count, monster_name = tonumber(m_info[1]), m_info[2]
        if not count or not monster_name then
            return doPlayerSendCancel(cid, "Wrong parameters.")
        end
        
        monster_raid[i] = {count, monster_name}
    end
    
    for i = 1, #monster_raid do
        for monster_count = 1, monster_raid[i][1] do
            local summon_position = {x = math.random(city.coordinates.x[1], city.coordinates.x[2]), y = math.random(city.coordinates.y[1], city.coordinates.y[2]), z = city.coordinates.z}
 
            doCreateMonster(monster_raid[i][2], summon_position)
            doSendMagicEffect(summon_position, city.summon_effect)
        end
    end
    return true
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

desculpe :x,

 

Mais uma coisa, invés de eu ir adicionando um monstro de cada vez, teria como ser assim? /spawnEnigma 10,Demon;10,Dragon

 

@Edit: eu configurei, mas quando fui utilizar o comando aparecia a seguinte mensagem "This city isn't available."

 

eu utilizei o comando /spawnEnigma 10,Demon

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

  • 0

Corrigi um pequeno problema que não havia reparado enquanto escrevia o código, além de ter atualizado-o com esta modificação que você pediu. Entretanto, o erro que mencionei não estava relacionado a esse que você teve. Se a mensagem "This city isn't available." está aparecendo, as únicas explicações são que você ou tenha errado na formatação da mensagem ou que a cidade não tenha sido configurada na tabela. O comando em si está funcionando perfeitamente.

Link para o comentário
Compartilhar em outros sites

  • 0


[29/9/2015 10:54:30] [Error - TalkAction Interface]

[29/9/2015 10:54:30] data/talkactions/scripts/SpawnCitys.lua:onSay

[29/9/2015 10:54:30] Description:

[29/9/2015 10:54:30] (LuaInterface::luaDoCreateMonster) Cannot create monster: demon

[29/9/2015 10:54:30] [Warning - Npc::createNpc] Cannot find npc with name: demon.


[29/9/2015 10:54:30] [Error - TalkAction Interface]

[29/9/2015 10:54:30] data/talkactions/scripts/SpawnCitys.lua:onSay

[29/9/2015 10:54:30] Description:

[29/9/2015 10:54:30] (LuaInterface::luaDoCreateNpc) Npc with name 'demon' not found


[29/9/2015 10:54:30] [Error - TalkAction Interface]

[29/9/2015 10:54:30] data/talkactions/scripts/SpawnCitys.lua:onSay

[29/9/2015 10:54:30] Description:

[29/9/2015 10:54:30] (LuaInterface::luaDoCreateMonster) Cannot create monster: serpent spawn

[29/9/2015 10:54:30] [Warning - Npc::createNpc] Cannot find npc with name: serpent spawn.



comando utilizado foi: /spawnEnigma 1000,demon;50,serpent spawn


@edit Quando eu vou criar qualquer monstro, dá esse erro mas ele acaba criando os monstros

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

  • 0

Hm, atualizei o código substituindo a função responsável por invocar os monstros. Talvez isso resolva seu problema. Procure também formatar o comando com o nome próprio dos monstros (Demon, por exemplo, e não demon).

Link para o comentário
Compartilhar em outros sites

  • 0

não mudou muita coisa

 

[1/10/2015 21:13:23] [Error - TalkAction Interface]
[1/10/2015 21:13:23] data/talkactions/scripts/SpawnCitys.lua:onSay
[1/10/2015 21:13:23] Description:
[1/10/2015 21:13:23] (LuaInterface::luaDoCreateMonster) Cannot create monster: Demon
Editado por Farathor
Link para o comentário
Compartilhar em outros sites

  • 0

Crie uma quantidade de monstros que seja cabível no local. Invocar 1000 Demons numa área onde talvez não caibam 50 não vai funcionar, por incrível que pareça.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...