Jump to content
  • 0

WOE Prize Giver + WOE Controller


Radian

Question


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

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
Link to comment
Share on other sites

5 answers to this question

Recommended Posts


  • Group:  Developer
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  292
  • Reputation:   199
  • Joined:  05/03/13
  • Last Seen:  

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

 

Is this compatible with Toasty's WOE Controller? and the prize give's the GL randomly?

I've tested it, and no errors and working.. but everytime the WOE Ends other/same guild that own other castle can get another reward from their own castle even if its not active on that day..

@bump :(

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  292
  • Reputation:   199
  • Joined:  05/03/13
  • Last Seen:  

I think thats because the script checks every castle after Woe.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

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
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

@help with this script please

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