Jump to content
  • 0

Help with my Item Prize Giver


dhaisuke

Question


  • Group:  Members
  • Topic Count:  27
  • Topics Per Day:  0.01
  • Content Count:  76
  • Reputation:   2
  • Joined:  06/07/12
  • Last Seen:  

Help with my item prize giver by Sie Euphy

//===== 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,149,193,2	script	Event Prize	831,{

// --------------------- 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,2;
    set .GMDelete,99;
    set .GMLogging,99;
    set .PackageCount,3;
    setarray .Package1[0],501,1,502,2,503,3;
    setarray .Package2[0],601,5,602,10;
    setarray .Package3[0],607,10;

// --------------------------------------------------

    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.]";
            announce .@name$+" has rewarded Package "+.@package+" for Winning Event!",0;
            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 "[]";
            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;
    }
}

my script is propely working but I want to change the package to per item and the amount of item that is given to the player

 

from:

announce (Name of player) has rewarded Package (3) for Winning Event!

to:

announce (Name of player) has rewarded (item name) (amount)for Winning 
Event!


 

Link to comment
Share on other sites

6 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  38
  • Topics Per Day:  0.01
  • Content Count:  949
  • Reputation:   174
  • Joined:  06/12/12
  • Last Seen:  

Try this

announce .@name$+" has rewarded Package "+getd(".Package"+$itemreward$[.@i+1]+"["+.@j+"]")+" "+getd(".Package"+$itemreward$[.@i+1]+"["+(.@j+1)+"]")+"pc(s). for Winning Event!",0;
Edited by sandbox
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  135
  • Reputation:   41
  • Joined:  02/05/14
  • Last Seen:  

Adjust the IDs and amounts in these arrays:

    setarray .Package1[0],501,1,502,2,503,3;
    setarray .Package2[0],601,5,602,10;
    setarray .Package3[0],607,10;
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  27
  • Topics Per Day:  0.01
  • Content Count:  76
  • Reputation:   2
  • Joined:  06/07/12
  • Last Seen:  

Hi Sir Missingno what I want is to change the announce of item giver

 

instead of announcing the package set, I want to announce the item and the amount of the items that is given to the player

 

for example:

 

 

 

announce Player has rewarded Yggdrassil Berry 10pcs for Winning 
Event!
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  27
  • Topics Per Day:  0.01
  • Content Count:  76
  • Reputation:   2
  • Joined:  06/07/12
  • Last Seen:  

Hi Sir

 

 

Try this

announce .@name$+" has rewarded Package "+.@package+" "+getd(".Package"+$itemreward$[.@i+1]+"["+(.@j+1)+"]")+"pc(s). for Winning Event!",0;

Sir its not announcing the Item Name, but it announce the pcs, of item

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  38
  • Topics Per Day:  0.01
  • Content Count:  949
  • Reputation:   174
  • Joined:  06/12/12
  • Last Seen:  

modified it, kindly try again

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  15
  • Reputation:   2
  • Joined:  01/16/14
  • Last Seen:  

how do you make this NPC also available in global whisper for GM? I want 1 in prontera for players and 1 with remote access for GMs. Thank you!  /no1

 

Got it! :)) NVM

Edited by AC23
Link to comment
Share on other sites

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...