iansinho 0 Postado Maio 24, 2012 Share Postado Maio 24, 2012 Olá novamente xtibianos Bom, eu queria saber como que faz um loop para fazer uma certa ação com os players que possuem certo storage. Na linguagem .lua eu nunca vi, mas na linguagem pawn é assim que se faz: for(new i = 0; i < PlayersOnline); ++i ) { if (PlayerStorage(i) == 12345) { FazerAcão(i) } } Obrigado desde já. Link para o comentário Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 24, 2012 Share Postado Maio 24, 2012 depende do que você quer fazer, você diz em todos os players online?, em certa position? ou checar a storage individualmente de cada player? Link para o comentário Compartilhar em outros sites More sharing options...
0 caotic 393 Postado Maio 24, 2012 Share Postado Maio 24, 2012 (editado) Como o vodkart depende de qual maneira vai verificar a storage se e de o player ou se uma verificaçao a todos os players. Todos os dois sao possiveis de modo que a verificaçao de todos os players se nao estivessem online teria que fazer uma verificaçao na db. Editado Maio 24, 2012 por caotic Link para o comentário Compartilhar em outros sites More sharing options...
0 iansinho 0 Postado Maio 24, 2012 Autor Share Postado Maio 24, 2012 Entendi a pergunta. É para fazer o seguinte, por exemplo: Eu quero que todos os jogadores ONLINE que têm a storage 12345, ganhem 10kk. Neste exemplo eu poderia colocar esta função no globalevents, para dar 10kk a quem estivesse online e com a storage 12345, a cada 1 hora. Entenderam? Link para o comentário Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 24, 2012 Share Postado Maio 24, 2012 (editado) function onThink(interval, lastExecution) local players = {} local storage,items = 12345, {2160, 100} for _, pid in pairs (getPlayersOnline()) do if getPlayerStorageValue(pid, storage) >= 1 then table.insert(players, pid) end end if #players > 0 then for i = 1, #players do doPlayerAddItem(players[i], items[1], items[2]) end end return TRUE end Editado Maio 24, 2012 por Vodkart premii reagiu a isso 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 jhon992 370 Postado Maio 24, 2012 Share Postado Maio 24, 2012 (editado) A logica é a mesma que na outra linguagem, sóh irá mudar as funções: local online = getPlayersOnline() -- retorna todos os players online for i=1, #online do -- abre uma estrutura de repetição que vai de 1 até a última posição do vetor online. if getPlayerStorageValue(online[i], 12345) > 0 then -- verifica se o player da posição i do vetor tem a determinada storage. doPlayerAddMoney(online[i], 1000000) -- adiciona 10kk ao player da posição i do vetor. end -- finaliza o if end -- finaliza o for Lista de função que pode te ajudar nos seus códigos: http://www.xtibia.co...sta-de-funcoes/ -edit Tava escrevendo e nem tinha visto que o Vod postou. Agora que ja postei deixa aew, quem sabe ajuda ele a entender melhor. Editado Maio 24, 2012 por Jhon992 Link para o comentário Compartilhar em outros sites More sharing options...
0 iansinho 0 Postado Maio 24, 2012 Autor Share Postado Maio 24, 2012 Vodkart muito obrigado, mas eu não entendi nada de cada linha que você postou ali... A do Jhon922 está explicada mas está tão diferente da função que você pois. Obrigado também Jhon922 Mas pera ai, eu posso usar tanto a do Jhon922 quanto a do Vodkart? Link para o comentário Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 24, 2012 Share Postado Maio 24, 2012 bom a diferença do meu é que eu coloquei os jogadores que tem a storage numa tabela, porque imagina se não tiver ninguém online com essa storage? iria dar erro no distro, enão o meu faz a checagem se tem algum online e executa o script, já o do jhon funciona perfeitamente também, mas tem esse possível bug que eu te disse. Link para o comentário Compartilhar em outros sites More sharing options...
0 iansinho 0 Postado Maio 24, 2012 Autor Share Postado Maio 24, 2012 Ah entendi. Mas neste caso esse bug não vai ser possível, porque aquilo foi só um exemplo rsrs. Era pra fazer um sistema que o jogador escolhe se vai entrar no evento... se ele escolher sim (!participar) vai setar a storage nele, ai eu vou criar um comando pra fazer broadcast só pra eles entendeu? Mas as broadcasts são automaticas, e elas só vão ser ativadas quando pelo menos 1 jogador digitar !sim... Entendeu porque esse possível bug não será possível? rsrs. Bom então, duvida resolvida, obrigado aos 2... Como terei que escolher apenas 1 pra dar REP+, eu vou escolher o Vodkart, mas Jhon922, relaxa que eu fico te devendo uma Link para o comentário Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 24, 2012 Share Postado Maio 24, 2012 Ah entendi. Mas neste caso esse bug não vai ser possível, porque aquilo foi só um exemplo rsrs. Era pra fazer um sistema que o jogador escolhe se vai entrar no evento... se ele escolher sim (!participar) vai setar a storage nele, ai eu vou criar um comando pra fazer broadcast só pra eles entendeu? Mas as broadcasts são automaticas, e elas só vão ser ativadas quando pelo menos 1 jogador digitar !sim... Entendeu porque esse possível bug não será possível? rsrs. Bom então, duvida resolvida, obrigado aos 2... Como terei que escolher apenas 1 pra dar REP+, eu vou escolher o Vodkart, mas Jhon922, relaxa que eu fico te devendo uma ai já é outro script, é talkactions, globalevents é uma coisa, outra forma de fazer, talkactions é outra. Link para o comentário Compartilhar em outros sites More sharing options...
0 iansinho 0 Postado Maio 24, 2012 Autor Share Postado Maio 24, 2012 Ah entendi. Mas neste caso esse bug não vai ser possível, porque aquilo foi só um exemplo rsrs. Era pra fazer um sistema que o jogador escolhe se vai entrar no evento... se ele escolher sim (!participar) vai setar a storage nele, ai eu vou criar um comando pra fazer broadcast só pra eles entendeu? Mas as broadcasts são automaticas, e elas só vão ser ativadas quando pelo menos 1 jogador digitar !sim... Entendeu porque esse possível bug não será possível? rsrs. Bom então, duvida resolvida, obrigado aos 2... Como terei que escolher apenas 1 pra dar REP+, eu vou escolher o Vodkart, mas Jhon922, relaxa que eu fico te devendo uma ai já é outro script, é talkactions, globalevents é uma coisa, outra forma de fazer, talkactions é outra. Mas pra fazer o loop não é a mesma coisa? Você tá falando que é diferente no sentido de que no globalevents pode ocorrer o bug né? Link para o comentário Compartilhar em outros sites More sharing options...
0 Vodkart 1515 Postado Maio 24, 2012 Share Postado Maio 24, 2012 o loop é o mesmo sim, estou dizendo que o script para dar uma premio a cada uma hr é uma coisa, e outro de setar a storage pelo talk é outra coisa, envolve mais parâmetros.... Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
iansinho 0
Olá novamente xtibianos
Bom, eu queria saber como que faz um loop para fazer uma certa ação com os players que possuem certo storage.
Na linguagem .lua eu nunca vi, mas na linguagem pawn é assim que se faz:
Obrigado desde já.
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados