Jump to content

sotf

Members
  • Posts

    173
  • Joined

  • Last visited

Posts posted by sotf

  1. Hi! Good day! I tried manually adding your code, but I am getting this error:

     

    Spoiler

    CXX    battle.cpp
    battle.cpp: In function ‘void battle_calc_attack_gvg_bg(Damage*, block_list*, block_list*, uint16, uint16)’:
    battle.cpp:5060:4: error: ‘do_battle_events’ was not declared in this scope
        do_battle_events(src, target, wd->damage); // OnPcAttackEvent [Mastagoon]
        ^~~~~~~~~~~~~~~~
    battle.cpp:5060:4: note: suggested alternative: ‘mobskill_event’
        do_battle_events(src, target, wd->damage); // OnPcAttackEvent [Mastagoon]
        ^~~~~~~~~~~~~~~~
        mobskill_event
    battle.cpp:5068:4: error: ‘do_battle_events’ was not declared in this scope
        do_battle_events(src, target, wd->damage2); // OnPcAttackEvent [Mastagoon]
        ^~~~~~~~~~~~~~~~
    battle.cpp:5068:4: note: suggested alternative: ‘mobskill_event’
        do_battle_events(src, target, wd->damage2); // OnPcAttackEvent [Mastagoon]
        ^~~~~~~~~~~~~~~~
        mobskill_event
    battle.cpp:5080:4: error: ‘do_battle_events’ was not declared in this scope
        do_battle_events(src, target, wd->damage); // OnPcAttackEvent [Mastagoon]
        ^~~~~~~~~~~~~~~~
    battle.cpp:5080:4: note: suggested alternative: ‘mobskill_event’
        do_battle_events(src, target, wd->damage); // OnPcAttackEvent [Mastagoon]
        ^~~~~~~~~~~~~~~~
        mobskill_event
    battle.cpp: In function ‘Damage battle_calc_magic_attack(block_list*, block_list*, uint16, uint16, int)’:
    battle.cpp:6424:2: error: ‘do_battle_events’ was not declared in this scope
      do_battle_events(src, target, ad.damage);
      ^~~~~~~~~~~~~~~~
    battle.cpp:6424:2: note: suggested alternative: ‘mobskill_event’
      do_battle_events(src, target, ad.damage);
      ^~~~~~~~~~~~~~~~
      mobskill_event
    battle.cpp: In function ‘Damage battle_calc_misc_attack(block_list*, block_list*, uint16, uint16, int)’:
    battle.cpp:6822:2: error: ‘do_battle_events’ was not declared in this scope
      do_battle_events(src, target, md.damage);
      ^~~~~~~~~~~~~~~~
    battle.cpp:6822:2: note: suggested alternative: ‘mobskill_event’
      do_battle_events(src, target, md.damage);
      ^~~~~~~~~~~~~~~~
      mobskill_event
    make[1]: *** [Makefile:84: obj/battle.o] Error 1

     

  2. Add mo to after the part where you select an equip to enchant:

    if(getequiprefinerycnt(.@part) < 10) { goto refrestrict; }

    ...tapos gawin mo na lang yung label na 'refrestrict' para may pupuntahan yung goto, something like this:

    refrestrict:
    mes "I can't enchant gears with refine below 10";
    close;

    lagay mo na lang sa dulo ng script ng npc mo.

  3. Hi! I can't put points on my Star Emperor and Soul Reaper, not really sure what the problem might be. Here are some screenshots:
     

    Spoiler

    image.png.1b9a6903e3f21890965a3d18a6ffa8c1.pngimage.thumb.png.46763b9080e7f245fc11a210cbe7df56.png
    image.png.b6dca4b3bc5928097bb0e4b0905549bc.pngimage.png.3960f27991f5deab65fe7f213c418670.png

     

    Taekwon, Soul Linker, and Star Gladiator skill trees are working fine:

     

    Spoiler

    image.png.f688ef8ec5df3cd729212eced48393fb.png


    Did I miss something? What files do I need to edit to fix this? Thanks in advance!

  4. You have to make a new script for it, the script you pasted is a PVP Warper that just randomizes a set of map for a period of time.

    Maybe try this:

    prontera,100,100,3	script	PVP Warper	100,{
    
    mes "Choose a PVP Room:";
    switch(select("Random:Room 1:Room 2:Room 3")) {
    	case 1: set .pvproom$,.randroom[rand(0,2)]; goto OnPVPWarp; end;
    	case 2: set .pvproom$,"guild_vs1"; goto OnPVPWarp; end;
    	case 3: set .pvproom$,"guild_vs2"; goto OnPVPWarp; end;
    	case 4: set .pvproom$,"guild_vs3"; goto OnPVPWarp; end;
    }
    
    OnPVPWarp:
    close2;
    warp .pvproom$,0,0;
    announce strcharinfo(0)+" has entered PVP! at "+.pvproom$,0;
    end;
    
    OnInit:
    setarray .randroom$[0],guild_vs1,guild_vs2,guild_vs3;
    end;
    
    }

     

  5. Well it worked on my side so...yeah.

    
    -	script	testcg	-1,{
    OnInit:
    	bindatcmd "testcg","Monster Counting Game::OnStartEvent";
    	end;
    }
    
    
    prontera,155,181,5	script	Monster Counting Game	757,{
    	function xy_wall;
    	end;
    	
    	OnInit:
    		.max_round = 3;
    		.max_duration = 3;
    		.wall_mob_id = 1085;
    		setarray .xy_area,
    			151,169,
    			161,179;
    		setarray .monster,
    			1002,
    			1113,
    			1242,
    			1031;
    			
    		.monster_size = getarraysize( .monster );
    		.npc_name$ = strnpcinfo(0);
    		getmapxy( .map$,.npc_x,.npc_y,1 );
    		setmapflag .map$,mf_monster_noteleport;
    		end;
    	
    	OnMinute55:
    	announce "[Event] Monster Counting Event in New Prontera will begin in 5 minutes!",bc_all,0x66FFCC;
    	end;
    	
    	OnMinute56:
    	announce "[Event] Monster Counting Event in New Prontera will begin in 4 minutes!",bc_all,0x66FFCC;
    	end;
    	
    	OnMinute57:
    	announce "[Event] Monster Counting Event in New Prontera will begin in 3 minutes!",bc_all,0x66FFCC;
    	end;
    	
    	OnMinute58:
    	announce "[Event] Monster Counting Event in New Prontera will begin in 2 minutes!",bc_all,0x66FFCC;
    	end;
    	
    	OnMinute59:
    	announce "[Event] Monster Counting Event in New Prontera will begin in 1 minute!",bc_all,0x66FFCC;
    	setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_basilica,1;
    	setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_walkable,1;
    	end;
    	
    	OnMinute00:
    	OnStartEvent:
    		if ( !.status ) {
    			areawarp .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],.map$,.npc_x,.npc_y;
    			killmonster .map$,.npc_name$+"::OnDied";
    			killmonster .map$,.npc_name$+"::OnWallDied";
    			//setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_basilica,1;
    			//setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_walkable,1;
    			.status = 1;
    			
    			for( .@i = .xy_area[0]; .@i <= .xy_area[2]; .@i++ ){
    				xy_wall( .@i,.xy_area[1] );
    				xy_wall( .@i,.xy_area[3] );
    			}
    			for( .@i = .xy_area[1]; .@i <= .xy_area[3]; .@i++ ){
    				xy_wall( .xy_area[0],.@i,0 );
    				xy_wall( .xy_area[2],.@i );
    			}
    			
    			do{
    				.@round++;
    				npctalk "Round # "+.@round;
    				sleep 5000;
    				
    				.status = 2;
    				.@mob = .monster[ rand( .monster_size ) ];
    				.@amount = rand( 20,50 );
    				// add-on size influence ?
    				areamonster .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],"",.@mob,.@amount,.npc_name$+"::OnDied";
    			
    				deletepset 1;
    				defpattern 1,"([^:]+):.*\\s"+.@amount+".*","OnRight";
    				activatepset 1;
    				waitingroom "How many's there?",0;
    				npctalk "Tell me the correct amount of monster in there.";
    				debugmes " > "+.@amount+" "+getmonsterinfo( .@mob,MOB_NAME );
    				
    				sleep ( .max_duration * 60000 );
    				
    				killmonster .map$,.npc_name$+"::OnDied";
    				delwaitingroom;
    				deletepset 1;
    				.status = 1;
    				sleep 5000;
    				
    			}while( .@round < .max_round );
    			
    			npctalk "That's the Last, thank you for participating.";
    			emotion e_thx;
    			
    			killmonster .map$,.npc_name$+"::OnDied";
    			killmonster .map$,.npc_name$+"::OnWallDied";
    			setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_basilica,0;
    			setcell .map$,.xy_area[0],.xy_area[1],.xy_area[2],.xy_area[3],cell_walkable,1;
    			.status = 0;
    		}
    		end;
    		
    	OnDied: 
    	OnWallDied: 
    		end;
    
    	OnRight:
    		getmapxy( .@map$,.@x,.@y,0 );
    		if ( .status == 0 ) {
    			dispbottom "[Counting Game] Event isnt running.";
    		}
    		else if ( .status == 1 ) {
    			dispbottom "[Counting Game] Please wait for the round to start.";
    		}
    		else if ( distance( .npc_x,.npc_y,.@x,.@y ) > 14 ) {
    			dispbottom "[Counting Game] You're too far away.";
    		}
    		else {
    			npctalk "Bravo!! "+strcharinfo(0)+" is correct!!";
    			
    			// rewards
    			getitem 512,1;
    			getitem 512,2;
    			getitem 512,3;
    			
    			specialeffect2 EF_POTION_CON;
    			awake .npc_name$;
    		}
    		end;
    		
    	function	xy_wall	{
    		.@x = getarg(0); 
    		.@y = getarg(1);
    		monster .map$,.@x,.@y,"",.wall_mob_id,1,.npc_name$+"::OnWallDied";
    		setcell .map$,.@x,.@y,.@x,.@y,cell_walkable,0;
    		setcell .map$,.@x,.@y,.@x,.@y,cell_basilica,1;
    		return;
    	}
    
    }

     

    Test this. Type @testcg to force start the event.

  6. On ‎7‎/‎29‎/‎2017 at 7:19 PM, wut751 said:

    Thank you crazy, and I have question

    if in list is A,B,C,D,E,F,G,H and I want rate A,B = 1%    C,D,E = 10% and F,G,H 50%.

    how I can set the rate

    Try:

    function	script	specialbox {
    	setarray .i1[0],909,910; // Common Items
    	set .i1rand,rand(0,1); // Randomize Common Items; just change max amount if you add items
    	setarray .i2[0],911,912; // Rare Items
    	set .i2rand,rand(0,1); // Randomize Rare Items; just change max amount if you add items
    	setarray .i3[0],2199,1599; // Super Rare Items
    	set .i3rand,rand(0,1); //Randomize Super Rare Items; just change max amount if you add items
    	set .chance, rand(100);
    
    		// Super Rare Item 1%
    		if (.chance == 1){
    		getitem .i[.i3rand],1;
    		announce "["+strcharinfo(0)+"] won a ["+getitemname(.i[.i3rand])+"] from the Special Box.",0;
    		end;
    		} 
    
    		// Rare Item 10%
    		else if (.chance <= 2 && .chance >= 11){
    		getitem .i[.i2rand],1;
    		announce "["+strcharinfo(0)+"] won a ["+getitemname(.i[.i2rand])+"] from the Special Box.",0;
    		end;
    		} 
    
    		// Common Items
    		else {
    		getitem .i1[.i1rand],1;
    		end; }
    }

    Just add items in .i1, .i2 and .i3 arrays and make sure to change the variables that randomizes the items to the max number of item you included -1. (-1 since arrays start with 0).

  7. First, check the range of Account IDs of the players who participated during your beta. For example, 2000100 is the last account id created during your beta.

    prontera,100,100,3	script	Beta Reward	100,{
    
    if(getcharid(3) <= 2000100){
    	if(#cbtreward == 1) {
    		mes "You already got your reward!";
            close;
          	}
        //getitem 909,1;
    	getitembound 909,1,Bound_Account; // <-- should be bound if you don't want this to be abused.
    	mes "Here's your reward!";
    	set #cbtreward,1;
    	close; }
    mes "You're not a beta player, sorry!";
    close;
    }

     

     

  8. On ‎8‎/‎2‎/‎2017 at 6:27 PM, joecnls said:

    it stops loading at line 4, any help?

    Check this part, should be tabs instead of spaces.

    //=============Valkyrie Quest==============
    //===================== BTS =====================================================
    prontera.gat,154,198,4<tab>script<tab>Ronnel<tab>811,{
    if(bry_bry >= 1) goto L_taposme;
    if(hen_hen >= 1) goto L_taposna;

     

×
×
  • Create New...