Advertisement
Emistry

[RO] Kick + Delete atcommand

Nov 28th, 2016
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. // https://rathena.org/board/topic/108351-kick-and-delete-through-script/
  2.  
  3.  
  4. - script kick_delete_acc_main FAKE_NPC,{
  5.  
  6. OnInit:
  7. bindatcmd("kickdelete", strnpcinfo(3)+"::OnAtcommand");
  8. end;
  9.  
  10. OnAtcommand:
  11. if ( !.@atcmd_numparameters ) {
  12. dispbottom "Usage: "+.@atcmd_command$+" <name>";
  13. }
  14. else {
  15. .@char_name$ = implode( .@atcmd_parameters$, " " );
  16. query_sql( "SELECT `account_id` FROM `char` WHERE `name` = '"+.@char_name$+"' LIMIT 1",.@aid );
  17. if ( !.@aid ) {
  18. dispbottom "Char '"+.@char_name$+"' not found or not exist.";
  19. }
  20. else {
  21. query_sql( "SELECT `char_id`,`name`,`online` FROM `char` WHERE `account_id` = "+.@aid, .@cid, .@name$, .@online );
  22. .@size = getarraysize( .@cid );
  23.  
  24. for ( .@i = 0; .@i < .@size; .@i++ ) {
  25. if ( .@online[.@i] ) {
  26. atcommand "@kick "+.@name$[.@i];
  27. }
  28. callsub( L_DeleteChar, .@cid[.@i],
  29. "autotrade_data",
  30. "autotrade_merchants",
  31. "cart_inventory",
  32. "char_reg_num_db",
  33. "char_reg_str_db",
  34. "charlog",
  35. "elemental",
  36. "friends",
  37. "guild_member",
  38. "hotkey",
  39. "homunculus",
  40. "inventory",
  41. "sc_data",
  42. "memo",
  43. "mercenary",
  44. "mercenary_owner",
  45. "pet",
  46. "quest",
  47. "skill",
  48. "char"
  49. );
  50. }
  51.  
  52. callsub( L_DeleteAccount, .@aid,
  53. "account_data",
  54. "acc_reg_num_db",
  55. "acc_reg_str_db",
  56. "autotrade_merchants",
  57. "char",
  58. "charlog",
  59. "global_acc_reg_num_db",
  60. "global_acc_reg_str_db",
  61. "guild_expulsion",
  62. "guild_member",
  63. "sc_data",
  64. "pet",
  65. "storage",
  66. "login"
  67. );
  68. dispbottom "Char/Account deleted.";
  69. }
  70. }
  71. end;
  72.  
  73. L_DeleteChar:
  74. .@id = getarg(0,0);
  75. .@argcount = getargcount() - 1;
  76. for ( .@i = 1; .@i <= .@argcount; .@i++ ) {
  77. query_sql( "DELETE FROM `"+getarg( .@i )+"` WHERE `char_id` = "+ .@id );
  78. }
  79. return;
  80.  
  81. L_DeleteAccount:
  82. .@id = getarg(0,0);
  83. .@argcount = getargcount() - 1;
  84. for ( .@i = 1; .@i <= .@argcount; .@i++ ) {
  85. query_sql( "DELETE FROM `"+getarg( .@i )+"` WHERE `account_id` = "+ .@id );
  86. }
  87. return;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement