Jump to content
  • 0

WOE Prize Giver + WOE Controller


Question

Posted (edited)

Hello, can anyone help me with this? it not working i've tested it on my latest revision im using this prize giver & Toasty's WOE Controller

//===== rAthena Script =======================================
//= Guild Prize Giveaway
//===== By: ==================================================
//= AnnieRuru / Mysterious / Joseph
//===== Current Version: =====================================
//= 1.9
//===== Compatible With: =====================================
//= rAthena SVN
//= Toasty WoE Controller
//= Euphy WoE Controller
//===== 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 - Added the compability with Toasty's WoE Controller. [Joseph]
//= v1.9 - Invalid array size when the last array value is 0. [Joseph]
//============================================================

mellina,103,82,3	script	Castle Rewards	864,{
	function	GetCastle;	
	function	GetNPCVar;	
	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],.@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<<atoi(.@uh$[.@i+1]))?"^0000FF":"^FF0000")+getcastlename(.@uh$[.@i])+"^000000:";
	next;
	set .@m, select(.@m$)-1;
	if ($castle_reward&(1<<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) {
			set .@weight, getiteminfo(.reward[.@i],6);
			set .@add_weight, .@add_weight+.@weight;
			if (.@add_weight+Weight > MaxWeight) { 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<<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;
	}
	function	GetNPCVar	{
		set .@var_1$,getarg(0);
		set .@var_2$,getarg(1);
		freeloop(1);
		for (set .@i,0; .@i<128; set .@i,.@i+1)
			setd .@var_2$+"["+.@i+"]",getelementofarray(getvariableofnpc(getd(.@var_1$),getarg(2)),.@i);
		freeloop(0);
		return;
	}
	
OnAgitEnd:
OnAgitEnd2:
	if (.controller) {
		set .@tick, gettimetick(1);
		for (set .@i, 0; .woe_0[.@i] != 0 || .woe_1[.@i] != 0; set .@i, .@i+1)
			for (set .@j, 0; .@j < 7; set .@j, .@j+1)
				for (set .@c, 0; .@c < (getarraysize(.regions$)); set .@c, .@c+1)
					if (.woe_day[.@i] == gettime(4) && .woe_1[.@i] == .@tick && getd(".woe_state_"+.woe_state[.@i]+"["+.@j+"]") > 0 && getd(".woe_state_"+.woe_state[.@i]+"["+.@j+"]")&(1<<.@c) > 0) {
						set .@position,.@j*5+.@c;
						if ($castle_reward&(1<<.@position) == 0) set $castle_reward,$castle_reward|(1<<.@position);
					}
	}
	else {
		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:
	// === [Config] =============================================
	set .controller,1;		// WoE Controller - Euphy|Toasty:0|1
	setarray .reward,671,1; // Reward - <Item_ID>,<Amount>{,...}
	// ==========================================================
	sleep 10;
	if (!.controller)
		GetNPCVar(".Castles$",".Castles$","WOE_CONTROL");
	else {
		// Transfer NPC Variable
		setarray .@var$,".woe_day",".woe_0",".woe_1",".woe_state",".regions$",".castles_novi$";
		for (set .@i, 0; .@i < getarraysize(.@var$); set .@i, .@i+1)
			GetNPCVar(.@var$[.@i],.@var$[.@i],"WoEInfoBase");
		
		// Generate States
		set .@i, 0;
		do {
			GetNPCVar(".woe_state_"+.@i,".woe_state_"+.@i,"WoEInfoBase");
			set .@i, .@i+1;
		} while (.@i < .woe_state);
			
		// Generate Castles
		for (set .@i, 0; .@i < getarraysize(.regions$); set .@i, .@i+1) {
			set .@j,1;
			while (.@j<=5) {
				if (.regions$[.@i]=="novi") {
					copyarray .Castles$[getarraysize(.Castles$)],.castles_novi$[0],getarraysize(.castles_novi$);
					break;
				}
				set .Castles$[getarraysize(.Castles$)],.regions$[.@i]+"_cas0"+.@j;
				set .@j, .@j+1;
			}
		}
	}
	end;
}

 

There's no error, but it says that i already redeem my reward even if i didn't ..

 

and 1 more request / how can i make the prize give randomly to the Guild Master?

Edited by Ginji

5 answers to this question

Recommended Posts

Posted (edited)

Hello, can anyone help me with this? it not working i've tested it on my latest revision im using this prize giver & Toasty's WOE Controller

//===== rAthena Script =======================================
//= Guild Prize Giveaway
//===== By: ==================================================
//= AnnieRuru / Mysterious / Joseph
//===== Current Version: =====================================
//= 1.9
//===== Compatible With: =====================================
//= rAthena SVN
//= Toasty WoE Controller
//= Euphy WoE Controller
//===== 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 - Added the compability with Toasty's WoE Controller. [Joseph]
//= v1.9 - Invalid array size when the last array value is 0. [Joseph]
//============================================================

mellina,103,82,3	script	Castle Rewards	864,{
	function	GetCastle;	
	function	GetNPCVar;	
	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],.@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<<atoi(.@uh$[.@i+1]))?"^0000FF":"^FF0000")+getcastlename(.@uh$[.@i])+"^000000:";
	next;
	set .@m, select(.@m$)-1;
	if ($castle_reward&(1<<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) {
			set .@weight, getiteminfo(.reward[.@i],6);
			set .@add_weight, .@add_weight+.@weight;
			if (.@add_weight+Weight > MaxWeight) { 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<<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;
	}
	function	GetNPCVar	{
		set .@var_1$,getarg(0);
		set .@var_2$,getarg(1);
		freeloop(1);
		for (set .@i,0; .@i<128; set .@i,.@i+1)
			setd .@var_2$+"["+.@i+"]",getelementofarray(getvariableofnpc(getd(.@var_1$),getarg(2)),.@i);
		freeloop(0);
		return;
	}
	
OnAgitEnd:
OnAgitEnd2:
	if (.controller) {
		set .@tick, gettimetick(1);
		for (set .@i, 0; .woe_0[.@i] != 0 || .woe_1[.@i] != 0; set .@i, .@i+1)
			for (set .@j, 0; .@j < 7; set .@j, .@j+1)
				for (set .@c, 0; .@c < (getarraysize(.regions$)); set .@c, .@c+1)
					if (.woe_day[.@i] == gettime(4) && .woe_1[.@i] == .@tick && getd(".woe_state_"+.woe_state[.@i]+"["+.@j+"]") > 0 && getd(".woe_state_"+.woe_state[.@i]+"["+.@j+"]")&(1<<.@c) > 0) {
						set .@position,.@j*5+.@c;
						if ($castle_reward&(1<<.@position) == 0) set $castle_reward,$castle_reward|(1<<.@position);
					}
	}
	else {
		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:
	// === [Config] =============================================
	set .controller,1;		// WoE Controller - Euphy|Toasty:0|1
	setarray .reward,671,1; // Reward - <Item_ID>,<Amount>{,...}
	// ==========================================================
	sleep 10;
	if (!.controller)
		GetNPCVar(".Castles$",".Castles$","WOE_CONTROL");
	else {
		// Transfer NPC Variable
		setarray .@var$,".woe_day",".woe_0",".woe_1",".woe_state",".regions$",".castles_novi$";
		for (set .@i, 0; .@i < getarraysize(.@var$); set .@i, .@i+1)
			GetNPCVar(.@var$[.@i],.@var$[.@i],"WoEInfoBase");
		
		// Generate States
		set .@i, 0;
		do {
			GetNPCVar(".woe_state_"+.@i,".woe_state_"+.@i,"WoEInfoBase");
			set .@i, .@i+1;
		} while (.@i < .woe_state);
			
		// Generate Castles
		for (set .@i, 0; .@i < getarraysize(.regions$); set .@i, .@i+1) {
			set .@j,1;
			while (.@j<=5) {
				if (.regions$[.@i]=="novi") {
					copyarray .Castles$[getarraysize(.Castles$)],.castles_novi$[0],getarraysize(.castles_novi$);
					break;
				}
				set .Castles$[getarraysize(.Castles$)],.regions$[.@i]+"_cas0"+.@j;
				set .@j, .@j+1;
			}
		}
	}
	end;
}

 

I love how this script was made, because it can be compatible with Toasty's WOE Controller and hows it made... but thanks for the help im still looking for other WOE prize giver script out there, somewhere while still waiting if someone can help me with this.

Anybody can help me out?

@bump!

Edited by Ginji

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