johnlol

Rewards NPC 1.6

Aug 2nd, 2023
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VeriLog 21.70 KB | Gaming | 0 0
  1. /* ______________________________________________________________
  2.   |                                                              |
  3.   | rAthena Script                                               |
  4.   |                                                              |
  5.   | Rewards NPC                                                  |
  6.   | By:                                                          |
  7.   | Viole                                                        |
  8.   |                                                              |
  9.   | Current Version                                              |
  10.   | 1.6                                                          |
  11.   |                                                              |
  12.   | Description:                                                 |
  13.   | NPC which you can assign a reward                            |
  14.   | to a 'specific' player and set                               |
  15.   | the quantity of the reward to be                             |
  16.   | given.                                                       |
  17.   |                                                              |  
  18.   | Changelog:                                                   |
  19.   | Rewards NPC 1.0  Items recognized are only from item_db      |
  20.   | Rewards NPC 1.1  Items recognized from item_db to item_db2   |
  21.   | Rewards NPC 1.1  Prevent null from typing 0 in item & amount |
  22.   | Rewards NPC 1.1  Main: Can put many players now to give item |
  23.   | Rewards NPC 1.2  Fixed Cancel the process option             |
  24.   | Rewards NPC 1.2  Added Delete a process or all process option|
  25.   | Rewards NPC 1.3  Added Show Current Processes option         |
  26.   | Rewards NPC 1.4  Added Party Option in Assign Rewards        |
  27.   | Rewards NPC 1.4  Show Current Process (Player or Party)      |
  28.   | Rewards NPC 1.4  Added Delete Option for Party               |
  29.   | Rewards NPC 1.5  Added Guild Option in Assign Rewards        |
  30.   | Rewards NPC 1.5  Show Current Process (Player/Party/Guild)   |
  31.   | Rewards NPC 1.5  Added Delete Option for Guild               |
  32.   | Rewards NPC 1.5  Announce. GM adds a process for Party/Guild |
  33.   | Rewards NPC 1.6  Added View Logs (Credits: Euphy)            |
  34.   |                                  (Requested: bVersatile)     |
  35.   |                                                              |
  36.   | Note:                                                        |
  37.   | Players can view the logs too, or it's your choice to        |
  38.   | remove it, or not. Feel free to edit things inside.          |
  39.   |                                                              |
  40.   | If you added 2 items to a 'same' player/guild/party          |
  41.   | Only the first one is recognized.                            |
  42.   |                                                              |
  43.   | If you delete 1 player/party/guild process, all its          |
  44.   | player/party/guild's process will be deleted.                |
  45.   |                                                              |
  46.   | If some processes were deleted, and if you add a new process,|
  47.   | all those previous slots will be filled up.                  |
  48.   |                                                              |
  49.   | About the query sql's, I sucked at query sql, and got a prob |
  50.   | when adding only 1 sql, becuz of nulls..(I'll learn more)    |
  51.   |______________________________________________________________|*/
  52.  
  53.  
  54. -   script  Rewards#101 -1,{
  55.  
  56.     set .@n$, "^FF0000[Rewards NPC]^000000";
  57.     set .gmlvl, 80;
  58.  
  59.     if (getgmlevel() >= .gmlvl)
  60.     {
  61.     admin_only:
  62.         mes .@n$;  
  63.         mes "Hello, GM "+strcharinfo(0)+"!";
  64.         mes "What do you want to do?";
  65.         next;
  66.         switch(select("Assign Reward:Show Current Processes:Delete Process:View Logs"))
  67.         {
  68.         case 1:
  69.             next;
  70.             mes .@n$;
  71.             mes"Choose what category you want to give the reward.";
  72.             next;
  73.             switch(select("To a Player:To a Party:To a Guild"))
  74.             {
  75.             case 1:
  76.                 next;
  77.                 mes .@n$;
  78.                 mes "To whom do you wanna give the reward?";
  79.                 input @playername$;
  80.                 query_sql "SELECT `char_id` FROM `char` WHERE `name` = '"+escape_sql(@playername$)+"'",.@charid;
  81.                         if (!.@charid) {next; mes .@n$; mes "The name is invalid."; next; goto admin_only; }
  82.                             else set .@charid,0;
  83.                 next;
  84.                 mes .@n$;
  85.                 mes "What will be the reward item?";
  86.                 mes "Please, input the Item ID #";
  87.                 input @inputrewarditem;
  88.                 if (getitemname(@inputrewarditem) == "null" || getitemname(@inputrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }
  89.                 set @rewarditem, @inputrewarditem;
  90.                 next;
  91.                 mes .@n$;
  92.                 mes "How many "+getitemname(@rewarditem)+" will be given to "+@playername$+"?";
  93.                 input @rewardamount;
  94.                 if(@rewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }
  95.                 next;
  96.                 mes .@n$;
  97.                 mes "So, player "+@playername$+" will have";
  98.                 mes ""+@rewardamount+" "+getitemname(@rewarditem)+"s. Great~!";
  99.                 next;
  100.                 message @playername$,"Please claim your rewards from the Rewards NPC! "+@rewardamount+" "+getitemname(@rewarditem)+"s";
  101.                 query_sql "INSERT INTO `rewardplayernpc` (`playername`, `reward_id`, `reward_amount`) VALUES ('"+@playername$+"', "+@rewarditem+", "+@rewardamount+")";
  102.                 setarray $giverlog1$[getarraysize($giverlog1$)],strcharinfo(0);
  103.                 setarray $receiverlog1$[getarraysize($receiverlog1$)],@playername$;
  104.                 setarray $itemlog1[getarraysize($itemlog1)],@rewarditem;
  105.                 setarray $amountlog1[getarraysize($amountlog1)],@rewardamount;
  106.                 set @playername$, "";
  107.                 close2;
  108.                 end;
  109.             case 2:
  110.                 next;
  111.                 mes .@n$;
  112.                 mes "Please input the party name..";
  113.                 input @partyname$;
  114.                 query_sql "SELECT `party_id` FROM `party` WHERE `name` = '"+escape_sql(@partyname$)+"'",.@partyid;
  115.                     if (!.@partyid) {next; mes .@n$; mes "The party name is invalid."; next; goto admin_only; }
  116.                         else set .@partyid,0;
  117.                 next;
  118.                 mes .@n$;
  119.                 mes "What will be the reward item?";
  120.                 mes "Please, input the Item ID #";
  121.                 input @inputpartyrewarditem;
  122.                 if (getitemname(@inputpartyrewarditem) == "null" || getitemname(@inputpartyrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }
  123.                 set @partyrewarditem, @inputpartyrewarditem;
  124.                 next;
  125.                 mes .@n$;
  126.                 mes "How many "+getitemname(@partyrewarditem)+" will be given to party "+@partyname$+"?";
  127.                 input @partyrewardamount;
  128.                 if(@partyrewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }
  129.                 next;
  130.                 mes .@n$;
  131.                 mes "So, party "+@partyname$+" will have";
  132.                 mes ""+@partyrewardamount+" "+getitemname(@partyrewarditem)+"s. Great~!";
  133.                 next;
  134.                 announce "Party leader of the party ["+@partyname$+"], please claim your "+@partyrewardamount+" "+getitemname(@partyrewarditem)+"s from the Rewards NPC! ",0,0xDBA901;
  135.                 query_sql "INSERT INTO `rewardpartynpc` (`partyname`, `reward_id`, `reward_amount`) VALUES ('"+@partyname$+"', "+@partyrewarditem+", "+@partyrewardamount+")";
  136.                 setarray $giverlog2$[getarraysize($giverlog2$)],strcharinfo(0);
  137.                 setarray $receiverlog2$[getarraysize($receiverlog2$)],@partyname$;
  138.                 setarray $itemlog2[getarraysize($itemlog2)],@partyrewarditem;
  139.                 setarray $amountlog2[getarraysize($amountlog2)],@partyrewardamount;
  140.                 set @partyname$, "";
  141.                 close2;
  142.                 end;
  143.             case 3:
  144.                 next;
  145.                 mes .@n$;
  146.                 mes "Please input the guild name..";
  147.                 input @guildname$;
  148.                 query_sql "SELECT `guild_id` FROM `guild` WHERE `name` = '"+escape_sql(@guildname$)+"'",.@guildid;
  149.                         if (!.@guildid) {next; mes .@n$; mes "The guild name is invalid."; next; goto admin_only; }
  150.                             else set .@guildid,0;
  151.                 next;
  152.                 mes .@n$;
  153.                 mes "What will be the reward item?";
  154.                 mes "Please, input the Item ID #";
  155.                 input @inputguildrewarditem;
  156.                 if (getitemname(@inputguildrewarditem) == "null" || getitemname(@inputguildrewarditem) == "") {next; mes .@n$; mes "The item doesn't exists in the database."; next; goto admin_only; }
  157.                 set @guildrewarditem, @inputguildrewarditem;
  158.                 next;
  159.                 mes .@n$;
  160.                 mes "How many "+getitemname(@guildrewarditem)+" will be given to the guild "+@guildname$+"?";
  161.                 input @guildrewardamount;
  162.                 if(@guildrewardamount <= 0) {next; mes .@n$; mes "Please input a number greater than 0"; next; goto admin_only; }
  163.                 next;
  164.                 mes .@n$;
  165.                 mes "So, guild "+@guildname$+" will have";
  166.                 mes ""+@guildrewardamount+" "+getitemname(@guildrewarditem)+"s. Great~!";
  167.                 next;
  168.                 announce "GuildMaster of the Guild ["+@guildname$+"], please claim your "+@guildrewardamount+" "+getitemname(@guildrewarditem)+"s from the Rewards NPC!",0,0xDBA901;
  169.                 query_sql "INSERT INTO `rewardguildnpc` (`guildname`, `reward_id`, `reward_amount`) VALUES ('"+@guildname$+"', "+@guildrewarditem+", "+@guildrewardamount+")";
  170.                 setarray $giverlog3$[getarraysize($giverlog3$)],strcharinfo(0);
  171.                 setarray $receiverlog3$[getarraysize($receiverlog3$)],@guildname$;
  172.                 setarray $itemlog3[getarraysize($itemlog3)],@guildrewarditem;
  173.                 setarray $amountlog3[getarraysize($amountlog3)],@guildrewardamount;
  174.                 setarray $numberlog3[getarraysize($numberlog3)],1;
  175.                 set @guildname$, "";
  176.                 close2;
  177.                 end;
  178.             }
  179.         case 2:
  180.             show_process:
  181.             next;
  182.             mes .@n$;
  183.             mes "Choose from what category you would like to view current processes.";
  184.             next;
  185.             switch(select("Player:Party:Guild"))
  186.             {
  187.             case 1:
  188.                 next;
  189.                 mes "^FF0000[Current Processes]^000000";
  190.                 mes "••••••••••••••••••••••••••••••••";
  191.                 query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@show_name$, .@show_item, .@show_amount;
  192.                 for(set @i, 0; @i < getarraysize(.@show_name$); set @i, @i+1)
  193.                 {
  194.                     mes "To: ^FF0000Player^000000 ^0000FF"+.@show_name$[@i]+"^000000";
  195.                     mes "Reward: "+.@show_amount[@i]+" "+getitemname(.@show_item[@i])+"s";
  196.                     mes "••••••••••••••••••••••••••••••••";
  197.                 }
  198.                 goto show_process;             
  199.             case 2:
  200.                 next;
  201.                 mes "^FF0000[Current Processes]^000000";
  202.                 mes "••••••••••••••••••••••••••••••••";
  203.                 query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partyshow_name$, .@partyshow_item, .@partyshow_amount;
  204.                 for(set @i, 0; @i < getarraysize(.@partyshow_name$); set @i, @i+1)
  205.                 {
  206.                     mes "To: ^088A4BParty^000000 ^0000FF"+.@partyshow_name$[@i]+"^000000";
  207.                     mes "Reward: "+.@partyshow_amount[@i]+" "+getitemname(.@partyshow_item[@i])+"s";
  208.                     mes "••••••••••••••••••••••••••••••••";
  209.                 }
  210.                 goto show_process;
  211.             case 3:
  212.                 next;
  213.                 mes "^FF0000[Current Processes]^000000";
  214.                 mes "••••••••••••••••••••••••••••••••";
  215.                 query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guildshow_name$, .@guildshow_item, .@guildshow_amount;
  216.                 for(set @i, 0; @i < getarraysize(.@guildshow_name$); set @i, @i+1)
  217.                 {
  218.                     mes "To: ^B18904Guild^000000 ^0000FF"+.@guildshow_name$[@i]+"^000000";
  219.                     mes "Reward: "+.@guildshow_amount[@i]+" "+getitemname(.@guildshow_item[@i])+"s";
  220.                     mes "••••••••••••••••••••••••••••••••";
  221.                 }
  222.                 goto show_process;
  223.             }
  224.         case 3:
  225.             next;
  226.             mes .@n$;
  227.             mes "Do you want to delete one process only or all processes?";
  228.             switch(select("Delete one process only:Delete all processes:Leave it as it is"))
  229.             {
  230.             case 1:
  231.                 next;
  232.                 mes .@n$;
  233.                 mes "Please choose from what category you would like to delete a process.";
  234.                 next;
  235.                 switch(select("Player:Party:Guild"))
  236.                 {
  237.                 case 1:
  238.                     next;
  239.                     mes .@n$;
  240.                     mes "Please input the player name you want to delete the process.";
  241.                     input @deletename$;
  242.                     next;
  243.                     query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@delete_name$, .@delete_item, .@delete_amount;
  244.                     for (set @i, 0; @i < getarraysize(.@delete_name$); set @i, @i+1)
  245.                     {
  246.                     if(@deletename$ == .@delete_name$[@i])
  247.                         {
  248.                         mes .@n$;
  249.                         mes "Deleting....";
  250.                         query_sql "DELETE FROM `rewardplayernpc` WHERE `playername`='"+@deletename$+"'";
  251.                         next;
  252.                         mes .@n$;
  253.                         mes "Deleted unclaimed process!";
  254.                         close;
  255.                         }
  256.                     }
  257.                     goto R_Invalid;
  258.                 case 2:
  259.                     next;
  260.                     mes .@n$;
  261.                     mes "Please input the party name you want to delete the process.";
  262.                     input @partydeletename$;
  263.                     next;
  264.                     query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partydelete_name$, .@partydelete_item, .@partydelete_amount;
  265.                     for (set @i, 0; @i < getarraysize(.@partydelete_name$); set @i, @i+1)
  266.                     {
  267.                     if(@partydeletename$ == .@partydelete_name$[@i])
  268.                         {
  269.                         mes .@n$;
  270.                         mes "Deleting....";
  271.                         query_sql "DELETE FROM `rewardpartynpc` WHERE `partyname`='"+@partydeletename$+"'";
  272.                         next;
  273.                         mes .@n$;
  274.                         mes "Deleted unclaimed process!";
  275.                         close;
  276.                         }
  277.                     }
  278.                     goto R_Invalid;
  279.                 case 3:
  280.                     next;
  281.                     mes .@n$;
  282.                     mes "Please input the guild name you want to delete the process.";
  283.                     input @guilddeletename$;
  284.                     next;
  285.                     query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guilddelete_name$, .@guilddelete_item, .@guilddelete_amount;
  286.                     for (set @i, 0; @i < getarraysize(.@guilddelete_name$); set @i, @i+1)
  287.                     {
  288.                     if(@guilddeletename$ == .@guilddelete_name$[@i])
  289.                         {
  290.                         mes .@n$;
  291.                         mes "Deleting....";
  292.                         query_sql "DELETE FROM `rewardguildnpc` WHERE `guildname`='"+@guilddeletename$+"'";
  293.                         next;
  294.                         mes .@n$;
  295.                         mes "Deleted unclaimed process!";
  296.                         close;
  297.                         }
  298.                     }
  299.                     goto R_Invalid;
  300.                 }
  301.             case 2:
  302.                 next;
  303.                 mes .@n$;
  304.                 mes "Please input DELETE to delete all the unclaimed processes.";
  305.                 input @deleteall$;
  306.                     if(@deleteall$ == "DELETE")
  307.                     {
  308.                         next;
  309.                         mes .@n$;
  310.                         mes "Deleting....";
  311.                         query_sql "DELETE FROM `rewardplayernpc`";
  312.                         query_sql "DELETE FROM `rewardpartynpc`";
  313.                         query_sql "DELETE FROM `rewardguildnpc`";
  314.                         next;
  315.                         mes .@n$;
  316.                         mes "Deleted all unclaimed processes!";
  317.                         close;
  318.                     }
  319.                     next;
  320.                     mes .@n$;
  321.                     mes "Next time, please input DELETE correctly!";
  322.                     close;
  323.             case 3:
  324.                 next;
  325.                 mes .@n$;
  326.                 mes "Nothing Changed!";
  327.                 close2;
  328.                 end;
  329.             }
  330.         case 4:
  331.         viewlogs:
  332.             next;
  333.             mes .@n$;
  334.             mes "Choose what category you want to view the logs!";
  335.             next;
  336.             switch(select("Player Logs:Party Logs:Guild Logs",
  337.                 ( getgmlevel() < .gmlvl )?"":"Delete Logs"))
  338.             {
  339.             case 1:
  340.                 next;
  341.                 mes .@n$;
  342.                 mes "Current logs: ^008000" + (getarraysize($giverlog1$)) + "^000000";
  343.                 mes "--------------------------------";
  344.                 set .@i,0;
  345.                 while (.@i < getarraysize($giverlog1$)) {
  346.                         mes ""+.@i+". ^B041FFGM " + $giverlog1$[.@i] + "^000000 gave "+$amountlog1[.@i]+"x "+getitemname($itemlog1[.@i])+" to Player^55AAFF " + $receiverlog1$[.@i] + "^000000";
  347.                         mes "--------------------------------";
  348.                         set .@i, .@i+1; }
  349.                 next;
  350.                 goto viewlogs;
  351.             case 2:
  352.                 next;
  353.                 mes .@n$;
  354.                 mes "Current logs: ^008000" + (getarraysize($giverlog2$)) + "^000000";
  355.                 mes "--------------------------------";
  356.                 set .@j,0;
  357.                 while (.@j < getarraysize($giverlog2$)) {
  358.                         mes ""+.@j+". ^B041FFGM " + $giverlog2$[.@j] + "^000000 gave "+$amountlog2[.@j]+"x "+getitemname($itemlog2[.@j])+" to Party^55AAFF " + $receiverlog2$[.@j] + "^000000";
  359.                         mes "--------------------------------";
  360.                         set .@j, .@j+1; }
  361.                 next;
  362.                 goto viewlogs;
  363.             case 3:
  364.                 next;
  365.                 mes .@n$;
  366.                 mes "Current logs: ^008000" + (getarraysize($giverlog3$)) + "^000000";
  367.                 mes "--------------------------------";
  368.                 set .@k,0;
  369.                 while (.@k < getarraysize($giverlog3$)) {
  370.                         mes ""+.@k+". ^B041FFGM " + $giverlog3$[.@k] + "^000000 gave "+$amountlog3[.@k]+"x "+getitemname($itemlog3[.@k])+" to Guild^55AAFF " + $receiverlog3$[.@k] + "^000000";
  371.                         mes "--------------------------------";
  372.                         set .@k, .@k+1; }
  373.                 next;
  374.                 goto viewlogs;
  375.             case 4:
  376.                 next;
  377.                 mes .@n$;
  378.                 mes "^FF0000This action cannot be undone.^000000";
  379.                 mes "Are you sure?";
  380.                 mes " ";
  381.                 if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto Log_Menu; }
  382.                 deletearray $giverlog1$[0],getarraysize($giverlog1$); deletearray $receiverlog1$[0],getarraysize($receiverlog1$);
  383.                 deletearray $itemlog1[0],getarraysize($itemlog1); deletearray $amountlog1[0],getarraysize($amountlog1);
  384.                 deletearray $giverlog2$[0],getarraysize($giverlog2$); deletearray $receiverlog2$[0],getarraysize($receiverlog2$);
  385.                 deletearray $itemlog2[0],getarraysize($itemlog2); deletearray $amountlog2[0],getarraysize($amountlog2);
  386.                 deletearray $giverlog3$[0],getarraysize($giverlog3$); deletearray $receiverlog3$[0],getarraysize($receiverlog3$);
  387.                 deletearray $itemlog3[0],getarraysize($itemlog3); deletearray $amountlog3[0],getarraysize($amountlog3);
  388.                 next;
  389.                 mes .@n$;
  390.                 mes "Logs cleared.";
  391.                 next;
  392.                 goto admin_only;
  393.             }
  394.         }
  395.     }
  396.     mes .@n$;
  397.     mes "Hello, "+strcharinfo(0)+"!";
  398.     next;
  399.     switch(Select("Claim Reward:View Logs:Leave"))
  400.     {
  401.     case 1:
  402.         mes .@n$;
  403.         mes "From what category you want to claim your reward?";
  404.         next;
  405.         switch(select("Player:Party:Guild"))
  406.         {
  407.         case 1:
  408.             mes .@n$;
  409.             mes "Please enter your Name:";
  410.             input @winnername$;
  411.             if (@winnername$!=strcharinfo(0)){next; mes .@n$; mes "You are a fake!"; close; end; }
  412.             next;
  413.             query_sql "SELECT `playername`, `reward_id`, `reward_amount` FROM `rewardplayernpc`", .@available_name$, .@available_item, .@available_amount;
  414.             for (set @i, 0; @i < getarraysize(.@available_name$); set @i, @i+1)
  415.             {
  416.             if(@winnername$ == .@available_name$[@i])
  417.                 {
  418.                 mes .@n$;
  419.                 mes "You get ^0000FF" + getitemname(.@available_item[@i]) + " - " + .@available_amount[@i] + " ea.^000000";
  420.                 query_sql "DELETE FROM `rewardplayernpc` WHERE `playername`='"+@winnername$+"'";
  421.                 getitem .@available_item[@i],.@available_amount[@i];
  422.                 announce "Player "+.@available_name$[@i]+" has claimed "+.@available_amount[@i]+" "+getitemname(.@available_item[@i])+"s from the Rewards NPC!",0,0xDBA901;
  423.                 close;
  424.                 }
  425.             }
  426.             goto R_Noreward;
  427.         case 2:
  428.             if( !getcharid(1) || getcharid(3) != getpartyleader( getcharid(1),1 ) ){next; mes .@n$; mes "Only party leaders are allowed here!"; close; end; }
  429.             mes .@n$;
  430.             mes "Please enter your party name:";
  431.             input @partywinnername$;
  432.             if (@partywinnername$!=strcharinfo(1)){next; mes .@n$; mes "You are a fake!"; close; end; }
  433.             next;
  434.             query_sql "SELECT `partyname`, `reward_id`, `reward_amount` FROM `rewardpartynpc`", .@partyavailable_name$, .@partyavailable_item, .@partyavailable_amount;
  435.             for (set @i, 0; @i < getarraysize(.@partyavailable_name$); set @i, @i+1)
  436.             {
  437.             if(@partywinnername$ == .@partyavailable_name$[@i])
  438.                 {
  439.                 mes .@n$;
  440.                 mes "You get ^0000FF" + getitemname(.@partyavailable_item[@i]) + " - " + .@partyavailable_amount[@i] + " ea.^000000";
  441.                 query_sql "DELETE FROM `rewardpartynpc` WHERE `partyname`='"+@partywinnername$+"'";
  442.                 announce "Party "+.@partyavailable_name$[@i]+" has claimed "+.@partyavailable_amount[@i]+" "+getitemname(.@partyavailable_item[@i])+"s from the Rewards NPC!",0,0xDBA901;
  443.                 getitem .@partyavailable_item[@i],.@partyavailable_amount[@i];
  444.                 close;
  445.                 }
  446.             }
  447.             goto R_Noreward;
  448.         case 3:
  449.             set @guildid, getcharid(2);
  450.             if( !getcharid(2) || strcharinfo(0) != getguildmaster(@guildid) ){next; mes .@n$; mes "Only guild masters are allowed here!"; close; end; }
  451.             mes .@n$;
  452.             mes "Please enter your guild name:";
  453.             input @guildwinnername$;
  454.             if (@guildwinnername$!=strcharinfo(2)){next; mes .@n$; mes "You are a fake!"; close; end; }
  455.             next;
  456.             query_sql "SELECT `guildname`, `reward_id`, `reward_amount` FROM `rewardguildnpc`", .@guildavailable_name$, .@guildavailable_item, .@guildavailable_amount;
  457.             for (set @i, 0; @i < getarraysize(.@guildavailable_name$); set @i, @i+1)
  458.             {
  459.             if(@guildwinnername$ == .@guildavailable_name$[@i])
  460.                 {
  461.                 mes .@n$;
  462.                 mes "You get ^0000FF" + getitemname(.@guildavailable_item[@i]) + " - " + .@guildavailable_amount[@i] + " ea.^000000";
  463.                 query_sql "DELETE FROM `rewardguildnpc` WHERE `guildname`='"+@guildwinnername$+"'";
  464.                 announce "Guild "+.@guildavailable_name$[@i]+" has claimed "+.@guildavailable_amount[@i]+" "+getitemname(.@guildavailable_item[@i])+"s from the Rewards NPC!",0,0xDBA901;
  465.                 getitem .@guildavailable_item[@i],.@guildavailable_amount[@i];
  466.                 close;
  467.                 }
  468.             }
  469.             goto R_Noreward;
  470.         }
  471.     case 2:
  472.         next;
  473.         goto viewlogs;
  474.     case 3:
  475.         mes .@n$;
  476.         mes "See yah.";
  477.         close;
  478.     }
  479.    
  480. R_Invalid:
  481.     mes "^FF0000[Rewards NPC]^000000";
  482.     mes "Invalid. Does not exists in the logs!";
  483.     close;
  484.    
  485. R_Noreward:
  486.     mes "^FF0000[Rewards NPC]^000000";
  487.     mes "No rewards at the meantime";
  488.     mes "Get out!";
  489.     close;
  490.  
  491. OnInit:
  492.     query_sql "CREATE TABLE IF NOT EXISTS `rewardplayernpc` (`playername` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `playername` (`playername`(32)) ) ENGINE=MyISAM";
  493.     query_sql "CREATE TABLE IF NOT EXISTS `rewardpartynpc` (`partyname` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `partyname` (`partyname`(32)) ) ENGINE=MyISAM";
  494.     query_sql "CREATE TABLE IF NOT EXISTS `rewardguildnpc` (`guildname` TINYTEXT NOT NULL, `reward_id` INT NOT NULL, `reward_amount` INT NOT NULL, INDEX `guildname` (`guildname`(32)) ) ENGINE=MyISAM";
  495. }
  496.  
  497. /* Add npc's here (duplicate) ciao */
  498.  
  499. prt_in,283,139,5    duplicate(Rewards#101)  Rewards GM  412
  500. prontera,181,166,5  duplicate(Rewards#101)  Rewards NPC 412
  501.            
  502.        
  503.  
Add Comment
Please, Sign In to add comment