Jump to content
  • 0

Call Sub Support Please


nasagnilac

Question


  • Group:  Members
  • Topic Count:  89
  • Topics Per Day:  0.02
  • Content Count:  232
  • Reputation:   15
  • Joined:  11/02/13
  • Last Seen:  


OnInit:

// == <itemid><amount><refine><mode>

setarray .tier1[1],12412,10,0,1;

setarray .tier2[1],2371,1,7,1,2523,1,7,1;

setarray .tier3[1],1624,1,9,1;

setarray .tier4[1],5518,1,0,2;

setarray .tier5[1],5518,1,0,1;

setarray .tier6[1],5518,1,0,1;

setarray .tier7[1],5518,1,0,1;

setarray .tier8[1],5518,1,0,1;

setarray .tier9[1],5518,1,0,1;

setarray .tier10[1],5518,1,0,1;

end;


switch(select("[T1] 10,000 or above:[T2] 25,000 or above:[T3] 50,000 or above:[T4] 75,000 or above:[T5] 100,000 or above:[T6] 125,000 or above:[T7] 150,000 or above:[T8] 175,000 or above:[T9] 200,000 or above:[T10] 250,000 or above")){

case 1: callsub S_TierReward,1,10000,.tier1,.tier1[.@i],.tier1[.@i+1],.tier1[.@i+2],.tier1[.@i+3]; break;

case 2: callsub S_TierReward,2,25000,.tier2,.tier2[.@i],.tier2[.@i+1],.tier2[.@i+2],.tier2[.@i+3]; break;

case 3: callsub S_TierReward,3,50000,.tier3,.tier3[.@i],.tier3[.@i+1],.tier3[.@i+2],.tier3[.@i+3]; break;

case 4: callsub S_TierReward,4,75000,.tier4,.tier4[.@i],.tier4[.@i+1],.tier4[.@i+2],.tier4[.@i+3]; break;

case 5: callsub S_TierReward,5,100000,.tier5,.tier5[.@i],.tier5[.@i+1],.tier5[.@i+2],.tier5[.@i+3]; break;

case 6: callsub S_TierReward,6,125000,.tier6,.tier6[.@i],.tier6[.@i+1],.tier6[.@i+2],.tier6[.@i+3]; break;

case 7: callsub S_TierReward,7,150000,.tier7,.tier7[.@i],.tier7[.@i+1],.tier7[.@i+2],.tier7[.@i+3]; break;

case 8: callsub S_TierReward,8,175000,.tier8,.tier8[.@i],.tier8[.@i+1],.tier8[.@i+2],.tier8[.@i+3]; break;

case 9: callsub S_TierReward,9,200000,.tier9,.tier9[.@i],.tier9[.@i+1],.tier9[.@i+2],.tier9[.@i+3]; break;

case 10: callsub S_TierReward,10,250000,.tier10,.tier10[.@i],.tier10[.@i+1],.tier10[.@i+2],.tier10[.@i+3]; break;

}


S_TierReward:

if(#tieramount >= getarg(1)){

// Need to fix this because I want it check the first tier before claiming the next tier.

if ( #tier == getarg(0)){

mes .npcname$;

mes "Please claim first the "+(getarg(0))+" Tier Rewards.";

close;

}

// At this part I can't get any items from above. The for loop is not working please help.

mes .npcname$;

mes "We sent your tier bonus trough our Reward NPC.";

for( set .@i, 1; .@i < getarraysize(getarg(2)); set .@i, .@i + 3 ){

if(getarg(6) == 1){

getitem2 getarg(3),getarg(4),1,getarg(5),0,0,0,0,0;

}else if(getarg(6) == 2){

atcommand "@costumeitem "+getarg(3);

}

}

set #tier,#tier + 1;

if (#tier >= 10){

set #tieramount, #tieramount - getarg(1);

set #tier,0;

}

end;

}else{

mes .npcname$;

mes "Converted Cash Points is not enough.";

close;

}

return;

Edited by gmprestige
Link to comment
Share on other sites

3 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  28
  • Reputation:   10
  • Joined:  04/18/15
  • Last Seen:  

would you put the whole script? i need to test and make it work

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  89
  • Topics Per Day:  0.02
  • Content Count:  232
  • Reputation:   15
  • Joined:  11/02/13
  • Last Seen:  

