Jump to content
  • 0
Sign in to follow this  
karazu

Guild Prize Giver

Question

//===== rAthena Script =======================================//= Guild Prize Giveaway//===== By: ==================================================//= AnnieRuru / Mysterious / Joseph//===== Current Version: =====================================//= 1.7//===== Compatible With: =====================================//= rAthena SVN//===== Description: =========================================//= Rewards guild masters of castle owners after each//= War of Emperium session.//===== Additional Comments: =================================//= v1.0 - Intitial Re-release [Mysterious]//= v1.1 - Language structures [Mysterious]//= v1.2 - Added divisions [Mysterious]//= v1.3 - Added proper information [Mysterious]//= v1.4 - Optimized! [Euphy]//= v1.5 - Little bit of cleaning [Mysterious]//= v1.6 - Fixed Agit on/off corruption. [Joseph]//= v1.7 - Fixed overweight issues [Joseph]//============================================================prontera,163,166,4	script	Castle Rewards	871,{	function	GetCastle;	set .@reward,671,1;	//<Item_ID>,<Amount>{,...}	set .@n$,"["+strnpcinfo(0)+"]";	mes "Your guild [^0000FF"+getguildname(getcharid(2))+"^000000] has conquered:";	for(set .@i,0;.@i<getarraysize(.Castles$);set .@i,.@i+1)		if (getcastledata(.Castles$[.@i],1) == getcharid(2)) {			mes " > "+getcastlename(.Castles$[.@i])+""; set .@c,1;			setarray .@uh$[getarraysize(.@uh$)],.Castles$[.@i],(1<<.@i);		}	if (!.@c) { mes " > No castles."; close; }	next;	if (select(((getguildmasterid(getcharid(2))==getcharid(0))?((agitcheck()||agitcheck2())?"":"Redeem Reward"):"")+":Close")==2) close;	mes .@n$;	mes "Please select a castle to redeem your guild reward.";	for(set .@i,0;.@i<getarraysize(.@uh$);set .@i,.@i+2) set .@m$,.@m$+($castle_reward&(1<<GetCastle(atoi(.@uh$[.@i+1])))?"^0000FF":"^FF0000")+getcastlename(.@uh$[.@i])+"^000000:";	next;	set .@m,select(.@m$)-1;	if ($castle_reward&(1<<GetCastle(atoi(.@uh$[.@m*2+1])))) {		mes .@n$;		mes "Here's your reward for conquering ^0000FF"+getcastlename(.@uh$[.@m*2])+"^000000.";		mes "You should divide these among your guild members.";		for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+1) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; }		for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+1) getitem .@reward[.@i],.@reward[.@i+1];		set $castle_reward,$castle_reward^(1<<GetCastle(atoi(.@uh$[.@m*2+1])));		close;	}	mes .@n$;	mes "It seems like you've redeemed the reward.";	close;	function	GetCastle	{		for(set .@j,0;.@j<getarraysize(.Castles$);set .@j,.@j+1) {			set .@c1,.@c2|(1<<.@j);			if (getarg(0)==.@c1) return .@j;		}		return -1;	}OnAgitEnd:OnAgitEnd2:	for(set .@i,0;.@i<getarraysize($WOE_CONTROL);set .@i,.@i+4)		if (gettime(4)==$WOE_CONTROL[.@i] && gettime(3)==$WOE_CONTROL[.@i+2] && $castle_reward&(1<<GetCastle($WOE_CONTROL[.@i+3])) == 0)			set $castle_reward,$castle_reward|(1<<GetCastle($WOE_CONTROL[.@i+3]));	end;	OnInit:	setarray .Castles$,		"prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05",		"payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05",		"gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05",		"aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05",		"arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05",		"schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05";	end;} 

Can someone analyze this Script please.

 

Will this script give a prize everyday or only every after the WOE?

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

The script had an error by default.

 

Change line 25 to:

    setarray .@reward[0],671,1;    //<Item_ID>,<Amount>{,...}

 

And I think the loops at line 45 and 46 aren't correct. If you get problems try changing

        for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+1) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; }        for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+1) getitem .@reward[.@i],.@reward[.@i+1];

to:

        for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; }        for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) getitem .@reward[.@i],.@reward[.@i+1];

 

Full script fixed (I think):

