Ir para conteúdo

Adicionando Itens Para Todos Os Players.


pessoa93

Posts Recomendados

Esse script dar itens para todos os players online.

1024886.jpeg

 

Em /data/talkactions/talkactions.xml adicione:

<talkaction words="/additem" acces="5" event="script" value="additem.lua"/>

 

Em /data/talkactions/scripts/additem.lua adicione:

function onSay(cid, words, param, channel) -- Script by Dubler, written for megaevo.net

local t = string.explode(param, ",")

if t[1] ~= nil and t[2] ~= nil then

local list = {}

for i, tid in ipairs(getPlayersOnline()) do -- Script by Dubler, written for megaevo.net

list = tid

end

for i = 1, #list do

doPlayerAddItem(list,t[1],t[2])

end -- Script by Dubler, written for megaevo.net

doBroadcastMessage(getPlayerName(cid) .. " has given reward: " .. t[2] .." ".. getItemNameById(t[1]) .. " for all players!")

else

doPlayerPopupFYI(cid, "No parm...\nSend:\n /itemadd itemid,how_much_items\nexample:\n /itemadd 2160,10")

end

return true

end -- Script by Dubler, written for megaevo.net

 

Créditos:

Feito por Dubler.

Traduzido por mim para o Xtibia.

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

Ha! Chegou o chato crítico.

 

 

O script não dá item exatamente para todos os players, dá para todos players online.

Para dar pra todos, incluindo onlines e offlines, o script teria que trabalhar com o banco de dados.

 

Outro erro é que o broadcast (mensagem em vermelho) está no loop, então a mensagem não vai ser enviada apenas uma vez, vai ser enviada vezes o número de players online.

 

Corrigindo esse erro do broadcast, fazendo enviar apenas uma vez, aqui o script:

 

 

 

function onSay(cid, words, param, channel) -- Script by Dubler, written for megaevo.net
local t = string.explode(param, ",")
 if t[1] ~= nil and t[2] ~= nil then
 local list = {}
  for i, tid in ipairs(getPlayersOnline()) do -- Script by Dubler, written for megaevo.net
  list[i] = tid
  end
  for i = 1, #list do
   doPlayerAddItem(list[i],t[1],t[2])
  end -- Script by Dubler, written for megaevo.net
  doBroadcastMessage(getPlayerName(cid) .. " has given reward: " .. t[2] .." ".. getItemNameById(t[1]) .. " for all players!")
 else
 doPlayerPopupFYI(cid, "No parm...\nSend:\n /itemadd itemid,how_much_items\nexample:\n /itemadd 2160,10")
 end
return true
end -- Script by Dubler, written for megaevo.net

 

 

 

Mais uma coisa, os players que não tiverem cap, provavelmente irá para o chão o item.

 

Valeu Felipe pela contribuição com o fórum, infelizmente não posso reputar mais hoje.

Link para o comentário
Compartilhar em outros sites

Qual Seria o ITEM Exatamente que os Players Ganhariam?

 

Teria Como Mudar os ITEMS e Colocar Mas de 1 ITEM?

 

 

Muito Obrigado Por Trazer esse Script Ao XTibia.

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

Qual Seria o ITEM Exatamente que os Players Ganhariam?

 

Teria Como Mudar os ITEMS e Colocar Mas de 1 ITEM?

 

 

Muito Obrigado Por Trazer esse Script Ao XTibia.

 

Amigo, pelo que entendi sobre esse script, você usa um comando e escreve o id do item example: '/additem 2160,10' intão, você mandaria 100k pra todos jogadores online, e assim por diante com o id que você quiser :} 2160 = Crystal coin 10 = Quantidade enviada.

Link para o comentário
Compartilhar em outros sites

KKKK A FOTO DO COMEÇO ESTA COM O MAPA IGUAL O MEU :thumbsupsmiley:

 

Ficou muito Fodao Parabens cara ta me ajudando muito com seus tutoriais meu progeto ta cheio de tutoriais seus VLW

 

Continue assim

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

  • 4 weeks later...
×
×
  • Criar Novo...