Ir para conteúdo

[Actions]


Mulizeu

Posts Recomendados

eu havia olhado o que um amigo nosso do topico fez e eu resolvi fazer outro um pouco melhorado!

 

com criatura randomicas, e a criatura e sumonada perto do player(se desejar pode colocar um posiçao onde queira que summona), ta com exausted, vo por um que retira o item e um que nao!

 

vamus ao script: que nao retira o item usado!

 

V 1.0

 

--------BY MULIZEU----------
function onUse(cid, item, position, toposition)
local M = {
[1] = {"Demon",{x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}},
[2] = {"apocalypse",{x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}},
[3] = {"Dog",{x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}}
}
local storage = 12122
local time = 5
if getGlobalStorageValue(storage) >= os.time() then
return false
end
r = math.random(1, #M)
doCreateMonster(M[r][1], M[r][2])
doCreatureSay(cid, "Oh! my God", 19)
doSendMagicEffect(getPlayerPosition(cid),36)
setGlobalStorageValue(storage, os.time()+time)
end

 

 

 

agr o que retira:

 

V1.0

 

---------BY MULIZEU-------------------
function onUse(cid, item, position, toposition)
local M = {
[1] = {"Demon",{x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}},
[2] = {"apocalypse",{x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}},
[3] = {"Dog",{x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}}
}
local storage = 12122
local time = 5
if getGlobalStorageValue(storage) >= os.time() then
return false
end
r = math.random(1, #M)
doCreateMonster(M[r][1], M[r][2])
doRemoveItem(item.uid,1)
doCreatureSay(cid, "Oh! my God", 19)
doSendMagicEffect(getPlayerPosition(cid),36)
setGlobalStorageValue(storage, os.time()+time)
end

 

 

 

 

V2.0
----Edited_by_eskylo <<<<<<<<<<<<<<<<<<<
---------BY MULIZEU------------------
       function onUse(cid, item, position, toposition)

       remover_item = "yes" --Troque para "no" se quiser

       local M = {
               [1] = "Demon",
               [2] = "Apocalypse",
               [3] = "Dog",
       }

       local storage = 12122
       local time = 5

       if getPlayerStorageValue(cid, storage) >= os.time() then
               return false
       end

       r = math.random(1, #M)
       doCreateMonster(M[r][1], {x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z})

       if remover_item == "yes" then
               doRemoveItem(item.uid, 1)
       end

       doCreatureSay(cid, "Oh! my God", 19)
       doSendMagicEffect(getPlayerPosition(cid), 36)
       setPlayerStorageValue(cid, storage, os.time()+time)
       return true
end

 

 

a tag:

<action itemid="ID DO ITEM" script="nome do arquivo.lua" />

 

onde ta "demon", "apocalypse", e so mudar para os summon que queiram

 

para adc mais coloque Exemplo:

 

[4] = {"Dunga",{x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}}

 

sempre que adc 1 monstro novo coloque uma virgula na casa anterior exemplo:

 

[1] = {"Demon"}, << olhe a virgula
[2] = {"Dog"} << ultimo sem virgula

 

qualquer duvida poste aki

 

 

v1.0 BY MULIZEU

 

v2.0 BY MULIZEU/ CORRIGIDO POR SKYLO

 

Creditos

80% [eu por fazer script}

20%[skylo por melhora-lo}

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

Bacana

 

Minha crítica/dica

 

Se for usar a mesma posição para cada monstro, então não precisava colocar a pos em cada monstro.

 

Acho que não foi intencional da sua parte, mas vc tinha usado global storage, o q impediria, q duas pessoas no server usassem ao mesmo tempo.

 

Use uma variável para o usuário escolher se remove ou não o item, melhor que postar 2 scripts.

 

Apliquei essas duas correções acima

 

 

----Edited_by_eskylo <<<<<<<<<<<<<<<<<<<
---------BY MULIZEU------------------
function onUse(cid, item, position, toposition)

remover_item = "yes" --Troque para "no" se quiser

local M = {
	[1] = "Demon",
	[2] = "Apocalypse",
	[3] = "Dog",
}

local storage = 12122
local time = 5

if getPlayerStorageValue(cid, storage) >= os.time() then
	return false
end

r = math.random(1, #M)
doCreateMonster(M[r][1], {x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z})

if remover_item == "yes" then
	doRemoveItem(item.uid, 1)
end

doCreatureSay(cid, "Oh! my God", 19)
doSendMagicEffect(getPlayerPosition(cid), 36)
setPlayerStorageValue(cid, storage, os.time()+time)
return true
end

 

 

Tem mais coisas:

 

As vezes a pos que vc escolheu pode n ser andavel e dar pau e etc

vlw pela contribuiçao

@edit: ...

 

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

Bom obg pela critica constutiva sobre global storage nao foi proposital foi uma equivoco meu, e sobre a variavel nao avia pensado nisso

 

e sobre

 

 

Na minha opnião vc não pode se considerar Scripter Lua, estude mais, duvido q vc nao consiga

 

creio que possi sim me considerar um scripter.lua pois eu realmente comecei a ver script.lua a 2 dias e estou caminhando sem ajuda

 

e sobre a position eu ainda estou aprendendo nao sei mto sobre a msm por isso fiz a sim, se vc puder e quizer me ajudar mais sobre lua eu ficarei grato

 

mais obg por tudo, tenhu certezade de que nao foi por mau sua critica e sim para me ajudar a crescer obg novamente!

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

fatão

é errando que se aprende,no começo ninguém me ensinou nada,depois conheci algumas pessoas que manjavam como o kydrai,oneshot,apocarai,maklo e aí vai expandido seu conhecimento...

Link para o comentário
Compartilhar em outros sites

Vlw vodkart...eu me inspirei em tu para começar a fazer script, pois eu sempre vejo vc ajudando as pessoas, e tbm belos trabalho seus!

Pretendo expandir meu conhecimento, e quem sabe um dia eu consiga ser tao bom qto vcs!

=]

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Desculpe reviver o tópico, mas estava atrás desse script a muito tempo, queria saber se tem como colocar cada monstro com uma chance diferente de nascer ao usar o item, exemplo

 

dog = 70%

Demon = 25%

Morgaroth = 5%

 

só um exemplo pra ver como fica, não gosto de nada de mão beijada, prefiro ver exemplos e editar da maneira que mais será viável para mim ! =D

Link para o comentário
Compartilhar em outros sites

com poqin de logica de programaçao da sim, ainda n testei...

 

----Edited2x_by_eskylo <<<<<<<<<<<<<<<<<<<
---------BY MULIZEU------------------
   function onUse(cid, item, position, toposition)

   remover_item = "yes" --Troque para "no" se quiser
   quantidade_de_monsters = 3 --Número de monsters q o script vai sumonar

   local M = {
       [1] = "Demon",
       [2] = "Morgaroth",
       [3] = "Dog",
   }
   local porcentagem = {
       [1] = 25,
       [2] = 5,
       [3] = 70,
   }

   local storage = 12122
   local time = 5

   if getPlayerStorageValue(cid, storage) >= os.time() then
       return false
   end

   var = 0
   for i = 1, quantidade_de_monsters do
       r = math.random(1, 100)
       for i2 = 1, #porcentagem do
           var = var + porcentagem[i2]
           if var <= r then
               doCreateMonster(M[r][1], {x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z})
           end
       end
       var = 0
   end

   if remover_item == "yes" then
       doRemoveItem(item.uid, 1)
   end

   doCreatureSay(cid, "Oh! my God", 19)
   doSendMagicEffect(getPlayerPosition(cid), 36)
   setPlayerStorageValue(cid, storage, os.time()+time)
   return true
end

Link para o comentário
Compartilhar em outros sites

Eskylo, seu script poderia ficar melhor se você utilizasse apenas uma tabela e nos valores desta inserir uma tabela com o nome do monstro e a porcentagem.

 

E não entendi por que o uso de uma variável que soma as chances, considerando que é uma certa chance pra cada monstro, não uma soma de todas.

 

Acho que o script que ele falava era algo parecido com isso:

 

 

----Edited2x_by_eskylo <<<<<<<<<<<<<<<<<<<
---------BY MULIZEU------------------
function onUse(cid, item, position, toposition)

remover_item = "yes" --Troque para "no" se quiser
quantidade_de_monsters = 3 --Número de monsters q o script vai sumonar

local M = {
	[1] = {"Demon", 25},
	[2] = {"Morgaroth", 5},
	[3] = {"Dog", 70},
}

local storage = 12122
local time = 5

if getPlayerStorageValue(cid, storage) >= os.time() then
	return false
end

for i = 1, quantidade_de_monsters do
for index, tab in pairs(M) do
if math.random(1,100) <= tab[2] then
doCreateMonster(tab[1], {x=getPlayerPosition(cid).x - 1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z})
end
end
end

if remover_item == "yes" then
	doRemoveItem(item.uid, 1)
end

doCreatureSay(cid, "Oh! my God", 19)
doSendMagicEffect(getPlayerPosition(cid), 36)
setPlayerStorageValue(cid, storage, os.time()+time)
return true
end

 

Corrija-me se eu estiver errado.

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

demonb fiquei com preguiça de coisar a tab ali e acabai criando outra. eu tinha feito uma logica parecida com a sua, mas ai eu acho q a matematica da porcentagem fica errada, ai criei a variavel var, p corrigir

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...