prontera,113,86,4	script	Donate Manager	790,{
mes .npcname$;
mes "What can I do for you?";
next;
switch(select("Convert Credits to Cash Points"+((.tierpromo == 1)?":[^ff0000Promo^000000] Tiered Spender":"")+""+((getgmlevel() == 100)?":[^ff0000Reset^000000] Tier Points":"")+"")) {

case 1:
	query_sql("SELECT `balance` FROM `cp_credits` WHERE `account_id` = '"+getcharid(3)+"'",.@balance);
	mes .npcname$;
	mes "^ff0000Account Information^000000";
	mes "Total Credits: ^FF0000"+.@balance+"^000000";
	mes "Total Cash Points: ^FF0000"+#CASHPOINTS+"^000000";
	mes "       ";
	mes "^00FF00Do you really want to covert your credits to Cash Points?^000000";
next;
	switch(select("Yes:No.")){

	case 1:
		mes .npcname$;
		mes "^ff0000Account Information^000000";
		mes "Total Credits: ^FF0000"+.@balance+"^000000";
		mes "Total Cash Points: ^FF0000"+#CASHPOINTS+"^000000";
		mes "       ";
		mes "^0000FFChoose the amount you wanted to convert.^000000";
		next;
		switch(select("10,000 CP + 1 Day VIP:20,000 CP + 3 Days VIP:40,000 CP + 7 Days VIP:Others")){


		
		case 1:
		set .@credits,10000;
		set .@day,1;
		goto process;
		end;
		
		case 2:
		set .@credits,20000;
		set .@day,3;
		goto process;
		end;
		
		case 3:
		set .@credits,40000;
		set .@day,7;
		goto process;
		end;
		
		case 4:
		mes .npcname$;
		mes "^ff0000Account Information^000000";
		mes "Total Credits: ^FF0000"+.@balance+"^000000";
		mes "Total Cash Points: ^FF0000"+#CASHPOINTS+"^000000";
		mes "       ";
		mes "^0000FFInput the amount you wanted to convert.^000000";
		next;
		input .@credits;
		goto process;
		end;
		}
		process:
		if(.@credits < 1){goto Invalid;}
		if(.@credits > .@balance){goto C_enough;}
		atcommand "@cash "+(.@credits + .@bonus)+"";
		if(.@day){
		atcommand "@vip "+.@day+"d "+strcharinfo(0);
		}
		query_sql "update `cp_credits` set `balance` = `balance` - "+ .@credits +" where `account_id` = '"+getcharid(3)+"'";
		mes .npcname$;
		mes "Thank you for using this service.";
		set #tieramount, #tieramount + .@credits;
		close;
	
	case 2:
		goto Thanks;
		end;
	}
	
		case 2:
		mes .npcname$;
		mes "Donate and covert your credits now. Have a chance to get free items depending to the credits amount you converted this month. The more credits you convert the coolest items you will get.";
		mes "       ";
		next;
		switch(select("Open a tier:Tiers Reward List")){
		
		
		case 1:
		mes .npcname$;
		mes "Converted Credits: "+#tieramount+"";
		next;
		switch(select("[T1] 10,000 or above:[T2] 25,000 or above:[T3] 50,000 or above:[T4] 75,000 or above:[T5] 100,000 or above:[T6] 125,000 or above:[T7] 150,000 or above:[T8] 175,000 or above:[T9] 200,000 or above:[T10] 250,000 or above")){
		case 1: callsub S_TierReward,1,10000,.tier1,.tier1[.@i],.tier1[.@i+1],.tier1[.@i+2],.tier1[.@i+3]; break;
		case 2: callsub S_TierReward,2,25000,.tier2,.tier2[.@i],.tier2[.@i+1],.tier2[.@i+2],.tier2[.@i+3]; break;
		case 3: callsub S_TierReward,3,50000,.tier3,.tier3[.@i],.tier3[.@i+1],.tier3[.@i+2],.tier3[.@i+3]; break;
		case 4: callsub S_TierReward,4,75000,.tier4,.tier4[.@i],.tier4[.@i+1],.tier4[.@i+2],.tier4[.@i+3]; break;
		case 5: callsub S_TierReward,5,100000,.tier5,.tier5[.@i],.tier5[.@i+1],.tier5[.@i+2],.tier5[.@i+3]; break;
		case 6: callsub S_TierReward,6,125000,.tier6,.tier6[.@i],.tier6[.@i+1],.tier6[.@i+2],.tier6[.@i+3]; break;
		case 7: callsub S_TierReward,7,150000,.tier7,.tier7[.@i],.tier7[.@i+1],.tier7[.@i+2],.tier7[.@i+3]; break;
		case 8: callsub S_TierReward,8,175000,.tier8,.tier8[.@i],.tier8[.@i+1],.tier8[.@i+2],.tier8[.@i+3]; break;
		case 9: callsub S_TierReward,9,200000,.tier9,.tier9[.@i],.tier9[.@i+1],.tier9[.@i+2],.tier9[.@i+3]; break;
		case 10: callsub S_TierReward,10,250000,.tier10,.tier10[.@i],.tier10[.@i+1],.tier10[.@i+2],.tier10[.@i+3]; break;
		}

		S_TierReward:
			if(#tieramount >= getarg(1)){
								
			if ( #tier == .tier[1]){ 
				mes .npcname$; 
				mes "Please claim first the "+(.tier[1]-1)+" Tier Rewards.";
				close;
			}
			
				mes .npcname$; 
				mes "We sent your tier bonus trough our Reward NPC."; 
				for( set .@i, 1; .@i < getarraysize(getarg(2)); set .@i, .@i + 3 ){
					if(getarg(6) == 1){
						getitem2 getarg(3),getarg(4),1,getarg(5),0,0,0,0,0;
					}else if(getarg(6) == 2){
						atcommand "@costumeitem "+getarg(3);
					}
				}
				set #tier,#tier + 1;
				if (#tier >= 10){
				set #tieramount, #tieramount - getarg(1);
				set #tier,0;
				}
				end;

			}else{ 
			mes .npcname$; 
			mes "Converted Cash Points is not enough.";
			close;
			}
		return;
		
		case 2:
		mes "[^0000ff TIER 1 ^000000]";
		for( set .@i, 1; .@i < getarraysize(.tier1); set .@i, .@i + 4 ){
			mes ""+((.tier1[.@i+2] >= 1)?"+"+.tier1[.@i+1]+" ":"")+""+getitemname(.tier1[.@i])+" ["+getitemslots(.tier1[.@i])+"] x "+.tier1[.@i+1]+"";
		}
		mes "   ";
		mes "[^0000ff TIER 2 ^000000]";
		for( set .@i, 0; .@i < getarraysize(.tier2); set .@i, .@i + 4 ){
			mes ""+((.tier2[.@i+2] >= 1)?"+"+.tier2[.@i+2]+" ":"")+""+getitemname(.tier2[.@i])+" ["+getitemslots(.tier2[.@i])+"] x "+.tier2[.@i+1]+"";
		}
		mes "   ";
		mes "[^0000ff TIER 3 ^000000]";
		for( set .@i, 0; .@i < getarraysize(.tier3); set .@i, .@i + 4 ){
			mes ""+((.tier3[.@i+2] >= 1)?"+"+.tier3[.@i+2]+" ":"")+""+getitemname(.tier3[.@i])+" ["+getitemslots(.tier3[.@i])+"] x "+.tier3[.@i+1]+"";
		}
		mes "   ";
		mes "[^0000ffTIER 4 ^000000]";
		for( set .@i, 0; .@i < getarraysize(.tier4); set .@i, .@i + 4 ){
			if(.tier4[.@i+3] == 1){
				mes ""+((.tier4[.@i+2] >= 1)?"+"+.tier4[.@i+2]+" ":"")+""+getitemname(.tier4[.@i])+" x "+.tier4[.@i+1]+"";
			}else if(.tier4[.@i+3] == 2){
				mes ""+((.tier4[.@i+2] >= 1)?"+"+.tier4[.@i+2]+" ":"")+"Costume's "+getitemname(.tier4[.@i])+" x "+.tier4[.@i+1]+"";
			}
		}
		mes "   ";
		mes "[^0000ff TIER 5 ^000000]";
		for( set .@i, 0; .@i < getarraysize(.tier5); set .@i, .@i + 4 ){
			if(.tier5[.@i+3] == 1){
				mes ""+((.tier5[.@i+2] >= 1)?"+"+.tier5[.@i+2]+" ":"")+""+getitemname(.tier5[.@i])+" x "+.tier5[.@i+1]+"";
			}else if(.tier5[.@i+3] == 2){
				mes ""+((.tier5[.@i+2] >= 1)?"+"+.tier5[.@i+2]+" ":"")+"Costume's "+getitemname(.tier5[.@i])+" x "+.tier5[.@i+1]+"";
			}
		}
		close;
		}
		case 3:
		mes .npcname$;
		mes "Tier Points has been reset.";
		query_sql "DELETE FROM `global_reg_value` WHERE `str`='#tieramount'";
		query_sql "DELETE FROM `global_reg_value` WHERE `str`='#tier1'";
		query_sql "DELETE FROM `global_reg_value` WHERE `str`='#tier2'";
		query_sql "DELETE FROM `global_reg_value` WHERE `str`='#tier3'";
		query_sql "DELETE FROM `global_reg_value` WHERE `str`='#tier4'";
		end;

}
Thanks:
		mes .npcname$;
		mes "I respect your decision. Please try my service again";
		close;
		
C_enough:
	mes .npcname$;
	mes "Sorry but you don't have enough credits.";
	close;

	
Invalid:
	mes .npcname$;
	mes "Invalid Input.";
	close;
	
OnInit:

// == <itemid><amount><refine>
setarray .tier1[1],12412,10,0,1;

setarray .tier2[1],2371,1,7,1,2523,1,7,1;

setarray .tier3[1],1624,1,9,1;

setarray .tier4[1],5518,1,0,2;

setarray .tier5[1],5518,1,0,1;

setarray .tier6[1],5518,1,0,1;

setarray .tier7[1],5518,1,0,1;

setarray .tier8[1],5518,1,0,1;

setarray .tier9[1],5518,1,0,1;

setarray .tier10[1],5518,1,0,1;
		
set .npcname$,"[Donate Manager]"; 
set .creditstocash,0;
set .tierpromo,1;
set .creditrate,3000;
set .zenyrate,35000000;
set .maximumzeny,2000000000;
end;

}

Can you please fix it all.

Edited by gmprestige
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  28
  • Reputation:   10
  • Joined:  04/18/15
  • Last Seen:  

i'll look at this by tonight

 

 

Sorry, still can't make it work

Edited by kn16
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...