Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //===== eAthena Script =======================================
- //= Item Rewards NPC
- //===== By: ==================================================
- //= Euphy
- //===== Current Version: =====================================
- //= 1.8
- //===== Description: =========================================
- //= Useful for event rewards, when a player is not necessarily online.
- //= Logging is available, if needed (holds 128 names).
- //= Note: Unclaimed rewards are limited to 64 at a time.
- //============================================================
- atlantis,124,220,6 script Item Rewards 836,{
- // --------------------- Config ---------------------
- // Package format is "ID1,Count1,ID2,Count2,..."
- // GM Access: Level required to open the GM menu.
- // GM Delete: Level required to erase entries.
- // GM Logging: Level required to manage logs.
- set .GMAccess,1;
- set .GMDelete,80;
- set .GMLogging,99;
- set .PackageCount,3;
- setarray .Package1[0],7539,10;
- setarray .Package2[0],7539,5;
- setarray .Package3[0],0,0;
- // --------------------------------------------------
- if (getgmlevel() >= .GMAccess) goto GM_Menu;
- mes "[Item Rewards]";
- set .@i,0;
- while (.@i < getarraysize($itemreward$)) {
- if (strcharinfo(0) == $itemreward$[.@i]) goto GetReward;
- set .@i, .@i+2; }
- mes "You have no rewards pending.";
- close;
- GetReward:
- if (((Weight*100)/MaxWeight) > 49) {
- mes "You are over the weight limit."; close; }
- if (!checkweight(5055,getarraysize(getd(".Package"+$itemreward$[.@i+1])))) {
- mes "Clear space in your inventory."; close; }
- set .@j,0;
- while (.@j < getarraysize(getd(".Package"+$itemreward$[.@i+1]))) {
- getitem getd(".Package"+$itemreward$[.@i+1]+"["+.@j+"]"),getd(".Package"+$itemreward$[.@i+1]+"["+(.@j+1)+"]");
- set .@j, .@j+2; }
- specialeffect2 248;
- deletearray $itemreward$[.@i],2;
- mes "Here you go!";
- close;
- OnMinute00:
- OnMinute30:
- if (!getarraysize($itemreward$)) end;
- set .@i,0;
- while (.@i < getarraysize($itemreward$)) {
- message $itemreward$[.@i],"[You have a reward pending. See the Item Rewards NPC.]";
- sleep 10;
- set .@i, .@i+2; }
- end;
- GM_Menu:
- mes "[Item Rewards]";
- mes "What would you like to do?";
- next;
- switch(select(" ~ ^FF55FFPackage information^000000: ~ ^FF55FFList unclaimed rewards^000000: ~ ^00D900Give a reward^000000: ~ "+((getgmlevel()<.GMDelete)?"^777777":"^DE0000")+"Delete a reward^000000: ~ "+((getgmlevel()<.GMDelete)?"^777777":"^DE0000")+"Delete all unclaimed rewards^000000: ~ "+((getgmlevel()<.GMLogging)?"^777777":"^55AAFF")+"Manage logs^000000: ~ [Close]")) {
- case 1:
- mes "[Item Rewards]";
- set .@j,1;
- while (getd(".Package"+.@j)) {
- mes "^660099Package " + .@j + ":^000000";
- set .@i,0;
- while (.@i < getarraysize(getd(".Package"+.@j))) {
- mes " ~ " + getd(".Package"+.@j+"["+(.@i+1)+"]") + "x " + getitemname(getd(".Package"+.@j+"["+(.@i)+"]"));
- set .@i, .@i+2; }
- set .@j, .@j+1; }
- next;
- goto GM_Menu;
- case 2:
- mes "[Item Rewards]";
- mes "Used space: ^F52887" + (getarraysize($itemreward$)/2) + "^000000/64";
- mes "--------------------------------";
- set .@i,0;
- while (.@i < getarraysize($itemreward$)) {
- mes "^B041FF" + $itemreward$[.@i] + "^000000: package #" + $itemreward$[.@i+1];
- set .@i, .@i+2; }
- next;
- goto GM_Menu;
- case 3:
- mes "[Item Rewards]";
- if (getarraysize($itemreward$) > 127) {
- mes "No more names can be stored.";
- mes "Delete some values and try again.";
- next;
- goto GM_Menu; }
- mes "Input a name, then a package number.";
- input .@name$;
- query_sql "SELECT `char_id` FROM `char` WHERE `name` = '"+.@name$+"'",.@charid;
- if (!.@charid) { mes "The name is invalid."; next; goto GM_Menu; }
- else set .@charid,0;
- input .@package,1,.PackageCount;
- next;
- mes "[Item Rewards]";
- mes "Player: ^B041FF" + .@name$ + "^000000";
- mes "Package: ^B041FF#" + .@package + "^000000";
- mes " ";
- mes "Are you sure?";
- if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto GM_Menu; }
- setarray $itemreward$[getarraysize($itemreward$)],.@name$,.@package;
- message .@name$,"[You have a reward pending. See the Item Rewards NPC.]";
- if ($itemlog) {
- if (getarraysize($itemlog1$) > 127) {
- deletearray $itemlog1$[0],1;
- deletearray $itemlog2$[0],1; }
- setarray $itemlog1$[getarraysize($itemlog1$)],strcharinfo(0);
- setarray $itemlog2$[getarraysize($itemlog2$)],.@name$; }
- mes "Reward added.";
- next;
- goto GM_Menu;
- case 4:
- mes "[Item Rewards]";
- if (getgmlevel() < .GMDelete) {
- mes "You are not permitted to delete entries."; next; goto GM_Menu; }
- mes "Input a name to cancel a reward.";
- input .@name$;
- set .@i,0;
- while (.@i < getarraysize($itemreward$)) {
- if ($itemreward$[.@i] == .@name$) {
- deletearray $itemreward$[.@i],2;
- mes "Name cleared."; next; goto GM_Menu; }
- set .@i, .@i+2; }
- mes "The name is invalid.";
- next;
- goto GM_Menu;
- case 5:
- mes "[Item Rewards]";
- if (getgmlevel() < .GMDelete) {
- mes "You are not permitted to delete entries."; next; goto GM_Menu; }
- mes "^FF0000This action cannot be undone.^000000";
- mes "Are you sure?";
- mes " ";
- if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto GM_Menu; }
- deletearray $itemreward$[0],getarraysize($itemreward$);
- mes "All entries cleared.";
- next;
- goto GM_Menu;
- case 6:
- Log_Menu:
- mes "[Item Rewards]";
- if (getgmlevel() < .GMLogging) {
- mes "You are not permitted to manage logs."; next; goto GM_Menu; }
- mes "Logs are currently "+(($itemlog)?"^00D900enabled^000000":"^FF0000disabled^000000")+".";
- next;
- switch(select(" ~ ^55AAFFView Logs^000000: ~ "+((!$itemlog)?"^00D900Enable":"^777777Disable")+" logging^000000: ~ ^DE0000Delete all logs^000000: ~ [Go back]")) {
- case 1:
- mes "[Item Rewards]";
- mes "Used space: ^F52887" + (getarraysize($itemlog1$)) + "^000000/128";
- mes "--------------------------------";
- set .@i,0;
- while (.@i < getarraysize($itemlog1$)) {
- mes "^B041FF" + $itemlog1$[.@i] + "^000000: sent to ^55AAFF" + $itemlog2$[.@i] + "^000000";
- set .@i, .@i+1; }
- next;
- goto Log_Menu;
- case 2:
- set $itemlog, ((!$itemlog)?1:0);
- goto Log_Menu;
- case 3:
- mes "[Item Rewards]";
- mes "^FF0000This action cannot be undone.^000000";
- mes "Are you sure?";
- mes " ";
- if (select("Yes:No") == 2) { mes "Request cancelled."; next; goto Log_Menu; }
- deletearray $itemlog1$[0],getarraysize($itemlog1$);
- deletearray $itemlog2$[0],getarraysize($itemlog2$);
- mes "Logs cleared.";
- next;
- goto Log_Menu;
- case 4:
- next;
- goto GM_Menu;
- }
- case 7:
- close;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement