cder Posted June 4, 2019 Posted June 4, 2019 (edited) Olá pessoal, estou dando inicio ao meu projeto, e preciso de uma ajudinha, queria fazer uma função de pegar 1 item do player, a cada 1minuto, e somente quando o player tive-se online... O que tentei ? function script pegaritem { getcharid(0); if(getcharid(0)){ attachrid(getcharid(3)); end; } else{ if(attachrid(getcharid(3))){ OnTimer60000: delitem 502,1; end; } } } Resultado ? Nada Ocorreu alguém pode me da essa pequena ajuda ?, significa muito pro meu serve isso Edited June 4, 2019 by Emistry Please use codebox. Quote
iJohn Posted February 23, 2023 Posted February 23, 2023 function script pegaritem { if(!getcharid(3)) // Verifica se o jogador está online end; OnTimer: if(!getcharid(3)) // Verifica se o jogador está online end; delitem 502, 1; // Remove o item do jogador settimer 60000, callfunc("OnTimer"); // Define o tempo para a próxima chamada da função } Este script usa a função settimer para definir um temporizador que chama a função OnTimer a cada 1 minuto. Dentro da função OnTimer, o script verifica se o jogador ainda está online e, se sim, remove o item especificado (neste caso, o item com ID 502) do inventário do jogador. Em seguida, a função define outro temporizador para a próxima chamada da função. Lembre-se de que, se o seu servidor tiver sistemas de proteção contra bots, é possível que este script acione esses sistemas e cause problemas para os jogadores. Portanto, é importante implementar essas funções com cuidado e avaliar seus efeitos em relação à experiência dos jogadores. Quote
AdrianoGC Posted March 21, 2023 Posted March 21, 2023 (edited) prontera,185,185,5 script Pegaritem 109,{ mes "[Pegaritem]: Olá, você está afk por muito tempo. Eu preciso remover um item do seu inventário."; mes "[Pegaritem]: Tem certeza que deseja continuar? Você perderá um item."; switch (select("Sim", "Não")) { case 1: if (countidlepc(sd, 1) >= 60000) { // verifica se o jogador está AFK por mais de um minuto (60000 milissegundos) if (pc.countitem(sd, 502) > 0) { // verifica se o jogador tem o item com ID 502 pc.delitem(sd, 502, 1, 0, 0); // remove o item com ID 502 do inventário do jogador mes "[Pegaritem]: Você perdeu um item com ID 502 por ficar afk por muito tempo."; } else { mes "[Pegaritem]: Você não tem o item com ID 502."; } } else { mes "[Pegaritem]: Tudo bem, volte quando estiver pronto para jogar."; } break; case 2: mes "[Pegaritem]: Tudo bem, volte quando estiver pronto para jogar."; break; default: mes "[Pegaritem]: Tudo bem, volte quando estiver pronto para jogar."; break; } close; } Este código cria um NPC chamado "Pegaritem" em Prontera nas coordenadas (185, 185) com o ID 109. Quando o jogador interage com o NPC, ele exibe uma mensagem de diálogo informando que o jogador está AFK por muito tempo e que o item com o ID 502 será removido. Se o jogador confirmar, o código verifica se o jogador está AFK por mais de um minuto. Se sim, o código verifica se o jogador tem o item com o ID 502. Se o jogador tiver o item com o ID 502, o código remove o item do inventário do jogador e exibe uma mensagem de confirmação. Caso contrário, exibe uma mensagem informando que o jogador não tem o item com o ID 502. Compile seu servidor rAthena novamente e reinicie-o para que as alterações tenham efeito. Agora, o NPC "Pegaritem" em Prontera removerá o item com o ID 502 do inventário do jogador se ele ficar AFK por mais de um minuto. (Ainda não testei) Edited March 21, 2023 by AdrianoGC Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.