Jump to content
  • 0

Some modification of award giver script


Gelo

Question


  • Group:  Members
  • Topic Count:  22
  • Topics Per Day:  0.01
  • Content Count:  56
  • Reputation:   1
  • Joined:  05/10/12
  • Last Seen:  

need help for this script edit, this NPC is for donation giver NPC:

-If NPC is clicked by GM, NPC will ask the GM the exact name of the player that will receive the reward. The player will be notified by a dispbottom that he/she has a pending reward until he/she has already claimed it. (Offline or Online player can receive it)

-NPC will ask what item # will be given to the player.A msg box will inform the GM what item will be given.

-NPC will ask how many # of items will be given to the player.

-NPC will display the informations given by admin

-NPC will ask if this will be finalized.

-if NPC is clicked by player, NPC have msg box asking "Do you want to claim you rewards?" and options "Yes" or "No"

-If yes, check the player weight(If(weight<3000)) give the item to the player and announce: "Player has claimed his donation", else, msg box will appear. you are overweight then close.

-If option selected = no. NPC will end.

The idea is still like the code bellow, with logs, list the unclaimed rewards, delete a reward, delete all unclaimed reward, and manage logs.

Thank you everyone :)

//===== 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.
//============================================================
prontera,138,172,6 script Claim Donation 790,{
waitingroom "Claim your donations here!",0;
// --------------------- 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,99;
set .GMDelete,99;
set .GMLogging,99;
set .PackageCount,6;
setarray .Package1[0],7179,50;
// --------------------------------------------------
if (getgmlevel() >= .GMAccess) goto GM_Menu;
mes "[GM Donation NPC]";
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;
announce "Donation:"+ strcharinfo(0)+" has received Donation Package "+$itemreward$[.@i+1]+"!",0;
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 Donation pending.  See the GM Donation NPC.]";
 sleep 10;
 set .@i, .@i+2; }
end;
GM_Menu:
mes "[GM Donation NPC]";
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 "[GM Donation NPC]";
  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 "[GM Donation NPC]";
  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 "[GM Donation NPC]";
  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 "[GM Donation NPC]";
  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 Donation pending.  See the GM Donation NPC at @warp prontera 148 160.]";
  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 "[GM Donation NPC]";
  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 "[GM Donation NPC]";
  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 "[GM Donation NPC]";
  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 "[GM Donation NPC]";
 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 "[GM Donation NPC]";
 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;
}
}

boomp!

Edited by Joseph
Codebox.
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...