1. /*-----------------------------------------------------------------*\
  2. | ______ ____ _____ ___ __ |
  3. | / ____ / _ / ____/ / / / |
  4. | \___ / __/ __/ / /__/ /___ |
  5. | /_____/_ / /____//_____/______/ |
  6. | /\ /| __ __________ _________ |
  7. | / \/ | / | / ___ __/ ___/ _ / |
  8. | / | / ' | _\ \ / / / __// __/ |
  9. | / /\/| |/_/|_|/____//_/ /____/_/\ \ |
  10. | /__/ |_| npc Script \/ |
  11. | |
  12. +-------------------------------------------------------------------+
  13. | Projeto Ragnarok Online |
  14. +-------------------------------------------------------------------+
  15. | - Criação: Spell Master 16/07/2011 |
  16. +-------------------------------------------------------------------+
  17. | - 17/05/2013: |
  18. Atualizado para novo source cord rAthena. |
  19. | - 22/09/2014: |
  20. | Atualizado conforme a nova estrutura do banco de |
  21. | dados do rAthena. |
  22. | - 04/12/2014: |
  23. | Adicionado função de checagem se é verdadeira a |
  24. | doação na conta do banco. |
  25. | - 13/07/2015: |
  26. | Adicionado função para manipulação de GM. |
  27. | - 15/11/2015: |
  28. | Atualizado para compatibilidade com Hercules. |
  29. | - 08/12/2016: |
  30. | Removida funções de manipulação de cash. |
  31. | Removida referências ao Ticket de Vip. |
  32. | Removido desão de GM pois requer manipulação da |
  33. | da source, inviável para uso geral. |
  34. | Removido consulta para o ADM de verificar se o |
  35. | foi feita doação na conta do tesoureiro no banco, |
  36. | pois requer função php e manipulação de source se |
  37. | tornando iniável para o uso geral. |
  38. | - 09/12/2016: |
  39. | Adicionado variáveis globais para definir atributos.|
  40. | Atualizado para compatibilidade com Cronus. |
  41. \*-----------------------------------------------------------------*/
  42. - script #vip_manager -1,{
  43. // Configuração para todos poderem usar o npc ^.^
  44. .@Vip_Room$ = "sec_in02"; // Nome do mapa da sala vip
  45. .@Vip_X = 138; // Coordenadas
  46. .@Vip_Y = 161; // Coordenadas
  47. if(getgroupid() > 2 && getgroupid() < 10) {
  48. mes "Porteira Vip Premium";
  49. mes "Olá ^FF0000"+strcharinfo(0)+"^000000";
  50. while(1) {
  51. next;
  52. mes "Porteira Vip Premium";
  53. mes "O que posso fazer por você hoje?";
  54. next;
  55. switch(select("Ir para sala vip.:Consultar dias Vip restantes:Nada Obrigado")) {
  56. case 1:
  57. mes "Porteira Vip Premium";
  58. mes "Volte sempre que precisar de meus serviços.";
  59. close2;
  60. warp .@Vip_Room$,.@Vip_X,.@Vip_Y;
  61. end;
  62. case 2:
  63. query_sql "SELECT DATE_FORMAT(`dt_vip`, '%d/%m/%Y') FROM `login` WHERE `account_id`="+getcharid(3),.@VipDays$;
  64. mes "Porteira Vip Premium";
  65. mes "Sua conta Vip é válida até o dia" +.@VipDays$;
  66. break;
  67. //case 3: Removida funções de consulta de cash
  68. //case 4: Removida funções de compra do ticket de vip
  69. //case 5: Trasformada em valor 3 para novo menu
  70. case 3:
  71. mes "Porteira Vip Premium";
  72. mes "Volte sempre que precisar de meus serviços.";
  73. close;
  74. }
  75. }
  76. }
  77. else if(getgroupid() > 9 && getgroupid() < 99) {
  78. mes "Porteira Vip Premium";
  79. mes "Olá membro da Staff ^FF0000"+strcharinfo(0)+"^000000";
  80. mes "O que posso fazer por você hoje?";
  81. next;
  82. switch(select("Ir para sala vip.:Nada Obrigado")) {
  83. case 1:
  84. mes "Porteira Vip Premium";
  85. mes "Volte sempre que precisar de meus serviços.";
  86. close2;
  87. warp .@Vip_Room$,.@Vip_X,.@Vip_Y;
  88. end;
  89. case 2:
  90. mes "Porteira Vip Premium";
  91. mes "Volte sempre que precisar de meus serviços.";
  92. close;
  93. }
  94. }
  95. else if(getgroupid() == 99) {
  96. mes "Porteira Vip Premium";
  97. mes "Olá Administrador ^FF0000"+strcharinfo(0)+"^000000";
  98. while(1) {
  99. next;
  100. mes "Porteira Vip Premium";
  101. mes "O que posso fazer por você hoje?";
  102. next;
  103. switch(select("Verificar Todas Vips:Verificar Conta vip:Adicionar Vip:Remover Vip:Nada Obrigado")) {
  104. //case 1: Removida checagem da doação
  105. //case 2: Removida manipulação de gm
  106. //case 3: Removida manipulação de cash point
  107. case 1:
  108. query_sql "SELECT `account_id`,`userid`,`group_id` FROM `login` WHERE `group_id` = 1",.@AccountId$,.@Userid$,.@GroupId;
  109. if(!.@GroupId) {
  110. mes "Porteira Vip Premium";
  111. mes "Não foi encontrada nenhuma conta Vip apartir do ^BB0000group_id 1^000000";
  112. break;
  113. }
  114. mes "======================";
  115. for (.@i = 0; .@i < getarraysize(.@GroupId); ++.@i) {
  116. mes "^777777ID:^000000 "+.@AccountId$[.@i];
  117. mes "^777777Login:^000000 "+.@Userid$[.@i];
  118. mes "======================";
  119. }
  120. break;
  121. case 2:
  122. mes "Porteira Vip Premium";
  123. mes "Por favor digite o ID ou login para verificar os dias vip na conta";
  124. next;
  125. input .@Account$;
  126. query_sql "SELECT `account_id` FROM `login` WHERE `userid`='"+.@Account$+"' OR `account_id`='"+.@Account$+"'",.@AccountCheck;
  127. if (!.@AccountCheck) {
  128. mes "Porteira Vip Premium";
  129. mes "Conta inexistente.";
  130. break;
  131. }
  132. else {
  133. query_sql "SELECT DATE_FORMAT(`dt_vip`, '%d/%m/%Y') FROM `login` WHERE `account_id`='"+.@Account$+"' OR `userid`='"+.@Account$+"'",.@VipDays$;
  134. if (.@VipDays$ == "") {
  135. mes "Porteira Vip Premium";
  136. mes "A conta '^0000FF"+.@Account$+"^000000' não possui status Vip.";
  137. break;
  138. }
  139. else {
  140. mes "Porteira Vip Premium";
  141. mes "A conta Vip de '^0000FF"+.@Account$+"^000000' é válida até o dia ^BB0000"+.@VipDays$+"^000000.";
  142. break;
  143. }
  144. }
  145. case 3:
  146. mes "Porteira Vip Premium";
  147. mes "Por favor digite o ID ou login para adicionar os dias vip na conta";
  148. next;
  149. input .@GetAccount$;
  150. query_sql "SELECT `account_id`,`group_id` FROM `login` WHERE `userid`='"+.@GetAccount$+"' OR `account_id`='"+.@GetAccount$+"'",.@AccountCheck,.@GroupCheck;
  151. if (!.@AccountCheck) {
  152. mes "Porteira Vip Premium";
  153. mes "Conta inexistente.";
  154. break;
  155. }
  156. mes "Porteira Vip Premium";
  157. mes "Quantos dias vip?";
  158. next;
  159. input .@GetVipTime;
  160. if (.@GroupCheck > 9) {
  161. mes "Porteira Vip Premium";
  162. mes "^FF0000Não é possível adicionar Vip a conta^000000 "+.@GetAccount$+".";
  163. mes "^FF0000Porque ela é uma conta Administrativa^000000!";
  164. break;
  165. }
  166. else if (.@GroupCheck == 1) {
  167. mes "Porteira Vip Premium";
  168. mes "Esta conta já possui status Vip.";
  169. mes "Deseja almentar mais "+.@GetVipTime+" dias vip a conta?";
  170. next;
  171. switch(select("Adicionar VIP:Cancelar")) {
  172. case 1:
  173. query_sql "UPDATE `login` SET `group_id` = '1', `dt_vip` = DATE_ADD(`dt_vip`,INTERVAL "+.@GetVipTime+" DAY) WHERE `group_id` = '1' AND `account_id`='"+.@GetAccount$+"' OR `userid`='"+.@GetAccount$+"'";
  174. mes "Porteira Vip Premium";
  175. mes "Foi adicionado ^FF0000"+.@GetVipTime+"^000000 dias vip na conta ^0000FF"+.@GetAccount$+"^000000.";
  176. break;
  177. case 2:
  178. break;
  179. }
  180. break;
  181. }
  182. else {
  183. query_sql "UPDATE `login` SET `group_id` = '1', `dt_vip` = DATE_ADD(CURDATE(),INTERVAL "+.@GetVipTime+" DAY) WHERE `group_id` = '0' AND `account_id`='"+.@GetAccount$+"' OR `userid`='"+.@GetAccount$+"'";
  184. mes "Porteira Vip Premium";
  185. mes "Foi adicionado ^FF0000"+.@GetVipTime+"^000000 dias vip na conta ^0000FF"+.@GetAccount$+"^000000.";
  186. break;
  187. }
  188. case 4:
  189. mes "Porteira Vip Premium";
  190. mes "Por favor digite o ID ou login para Remover os dias vip na conta";
  191. next;
  192. input .@VipRemove$;
  193. query_sql "SELECT `account_id`,`group_id` FROM `login` WHERE `userid`='"+.@VipRemove$+"' OR `account_id`='"+.@VipRemove$+"'",.@RemoveCheck,.@VipCheck;
  194. if (!.@RemoveCheck) {
  195. mes "Porteira Vip Premium";
  196. mes "Conta inexistente.";
  197. break;
  198. }
  199. if (.@VipCheck > 9) {
  200. mes "Porteira Vip Premium";
  201. mes "^FF0000Não é possível remover Vip da conta^000000 "+.@VipRemove$+".";
  202. mes "^FF0000Porque ela é uma conta Administrativa^000000!";
  203. break;
  204. }
  205. else if (.@VipCheck == 1) {
  206. mes "Porteira Vip Premium";
  207. mes "Tem certesa que deseja remover os dias vips da conta "+.@VipRemove$+"?";
  208. next;
  209. switch(select("Tenho Sim:Cancelar")) {
  210. case 1:
  211. query_sql "UPDATE `login` SET `group_id` = 0, `dt_vip` = NULL WHERE `group_id` = '1' AND `account_id`='"+.@VipRemove$+"' OR `userid`='"+.@VipRemove$+"'";
  212. mes "Porteira Vip Premium";
  213. mes "Status Vip removido da conta ^0000FF"+.@VipRemove$+"^000000.";
  214. mes "Porém só será válido após o jogador deslogar.";
  215. break;
  216. case 2:
  217. break;
  218. }
  219. break;
  220. }
  221. else {
  222. mes "Porteira Vip Premium";
  223. mes "^FF0000Não é possível remover Vip da conta^000000 "+.@VipRemove$+".";
  224. mes "^FF0000Porque ela não contém status de Vip^000000!";
  225. break;
  226. }
  227. case 5:
  228. mes "Porteira Vip Premium";
  229. mes "Volte sempre que precisar de meus serviços.";
  230. close;
  231. }
  232. }
  233. }
  234. else {
  235. mes "Porteira Vip Premium";
  236. mes "Olá ^FF0000"+strcharinfo(0)+"^000000";
  237. mes "Me desculpe, mas atendo somente a";
  238. mes "usuários VIP PREMIUM.";
  239. mes "Se você deseja ser usuário VIP,";
  240. mes "Visite Nosso site www.ragnaroots.com.br/doacaovip e descubra como";
  241. mes "se tornar um.";
  242. close;
  243. // Remoção dos artigos referentes aos dados removidos
  244. }
  245. }
  246. kingston,157,167,4 duplicate(#vip_manager) Porteira Vip Premium#Evip1 4_F_NURSE
  247. morocc,160,98,4 duplicate(#vip_manager) Porteira Vip Premium#Evip2 4_F_NURSE
  248. geffen,128,62,4 duplicate(#vip_manager) Porteira Vip Premium#Evip3 4_F_NURSE
  249. payon,168,228,4 duplicate(#vip_manager) Porteira Vip Premium#Evip4 4_F_NURSE
  250. alberta,33,240,4 duplicate(#vip_manager) Porteira Vip Premium#Evip5 4_F_NURSE
  251. izlude,125,118,4 duplicate(#vip_manager) Porteira Vip Premium#Evip6 4_F_NURSE
  252. aldebaran,146,119,4 duplicate(#vip_manager) Porteira Vip Premium#Evip7 4_F_NURSE
  253. xmas,157,134,4 duplicate(#vip_manager) Porteira Vip Premium#Evip8 4_F_NURSE
  254. comodo,201,145,4 duplicate(#vip_manager) Porteira Vip Premium#Evip9 4_F_NURSE
  255. yuno,165,186,4 duplicate(#vip_manager) Porteira Vip Premium#Evip10 4_F_NURSE
  256. amatsu,190,140,4 duplicate(#vip_manager) Porteira Vip Premium#Evip11 4_F_NURSE
  257. gonryun,164,119,4 duplicate(#vip_manager) Porteira Vip Premium#Evip12 4_F_NURSE
  258. umbala,101,169,4 duplicate(#vip_manager) Porteira Vip Premium#Evip13 4_F_NURSE
  259. louyang,223,120,4 duplicate(#vip_manager) Porteira Vip Premium#Evip14 4_F_NURSE
  260. ayothaya,142,103,4 duplicate(#vip_manager) Porteira Vip Premium#Evip15 4_F_NURSE
  261. einbroch,84,201,4 duplicate(#vip_manager) Porteira Vip Premium#Evip16 4_F_NURSE
  262. lighthalzen,152,110,4 duplicate(#vip_manager) Porteira Vip Premium#Evip17 4_F_NURSE
  263. hugel,105,152,4 duplicate(#vip_manager) Porteira Vip Premium#Evip18 4_F_NURSE
  264. rachel,165,135,4 duplicate(#vip_manager) Porteira Vip Premium#Evip19 4_F_NURSE
  265. veins,221,141,4 duplicate(#vip_manager) Porteira Vip Premium#Evip20 4_F_NURSE
  266. moscovia,215,218,4 duplicate(#vip_manager) Porteira Vip Premium#Evip21 4_F_NURSE
  267. brasilis,211,162,4 duplicate(#vip_manager) Porteira Vip Premium#Evip22 4_F_NURSE
  268. new_1-1,44,112,6 duplicate(#vip_manager) Porteira Vip Premium#Evip23 4_F_NURSE
  269. // --------------------------------------------------------------------------------
  270. - script GerenciadorVip -1,{
  271. OnPCLoginEvent:
  272. if (getgroupid() == 0) {
  273. query_sql "SELECT (`dt_vip` IS NULL OR `dt_vip` < CURDATE()) FROM `login` WHERE `account_id` = "+getcharid(3);
  274. dispbottom "Torne-se um(a) jogador(a) hoje mesmo!";
  275. end;
  276. }
  277. if (getgroupid() == 1) {
  278. query_sql "UPDATE `login` SET `group_id`= 0 WHERE `group_id` = 1 AND (`dt_vip` IS NULL OR `dt_vip` < CURDATE())";
  279. query_sql "SELECT DATE_FORMAT(`dt_vip`, '%d/%m/%Y') FROM `login` WHERE `account_id` = "+getcharid(3), @OffVip$;
  280. dispbottom "Sua conta Vip é válida até o dia "+@OffVip$+"";
  281. end;
  282. }
  283. if (getgroupid() > 9) {
  284. end;
  285. }
  286. }