Mulizeu 86 Postado Setembro 29, 2011 Share Postado Setembro 29, 2011 (editado) 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 Setembro 30, 2011 por mulizeu Link para o comentário https://xtibia.com/forum/topic/168776-actions/ Compartilhar em outros sites More sharing options...
Eskylo 175 Postado Setembro 30, 2011 Share Postado Setembro 30, 2011 (editado) 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 Outubro 1, 2011 por Eskylo Link para o comentário https://xtibia.com/forum/topic/168776-actions/#findComment-1109529 Compartilhar em outros sites More sharing options...
Mulizeu 86 Postado Setembro 30, 2011 Autor Share Postado Setembro 30, 2011 (editado) 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 Setembro 30, 2011 por mulizeu Link para o comentário https://xtibia.com/forum/topic/168776-actions/#findComment-1109563 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Setembro 30, 2011 Share Postado Setembro 30, 2011 Claro que pode ser considerado um scripter lua, só falta aperfeiçoar suas habilidades Parabéns, se está estudando apenas há 2 dias sem ajudas, então está bem de mais. Link para o comentário https://xtibia.com/forum/topic/168776-actions/#findComment-1109592 Compartilhar em outros sites More sharing options...
Mulizeu 86 Postado Setembro 30, 2011 Autor Share Postado Setembro 30, 2011 Obg a todos, ainda cometo erros pois e normal, porque e errando que se aprende! Link para o comentário https://xtibia.com/forum/topic/168776-actions/#findComment-1109701 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Setembro 30, 2011 Share Postado Setembro 30, 2011 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 https://xtibia.com/forum/topic/168776-actions/#findComment-1109941 Compartilhar em outros sites More sharing options...
Mulizeu 86 Postado Setembro 30, 2011 Autor Share Postado Setembro 30, 2011 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 https://xtibia.com/forum/topic/168776-actions/#findComment-1109944 Compartilhar em outros sites More sharing options...
Blueberry 0 Postado Novembro 22, 2011 Share Postado Novembro 22, 2011 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 https://xtibia.com/forum/topic/168776-actions/#findComment-1137475 Compartilhar em outros sites More sharing options...
Eskylo 175 Postado Novembro 22, 2011 Share Postado Novembro 22, 2011 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 https://xtibia.com/forum/topic/168776-actions/#findComment-1137614 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Novembro 22, 2011 Share Postado Novembro 22, 2011 (editado) 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 Novembro 22, 2011 por Demonbholder Link para o comentário https://xtibia.com/forum/topic/168776-actions/#findComment-1137700 Compartilhar em outros sites More sharing options...
Eskylo 175 Postado Novembro 24, 2011 Share Postado Novembro 24, 2011 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 https://xtibia.com/forum/topic/168776-actions/#findComment-1138547 Compartilhar em outros sites More sharing options...
Posts Recomendados