//===== Hercules Script ======================================//= Guild Prize Giveaway//===== By: ==================================================//= AnnieRuru / Mysterious / Joseph//===== Current Version: =====================================//= 1.7//===== Compatible With: =====================================//= Hercules//===== Description: =========================================//= Rewards guild masters of castle owners after each//= War of Emperium session.//===== Additional Comments: =================================//= v1.0 - Intitial Re-release [Mysterious]//= v1.1 - Language structures [Mysterious]//= v1.2 - Added divisions [Mysterious]//= v1.3 - Added proper information [Mysterious]//= v1.4 - Optimized! [Euphy]//= v1.5 - Little bit of cleaning [Mysterious]//= v1.6 - Fixed Agit on/off corruption. [Joseph]//= v1.7 - Fixed overweight issues [Joseph]//= v1.8 - Fixed default script failing to parse, and a //=        possible issue on the getitem and overweight //=        checking loops [jaBote]//============================================================prontera,163,166,4	script	Castle Rewards	871,{    function    GetCastle;    setarray .@reward[0],671,1;    //<Item_ID>,<Amount>{,...}    set .@n$,"["+strnpcinfo(0)+"]";    mes "Your guild [^0000FF"+getguildname(getcharid(2))+"^000000] has conquered:";    for(set .@i,0;.@i<getarraysize(.Castles$);set .@i,.@i+1)        if (getcastledata(.Castles$[.@i],1) == getcharid(2)) {            mes " > "+getcastlename(.Castles$[.@i])+""; set .@c,1;            setarray .@uh$[getarraysize(.@uh$)],.Castles$[.@i],(1<<.@i);        }    if (!.@c) { mes " > No castles."; close; }    next;    if (select(((getguildmasterid(getcharid(2))==getcharid(0))?((agitcheck()||agitcheck2())?"":"Redeem Reward"):"")+":Close")==2) close;    mes .@n$;    mes "Please select a castle to redeem your guild reward.";    for(set .@i,0;.@i<getarraysize(.@uh$);set .@i,.@i+2) set .@m$,.@m$+($castle_reward&(1<<GetCastle(atoi(.@uh$[.@i+1])))?"^0000FF":"^FF0000")+getcastlename(.@uh$[.@i])+"^000000:";    next;    set .@m,select(.@m$)-1;    if ($castle_reward&(1<<GetCastle(atoi(.@uh$[.@m*2+1])))) {        mes .@n$;        mes "Here's your reward for conquering ^0000FF"+getcastlename(.@uh$[.@m*2])+"^000000.";        mes "You should divide these among your guild members.";        for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; }        for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) getitem .@reward[.@i],.@reward[.@i+1];        set $castle_reward,$castle_reward^(1<<GetCastle(atoi(.@uh$[.@m*2+1])));        close;    }    mes .@n$;    mes "It seems like you've redeemed the reward.";    close;    function    GetCastle    {        for(set .@j,0;.@j<getarraysize(.Castles$);set .@j,.@j+1) {            set .@c1,.@c2|(1<<.@j);            if (getarg(0)==.@c1) return .@j;        }        return -1;    }OnAgitEnd:OnAgitEnd2:    for(set .@i,0;.@i<getarraysize($WOE_CONTROL);set .@i,.@i+4)        if (gettime(4)==$WOE_CONTROL[.@i] && gettime(3)==$WOE_CONTROL[.@i+2] && $castle_reward&(1<<GetCastle($WOE_CONTROL[.@i+3])) == 0)            set $castle_reward,$castle_reward|(1<<GetCastle($WOE_CONTROL[.@i+3]));    end;    OnInit:    setarray .Castles$,        "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05",        "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05",        "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05",        "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05",        "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05",        "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05";    end;} 

Share this post


Link to post
Share on other sites
  • 0

Yes every end of WOE

 

OnAgitEnd:OnAgitEnd2:    for(set .@i,0;.@i<getarraysize($WOE_CONTROL);set .@i,.@i+4)        if (gettime(4)==$WOE_CONTROL[.@i] && gettime(3)==$WOE_CONTROL[.@i+2] && $castle_reward&(1<<GetCastle($WOE_CONTROL[.@i+3])) == 0)            set $castle_reward,$castle_reward|(1<<GetCastle($WOE_CONTROL[.@i+3]));    end;

Share this post


Link to post
Share on other sites
  • 0

 

Yes every end of WOE

 

OnAgitEnd:OnAgitEnd2:    for(set .@i,0;.@i<getarraysize($WOE_CONTROL);set .@i,.@i+4)        if (gettime(4)==$WOE_CONTROL[.@i] && gettime(3)==$WOE_CONTROL[.@i+2] && $castle_reward&(1<<GetCastle($WOE_CONTROL[.@i+3])) == 0)            set $castle_reward,$castle_reward|(1<<GetCastle($WOE_CONTROL[.@i+3]));    end;

Thank you, because I saw a WOE Prize Giver before it gives everyday. 

 

 

 

 

 

 

 

 

error

 

 

[Error]:  Loading NPC file: npc/custom/MYNPC/WOEprizegiver.txtscript error on npc/custom/MYNPC/WOEprizegiver.txt line 25    parse_line: need ';'    23 : {    24 :     function    GetCastle;*   25 :     set .@reward,671','1;    //<Item_ID>,<Amount>{,...}    26 :     set .@n$,"["+strnpcinfo(0)+"]";    27 :     mes "Your guild [^0000FF"+getguildname(getcharid(2))+"^000000] has conquered:";    28 :     for(set .@i,0;.@i<getarraysize(.Castles$);set .@i,.@i+1)    29 :         if (getcastledata(.Castles$[.@i],1) == getcharid(2)) {    30 :             mes " > "+getcastlena 

 

Edited by karazu

Share this post


Link to post
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.   Restore formatting

  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.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.