Guest User

Untitled

a guest
Jan 11th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. //===== Entregador de Itens ====================================
  2. //= Criado por: Mitsuke (Kero no brAthena)
  3. //= Créditos: Vianna (Cronus) por ajudar no isloggedin e atoi.
  4. //===== Descrição: =============================================
  5. //= Entregador de itens fácil de se utilizar, com funções
  6. //= práticas como ver todos os characters da conta e escolher em um menu.
  7. //= Entrega itens para jogadores online ou offline.
  8. //= (Máximo 127 itens por entrega, pois utiliza arrays e for)
  9. //==============================================================
  10.  
  11.  
  12. que_avan01.gat,31,41,4 script Entregador de Itens 700,{
  13. function exit;
  14.  
  15. //===== Configuração ===========================================
  16. //= Nível de GM para utilizar o entregador.
  17. set .@level,60;
  18. //= Itens que não poderão ser enviados através do NPC. (Máximo 127)
  19. setarray .@proibidos[0], 501,502,503,504,505;
  20. //==============================================================
  21.  
  22. if(getgmlevel() < .@level) end;
  23. mes "[Entregador de Itens]";
  24. mes "Olá "+strcharinfo(0);
  25. mes "O que deseja fazer?";
  26. next;
  27. if(select("Entregar itens:Sair")== 1)
  28. {
  29. mes "[Entregador de Itens]";
  30. mes "Como deseja entregar itens?";
  31. next;
  32. callsub LOGINCHAR, select("Digitando a conta:Digitando o nome do jogador");
  33. mes "[Entregador de Itens]";
  34. mes "Qual item deseja entregar?";
  35. next;
  36. input .@iditem;
  37. if(.@iditem == 0 || getitemname(.@iditem) == "null") exit "Item inválido.";
  38. for(set .@i,0; .@i < getarraysize(.@proibidos); set .@i, .@i+1)
  39. if(.@iditem == .@proibidos[.@i]) exit "Item bloqueado.";
  40. next;
  41. mes "[Entregador de Itens]";
  42. mes "Digite a quantidade.";
  43. next;
  44. input .@qtd;
  45. if(.@qtd == 0) exit "Quantidade inválida.";
  46. mes "[Entregador de Itens]";
  47. mes "Char: "+.ids$[2]+" ("+.ids$[1]+")";
  48. mes "Item: "+getitemname(.@iditem)+" ("+.@iditem+")";
  49. mes "Quantidade: "+.@qtd;
  50. next;
  51. if(select("Confirmar:Cancelar")== 2) exit "Cancelado.";
  52. if(isloggedin(atoi(.ids$[0]),atoi(.ids$[1])))
  53. {
  54. getitem .@iditem,.@qtd,.ids$[0];
  55. message .ids$[2],"Você recebeu "+.@qtd+" "+getitemname(.@iditem);
  56. logmes "'"+strcharinfo(0)+"' entregou "+.@qtd+" '"+getitemname(.@iditem)+"' ("+.@iditem+") para o(a) jogador(a) '"+.ids$[2]+"'";
  57. exit "Item entregue.";
  58. }
  59. else
  60. {
  61. query_sql "INSERT INTO `entregador` (`char_id`,`itemid`,`itemqtd`) VALUES ('"+.ids$[1]+"','"+.@iditem+"','"+.@qtd+"')";
  62. logmes "'"+strcharinfo(0)+"' entregou "+.@qtd+" '"+getitemname(.@iditem)+"' ("+.@iditem+") para o(a) jogador(a) '"+.ids$[2]+"'";
  63. exit "Item entregue.";
  64. }
  65. } else close;
  66.  
  67. LOGINCHAR:
  68. if(getarg(0)==1)
  69. {
  70. mes "[Entregador de Itens]";
  71. mes "Digite a conta do usuário.";
  72. next;
  73. input .@conta$;
  74. query_sql "SELECT `account_id` FROM `login` WHERE `userid`='"+.@conta$+"'",.@accid;
  75. if(.@accid == 0) exit "A conta não existe.";
  76. query_sql "SELECT `char_id`,`name` FROM `char` WHERE `account_id`='"+.@accid+"'",.@charids,.@nomes$;
  77. mes "[Entregador de Itens]";
  78. mes "Escolha um character.";
  79. next;
  80. for(set .@i,0; .@i < getarraysize(.@nomes$); set .@i, .@i+1)
  81. set .@menu$, .@menu$ + .@nomes$[.@i] + ":";
  82. set .@n, select(.@menu$)-1;
  83. setarray .ids$[0], .@accid,.@charids[.@n],.@nomes$[.@n];
  84. return;
  85. }
  86. else
  87. {
  88. mes "[Entregador de Itens]";
  89. mes "Digite o character.";
  90. next;
  91. input .@char$;
  92. query_sql "SELECT `char_id`,`account_id`,`name` FROM `char` WHERE `name`='"+.@char$+"'",.@charid,.@accid,.@nome$;
  93. if(.@charid == 0) exit "O character não existe.";
  94. setarray .ids$[0], .@accid,.@charid,.@nome$;
  95. return;
  96. }
  97.  
  98. OnPCLoginEvent:
  99. query_sql "SELECT `itemid`,`itemqtd` FROM `entregador` WHERE `char_id`='"+getcharid(0)+"'",.@iditem,.@qtditem;
  100. if(.@iditem == 0) end;
  101. else
  102. {
  103. for(set .@i,0; .@i < getarraysize(.@iditem); set .@i, .@i+1)
  104. getitem .@iditem[.@i],.@qtditem[.@i];
  105. query_sql "DELETE FROM `entregador` WHERE `char_id`='"+getcharid(0)+"'";
  106. end;
  107. }
  108.  
  109. function exit {
  110. mes "[Entregador de Itens]";
  111. mes getarg(0);
  112. close;
  113. }
  114. }
Add Comment
Please, Sign In to add comment