summaryrefslogblamecommitdiff
path: root/doc/sample/npc_dynamic_shop.txt
blob: b6ed488086d55788d5dc5739952ee8791d8f4376 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                               
 
                                                     


                                  

           


                                                                                                
                              












                                                                                  

                 



                                                                 

          
















                                                                                    
                                
                                                                  

                                      
                        











                                                                                    
                                
                                                                  


                                      
         



                                                                     

       



                                                
 
//===== rAthena Script =======================================
//= Sample: Dynamic Shop
//===== By: ==================================================
//= rAthena Dev Team
//===== Current Version: =====================================
//= 20101219
//===== Description: ========================================= 
//= Contains commands needed for a dynamic shop.
//============================================================

// Dummy shop to insert items into:
-	shop	dyn_shop1	-1,501:50.

prontera,181,200,4	script	Dynamic Shop	123,{
	callshop "dyn_shop1",0;
	npcshopattach "dyn_shop1";
	end;

OnSellItem:
	for(set @i, 0; @i < getarraysize(@sold_nameid); set @i, @i + 1){
		if(countitem(@sold_nameid[@i]) < @sold_quantity[@i] || @sold_quantity[@i] <= 0){
			mes "omgh4x!";
			close;
		} else if(@sold_nameid[@i] == 501){
			delitem 501, @sold_quantity[@i];
			set $@rpotsleft, $@rpotsleft + @sold_quantity[@i];
			set Zeny, Zeny + @sold_quantity[@i]*20;
		} else {
			if(@sold_nameid[@i] == 502){
				delitem 502, @sold_quantity[@i];
				set $@opotsleft, $@opotsleft + @sold_quantity[@i];
				set Zeny, Zeny + @sold_quantity[@i]*100;
			} else {
				mes "Sorry, I don't need your items.";
				close;
			}
		}
	}
	deletearray @sold_quantity, getarraysize(@sold_quantity);
	deletearray @sold_nameid, getarraysize(@sold_nameid);
	mes "Deal completed.";
	close;

OnBuyItem:
	for(set @i, 0; @i < getarraysize(@bought_nameid); set @i, @i + 1){
		if(@bought_quantity[@i] <= 0){
			mes "omgh4x!";
			close;
		} else if(@bought_nameid[@i] == 501){
			if(@bought_quantity[@i] > $@rpotsleft){
				if($@rpotsleft > 0){
					set @bought_quantity[@i], $@rpotsleft;
				} else {
					mes "We are out of red potions!";
					close;
				}
			}
			if(Zeny >= 40*@bought_quantity[@i]){
				set Zeny, Zeny - 40*@bought_quantity[@i];
				getitem 501, @bought_quantity[@i];
				set $@rpotsleft, $@rpotsleft - @bought_quantity[@i];
			} else {
				mes "You have insufficient cash.";
				close;
			}
		} else {
			if(@bought_quantity[@i] > $@opotsleft){
				if($@opotsleft > 0){
					set @bought_quantity[@i], $@opotsleft;
				} else {
					mes "We are out of orange potions!";
					close;
				}
			}
			if(Zeny >= 200*@bought_quantity[@i]){
				set Zeny, Zeny - 200*@bought_quantity[@i];
				getitem 502, @bought_quantity[@i];
				set $@opotsleft, $@opotsleft - @bought_quantity[@i];
			} else {
				mes "You have insufficient cash.";
				close;
			}
		}
	}
	deletearray @bought_quantity, getarraysize(@bought_quantity);
	deletearray @bought_nameid, getarraysize(@bought_nameid);
	mes "Trade done.";
	close;

OnInit:
	npcshopitem "dyn_shop1", 501,40,502,200;
	set $@rpotsleft, 10;
	set $@opotsleft, 10;
	end;
}