Jump to content
  • 0

Need Help How to Add Broadcast in this script


Question

Posted (edited)

How to add broadcast announcer when you input the reward . Example "  (WHO GIVE the reward) has rewarded (Player gets the reward) with (Package 1.)

//===== 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,156,180,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,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.]";
            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;
    }
} 

 

 

Edited by Emistry
Change [Quote] to [Code]

2 answers to this question

Recommended Posts

Posted


//===== 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,156,195,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,60;

set .GMDelete,80;

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;

announce "[GM] "+ $gm_name_reward$[.@i] +" has rewarded "+ strcharinfo(0) +" with (Package "+ $itemreward$[.@i+1] +".)", 0;

deletearray $itemreward$[.@i],2;

deletearray $gm_name_reward$[.@i],1;

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 $gm_name_reward$[getarraysize($gm_name_reward$)], strcharinfo(0);

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;

deletearray $gm_name_reward$[.@i],1;

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$);

deletearray $gm_name_reward$[0],getarraysize($gm_name_reward$);

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;

}

}

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...