Jump to content

crazyarashi

Developer
  • Posts

    776
  • Joined

  • Last visited

  • Days Won

    22

Posts posted by crazyarashi

  1. - Id: 607
        AegisName: Yggdrasilberry
        Name: Yggdrasil Berry
        Type: Healing
        Buy: 5000
        Weight: 300
        Flags:
          BuyingStore: true
          NoConsume: true
        Delay:
          Duration: 5000
          Status: Reuse_Limit_F
        Script: |
          percentheal 100,100;
          if( !vip_status(VIP_STATUS_ACTIVE) ) {
                delitem 607, 1;
          }

     

    • Love 1
  2. -	script	test_bot	-1,{
    	OnInit:
    		bindatcmd "testsc",strnpcinfo(3) + "::OnAtcommand";
    		end;
    	OnAtcommand:
    		if (getgroupid() > 90) {
    			
    			getmapxy(.@m$,.@x0,.@y0,BL_PC);
    			
    			.@plusx = .@x0 + 5;
    			.@plusy = .@y0 + 5;
    			.@minx = .@x0 - 5;
    			.@miny = .@y0 - 5;
    			
    			dispbottom .@m$ + " " + .@x0 + " " + .@y0;
    			
    			.@num = getareaunits(BL_MOB,.@m$,.@plusx,.@plusy,.@minx,.@miny,.@array[0]);
    			.@gid = getcharid(3);
    			detachrid;
    			dispbottom "the number of Monsters in Prontera in that Coordinates is " + .@num + " .";
    			dispbottom "list of Monsters GID :";
    			freeloop(1);	// for if the list was too big.
    			for(.@i=0;.@i<getarraysize(.@array);.@i++) {
    				dispbottom (.@i + 1) + " " + .@array[.@i];
    				//unitskilluseid getcharid(3),"WL_JACKFROST",5,getcharid(3),-4;
    				unitattack  .@gid,.@array[.@i];
    			}
    			freeloop(0);
    			dispbottom "end";
    			end;
    		} else {
    			dispbottom "Currently for testing only.";
    			end;
    		}
    }

     

  3. The client's cash shop is for #CASHPOINTS and #KAFRAPOINTS only.
    I don't see the reason for making this unless you want some form of tradability for your proof of donation.
    Other options :
    1. make a script to automatically convert the CP to your proof of donation or put the proof of donation item to the cash shop, and setup a barter type shop for your proof of donation.
    2. Use the cash points, then put the proof of the donations in the cp shop for players to buy it if ever they want to trade it, then add a npc to convert the proof of donation to cp or make it usable item, and gives cp on use.
     

  4. //callfunc("RENAME_ME",501,50,30,502,5,20,503,10,30);
    //ITEM ID, AMOUNT, WEIGHT
    function	script	RENAME_ME	{
    	for(.@i = 0; .@i < getargcount(); .@i += 3){
    		.@id[.@i/3] = getarg(.@i);
    		.@amount[.@i/3] = getarg(.@i+1);
    		.@size += getarg(.@i+2);
    		for(.@j = 0; .@j < getarg(.@i+2); .@j++)
    			.@list[getarraysize(.@list)] = getarg(.@i);
    	}
    	.@item = .@list[rand(.@size)];
    	getitem .@item,.@amount[inarray(.@id,.@item)];
    	return;
    }

     

  5. payon,139,226,5	script	Potion Converter	749,{
    	for(.@i = 0; .@i < .size; .@i += 5)
    		.@menu$ += .trade[.@i+1] + " x " + getitemname(.trade[.@i]) + " for " + .trade[.@i+3] + " x "  + getitemname(.trade[.@i+2]) + ":";
    	.@s = (select(.@menu$) - 1) * 5;
    	.@max = countitem(.trade[.@s]) / .trade[.@s+1];
    	mes "Max Amount available for trade : " + .@max;
    	next;
    	input .@amount;
    	.@amount = min(.@amount,.@max);
    	if(.@amount > .@max || .@amount == 0){
    		mes "Amount cannot be 0 or greater than the max tradeable amount.";
    		end;
    	}
    	mes "You have selected " + .trade[.@s+1] + " x " + getitemname(.trade[.@s]) + " for " + .trade[.@s+3] + " x " + getitemname(.trade[.@s+2]) + "?";
    	mes "This has " + .trade[.@s+4] + "% success rate.";
    	mes "Amount : " + .@amount;
    	mes "Note: everything you trade will be character bound potion.";
    	next;
    	if(select("Cancel:Trade") == 1)
    		end;
    	.@total = countitem(.trade[.@s+1]) * .@amount;
    	if(countitem(.trade[.@s]) < .@total){
    		mes "You don't have enough item for trade.";
    		end;
    	}
    	delitem .trade[.@s],.trade[.@s+1] * .@amount;
    	for(.@i = 0; .@i < .@amount; .@i++){
    		if(.trade[.@s+4] < rand(1,100))
    			continue;
    		.@success++;
    	}
    	mes "Successfully converted amount : " + .@success;
    	getitem .trade[.@s+2],.@success * .trade[.@s+3];
    	end;
    	
    OnInit:
    	// < ITEM FOR TRADE >, < AMOUNT >, < ITEM TRADED >, < AMOUNT >, < SUCCESS RATE >..
    	setarray .trade,
    	11503,2,32018,1,100;
    	
    	.size = getarraysize(.trade);
    end;
    }

     

    • Love 1
  6. OnInit:
    	// 1 = item reward
    	// 2 = variable/cashpoints reward
    	// If you want to set item and variable/cashpoints rewards, do 1|2.
    	// If you only want 1, just choose between 1 or 2
    	$event_options = 1|2;
    	
    	setarray $event_item_reward,
    		501, 10,
    		502, 5;
    		
    
    	setarray $event_var$,"EVENTVARIABLE1","EVENTVARIABLE2";	
    	setarray $event_var_name$,"Custom Points 1","EVENT VARIABLE2";
    	setarray $event_var_gain,1,3;
    	
    	$event_item_arr = getarraysize($event_item_reward);
    
    
    		if ( $event_options&1 ) {
    		for ( .@j = 0; .@j < $event_item_arr; .@j += 2 )
    			getitem $event_item_reward[.@j], $event_item_reward[.@j+1];
    	}
    	if ( $event_options&2 ) {
    		for(.@i = 0; .@i < getarraysize($event_var$); .@i++){
    			.@v = getd("#" + $event_var$[.@i]) + $event_var_gain[.@i];
    			setd getd("#" + $event_var$[.@i]),.@v;
    			dispbottom "You gained "+$event_var_gain[.@i]+" "+$event_var_name$[.@i]+". You now have "+getd("#" + $event_var$[.@i])+" "+$event_var_name$[.@i]+".";
            	}
    		

     

    • Upvote 1
  7. Compendium


    Compendium - A levelable battle pass inspired majority of games out there. 

    Feature :
    Easy customizable settings.
    Three types of selectable daily quest.
    Daily quest requirements are randomized.
    Daily quest count resets everyday.
    Compendium resets on the first day of the month.
    Rewards are sent via mail.
    '@compendium' command to access the compendium

    Settings :

     

    Adding a reward on the compendium
    Rewards : "Level | Reward ID, Amount, Reward ID, Amount,... ==|
    Level order doesn't matter but 'duplicates' will bug out the script.
    
    setarray .compendium_reward$, 
    "1|501:10,502:20",
    "10|501:20,502:30",
    "5|501:100,502:500";
    
    
    Adding a monster/item/mvp to hunt or collect
    Just add the ID on the following line.
    
    setarray .mvp_list
    setarray .hunt_list
    setarray .gather_list
    
    
    Changing EXP given on the quest types.
    .gathering_exp = 50;
    .hunt_exp = 50;
    .mvp_hunt_exp = 100;


     


     

    • Upvote 1
    • Love 5
  8. Equipment Recycle NPC


    A recycle NPC that uses the shop interface.

    Changing the rewards

    .reward_id = 501;
    .reward_point$ = "#KAFRAPOINT";


    Adding a recyclable equipment.

    /*
    *=============================================================================|
    * .@r = Refine | .@b = Bonus                                                 =|
    * list_add("<Equip ID>,<Value>{,<Starting .@r for .@b>,.@b1:.@b2:.@b3:..."); =|
    *=============================================================================|	
    * Cotton_Shirt w/ +8 Starting .@r bonus                                      =|
    * .@r = 8 : 1 Bonus Item/Point                                               =|
    * .@r = 9 : 5 Bonus Item/Point                                               =|
    * .@r >= 10 : 7 Bonus Item/Point.                                            =|
    *=============================================================================|
    * list_add(2301,8,"1:5:7");                                                  =|
    ==============================================================================|
    */
    function	list_create	{
    	//= Remove samples and add here.
    	
    	list_add(2301,10,8,"1:5:7"); //Cotton_Shirt
    	list_add(1201,10,7,"1:2:3:4:5"); //Knife
    	list_add(2504,5); //Muffler_
    	
    	return;
    }

     


     

    • Upvote 1
    • Love 1
  9. -	script	invasion	-1,{
    	
    OnInit:
    	setarray .map$,"prontera","izlude";
    	function add_set;
    	function create_set;
    	create_set();
    end;
    
    OnMinute00:
    	function start_set;
    	start_set();
    end;
    
    OnMobDead:
    	if(!mobcount(.current_map$,strnpcinfo(0) + "::OnMobDead")){
    OnTimer900000:
    		function end_set;
    		end_set();
    	}
    end;
    	
    //= Add your new set here.
    function	create_set	{
    	//= add_set("Mob ID:Mob Amount{:Min amount:Max amount},....."); If min/max amount is added mob amount will be ignored. 
    	add_set("1001:50,1002:20:70:100");
    	add_set("1005:50:10:20,1001:20");
    }
    
    function	add_set	{
    	.set$[getarraysize(.set$)] = getarg(0);
    	return;
    }
    	
    function	start_set	{
    	.current_map$ = .map$[rand(getarraysize(.map$))];
    	killmonster .current_map$,strnpcinfo(0) + "::OnMobDead";
    	explode(.@T$,.set$[rand(getarraysize(.set$))],",");
    	for(.@i = 0; .@i < getarraysize(.@T$); .@i++){
    		explode(.@TT$,.@T$[.@i],":");
    		if(getarraysize(.@TT$) > 2){
    			if(atoi(.@TT$[3]) == 0)
    				.@amount = atoi(.@TT$[1]);
    			else
    				.@amount = rand(atoi(.@TT$[2]),atoi(.@TT$[3]));
    			
    		} else
    			.@amount = atoi(.@TT$[1]);
    		monster .current_map$,0,0,"--ja--",atoi(.@TT$[0]),.@amount,strnpcinfo(0) + "::OnMobDead";
    		deletearray .@TT$[0],getarraysize(.@TT$);
    	}
    	announce "Invasion : Invasion has started in " + .current_map$ + ".",bc_blue;
    	initnpctimer;
    	end;
    }
    
    function	end_set	{
    	announce "Invasion : All monster has been killed.",bc_blue;
    	killmonster .current_map$,strnpcinfo(0) + "::OnMobDead";
    	end;
    }
    
    }

     

×
×
  • Create New...