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

                                                              
                     
                                                              

                                                              



                                                              
                                                
 
                                                                 


                                  

           

                                                                                                    
                                      
                              







                                                                   
                        

                                                              

                 



                                                                 

          

                                                                  

                                      



                                                                            




                                                                         



                                                                          
                                
                                                                  

                                      



                                                                            




                                                                            



                                                                             
                                
                                                                  


                                      
         



                                                                     

       


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

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

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

OnSellItem:
	for (.@i = 0; .@i < getarraysize(@sold_nameid); ++.@i) {
		if(countitem(@sold_nameid[.@i]) < @sold_quantity[.@i] || @sold_quantity[.@i] <= 0) {
			mes "omgh4x!";
			close;
		} else if (@sold_nameid[.@i] == Red_Potion) {
			delitem Red_Potion, @sold_quantity[.@i];
			$@rpotsleft += @sold_quantity[.@i];
			Zeny += @sold_quantity[.@i]*20;
		} else if (@sold_nameid[.@i] == Orange_Potion){
			delitem Orange_Potion, @sold_quantity[.@i];
			$@opotsleft += @sold_quantity[.@i];
			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 (.@i = 0; .@i < getarraysize(@bought_nameid); ++.@i) {
		if (@bought_quantity[.@i] <= 0) {
			mes "omgh4x!";
			close;
		} else if (@bought_nameid[.@i] == Red_Potion) {
			if (@bought_quantity[.@i] > $@rpotsleft) {
				if($@rpotsleft > 0) {
					@bought_quantity[.@i] = $@rpotsleft;
				} else {
					mes "We are out of red potions!";
					close;
				}
			}
			if(Zeny >= 40*@bought_quantity[.@i]) {
				Zeny -= 40*@bought_quantity[.@i];
				getitem Red_Potion, @bought_quantity[.@i];
				$@rpotsleft -= @bought_quantity[.@i];
			} else {
				mes "You have insufficient cash.";
				close;
			}
		} else /*if (@bought_nameid[.@i] == Orange_Potion)*/ {
			if(@bought_quantity[.@i] > $@opotsleft) {
				if($@opotsleft > 0) {
					@bought_quantity[.@i] = $@opotsleft;
				} else {
					mes "We are out of orange potions!";
					close;
				}
			}
			if(Zeny >= 200*@bought_quantity[.@i]) {
				Zeny -= 200*@bought_quantity[.@i];
				getitem Orange_Potion, @bought_quantity[.@i];
				$@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", Red_Potion, 40, Orange_Potion, 200;
	$@rpotsleft = 10;
	$@opotsleft = 10;
	end;
}