Jump to content

MikZ

Members
  • Content Count

    461
  • Joined

  • Last visited

Posts posted by MikZ


  1. On 3/11/2024 at 10:25 AM, Fou-lu said:

     

    I haven't tested my change, if it generates an error and doesn't work correctly, I believe the intention was clear in the script for you to continue with the change, if you still can't get back to me here with the error so I can try to correct it.

    
    // Present a list of available bonuses.
    	mes(.@name$);
    	mes("Which of the following item bonuses would you like to add to this item?");
    	next();
    	//Check Option Repeat
    	for (.@i = 1; .@i <= MAX_ITEM_OPTIONS; ++.@i) {
    		.@opt = getequipoption(.@equip_index, .@i, IT_OPT_INDEX);
    		if (.@opt > 0)
    			.option_repeat$[getarraysize(.option_repeat$)] = .options$[.@opt - 1];
    	}	
    	// Build the Options!
    	.@menu$ = "";
    	for (.@i = 0; .@i < getarraysize(.options$); ++.@i) {
    		.@jump = 0;
    		for (.@i = 0; .@i < getarraysize(.option_repeat$); ++.@i) {
    			if (.option_repeat$[.@i] == .options$[.@i]) {
    				.@jump++;
    				break;
    			}
    		}
    		if (.@jump == 0)
    			.@menu$ += (.@i + 1) + ") " + .options$[.@i] + ":";
    	}
    	do {
    		// Select the options!
    		.@option_variable = select(.@menu$);
    		next();
    		mes(.@name$);
    		mesf("You chose ^009900%s^000000!", .options$[.@option_variable - 1]);
    		mes("Are you sure?");
    		next();
    	} while (select("Fo Shizzle.", "I'ma re-evaluate, brah.") == 2);

     

     


    Hello, I didn't get nay error. but end up with this. No choices.

    image.png.bc621bc311daccc38f4bcb4ece6666a2.png


  2. Good day! Requesting assistant or sample script please.
    Re item option npc found on this link



    How can to check the slot to make sure that the options will not be the same check slot 1 if STR , then Slot 2~5 cannot use STR.
    Been checking this part

     

    Please help me. thank you!

    // Build the menu of current options.
    		for (.@i = 1; .@i <= MAX_ITEM_OPTIONS; ++.@i) {
    			// call getequipoption(<equip_index>, <type>, <slot>);
    			// if the return is <0, it's a script error.
    			// if the return is 0, the slot is empty.
    			// if the return is >0, the slot is unavailable.
    			.@opt = getequipoption(.@equip_index, .@i, IT_OPT_INDEX);
    			if (.@opt > 0)
    				.@menu$ += (.@i) + ") " + .options$[.@opt - 1] + ":";
    			else
    				.@menu$ += (.@i) + ") ^999999Empty^000000" + ":";
    		}
    		// Option Slot is the actual option slot 0-MAX_ITEM_OPTIONS (@see mmo.h)
    		.@option_slot = select(.@menu$);
    		
    		// Check for used slot and request user action if found.
    		if (getequipoption(.@equip_index, .@option_slot, IT_OPT_INDEX) > 0) {
    			mes(.@name$);
    			mes("This slot is already used up!");
    			if (select("^990000Override the slot.^000000", "Choose again.") == 2)
    				.@used = true;
    			next();
    		}
    	} while (.@used); // loop if the slot is not to be overridden

     

     

     


  3. Good day!

    Requesting help please.
    When using priest heal skill, lex aeterna was not buff to myself instead to the enemy. is this normal? 

    {
    	Id: 5225
    	AegisName: "Marcher_Hat"
    	Name: "Parade Hat"
    	Type: "IT_ARMOR"
    	Buy: 20
    	Weight: 200
    	Def: 2
    	Slots: 1
    	Loc: "EQP_HEAD_TOP"
    	EquipLv: 10
    	ViewSprite: 269
    	Script: <"
    		bonus bMdef,2;
    		bonus bStr,2;
    		bonus4 bAutoSpellWhenHit,AL_ANGELUS,5,30,0;
    		bonus4 bAutoSpellWhenHit,HP_ASSUMPTIO,1,1,0;
    		bonus2 bResEff,Eff_Stun,1000;
    		if(BaseClass==Job_Acolyte) bonus4 bAutoSpellOnSkill,AL_HEAL,PR_LEXAETERNA,1,1000;
    	">
    },

     


  4. Hello!

    Good day.. May I request a script that give random status. I mean script below gives you choice which option do you want. what I wanted is that on GM can set which option. 
    like ATK, MATK, HIT, FLEE, CRIT (min-max 1~5) and npc will not ask player which option they want. Npc will just randomly choose the option.

    I tried googling but cannot find any. thank you for helping me.!

     


  5. On 9/17/2020 at 4:46 AM, AnnieRuru said:

    trying to integrate this script with HULD, but I couldn't get it to work, so drop the idea

     

    update hercules version to 1.3

    script

    plugin

     

    I'll assume rathena still works in version 1.2, as I just tested it still working fine

    and for all those members saying how to patch

     

     

    hi @AnnieRuru I recently updated to Release v2022.04.07 however, the plugin now seems not working. guild owner can attack their own EMPERIUM. Hoping to get update on plugins too. thank you!


  6. Good day!
    May I request please to make this compatible to hercules?

    Error on this script
        .red = bg_create( "bat_c03",53,128, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead" );
        .blue = bg_create( "bat_c03",146,56, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead" );
     

    // https://rathena.org/board/topic/114033-battleground-multiplayer-whith-evilclone/
    
    function	script	F_ShuffleNumbers	{
    	deletearray getarg(2);
    	.@static = getarg(0);
    	.@range = getarg(1) +1 - .@static;
    	.@count = getarg(3, .@range);
    	if (.@range <= 0 || .@count <= 0)
    		return 0;
    	if (.@count > .@range)
    		.@count = .@range;
    	for (.@i = 0; .@i < .@range; ++.@i)
    		.@temparray[.@i] = .@i;
    	for (.@i = 0; .@i < .@count; ++.@i) {
    		.@rand = rand(.@range);
    		set getelementofarray( getarg(2), .@i ), .@temparray[.@rand] + .@static;
    		.@temparray[.@rand] = .@temparray[--.@range];
    	}
    	return .@count;
    }
    
    prontera,155,185,5	script	bg_pvp_clone	1_F_MARIA,{
    	.minplayer2start = 1; // 1vs1
    	mes "bg_pvp_clone";
    	if ( .start == true ) {
    		mes "bg_pvp_clone is on-going";
    		close;
    	}
    	while ( .aid[.@i] != getcharid(3) && .@i < .size ) ++.@i;
    	if ( .@i < .size ) {
    		mes "You already join the queue.";
    		close;
    	}
    	select "join";
    	mes "you have to stick to this map";
    	close2;
    	.aid[ .size++ ] = getcharid(3);
    	for ( .@i = 0; .@i < .size; ++.@i ) {
    		if ( !isloggedin( .aid[.@i] ) ) {
    			deletearray .aid[.@i], 1;
    			--.@i;
    			--.size;
    		}
    		else {
    			attachrid .aid[.@i];
    			if ( strcharinfo(3) != strnpcinfo(4) ) {
    				deletearray .aid[.@i], 1;
    				--.@i;
    				--.size;
    			}
    		}
    	}
    	detachrid;
    	if ( .size < .minplayer2start *2 ) {
    		announce .size +" players join", bc_npc | bc_area;
    		end;
    	}
    	.start = true;
    	.red = bg_create( "bat_c03",53,128, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead" );
    	.blue = bg_create( "bat_c03",146,56, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead" );
    	callfunc "F_ShuffleNumbers", 0, .size -1, .@r;
    	for ( .@i = 0; .@i < .size; ++.@i ) {
    		attachrid .aid[ .@r[.@i] ];
    		bg_join ( .@i % 2 )? .red : .blue;
    	}
    	detachrid;
    	bg_warp .red, "bat_c03", 53,128;
    	bg_warp .blue, "bat_c03", 146,56;
    	for ( .@i = 0; .@i < 10; ++.@i ) // spawn 10 of them
    		callsub L_spawn, .red, getcharid(0, rid2name( .aid[ rand(.size) ] ) ), "::OnRedCloneKill";
    	for ( .@i = 0; .@i < 10; ++.@i )
    		callsub L_spawn, .blue, getcharid(0, rid2name( .aid[ rand(.size) ] ) ), "::OnBlueCloneKill";
    	deletearray .aid;
    	.size = 0;
    	sleep 30000; // Match Duration
    	if ( .winside == .red || .redscore > .bluescore ) {
    		mapannounce "bat_c03", "- Red side Won the match !", bc_map;
    		callsub L_reward, .red;
    	}
    	else if ( .winside == .blue || .bluescore > .redscore ) {
    		mapannounce "bat_c03", "- Blue side Won the match !", bc_map;
    		callsub L_reward, .blue;
    	}
    	else
    		mapannounce "bat_c03", "Battle end as a draw", bc_map;
    	bg_destroy .red;
    	bg_destroy .blue;
    	mapwarp "bat_c03", "prontera",150,185;
    	.redscore = .bluescore = .start = false;
    	bg_updatescore "bat_c03", 0, 0;
    	end;
    L_reward:
    	bg_get_data getarg(0), 1;
    	for ( .@i = 0; .@i < $@arenamemberscount; ++.@i )
    		getitem 501,1, $@arenamembers[.@i];
    	return;
    OnRedCloneKill: callsub L_CloneKill, .red, .blue, .bluescore, "::OnRedCloneKill";
    OnBlueCloneKill: callsub L_CloneKill, .blue, .red, .redscore, "::OnBlueCloneKill";
    L_CloneKill:
    	callsub L_spawn, getarg(0), getcharid(0), getarg(3);
    	set getarg(2), getarg(2) +1; // killing clones add 1 point
    	if ( .redscore < 100 && .bluescore < 100 )
    		bg_updatescore "bat_c03", .redscore, .bluescore;
    	if ( getarg(2) == 100 ) {
    		.winside = getarg(1);
    		awake strnpcinfo(0);
    	}
    	end;
    OnRedQuit: callsub L_Quit, .red, .blue, "Red";
    OnBlueQuit: callsub L_Quit, .blue, .red, "Blue";
    L_Quit:
    	if ( bg_get_data( getarg(0), 0 ) ) end;
    	mapannounce "bat_c03", "All "+ getarg(2) +" team members has Quit!", bc_map;
    	.winside = getarg(1);
    	awake strnpcinfo(0);
    	end;
    OnRedDead: callsub L_Dead, .red, .blue, .bluescore;
    OnBlueDead: callsub L_Dead, .blue, .red, .redscore;
    L_Dead:
    	set getarg(2), getarg(2) +3; // killing players add 3 points
    	if ( .redscore < 100 && .bluescore < 100 )
    		bg_updatescore "bat_c03", .redscore, .bluescore;
    	if ( getarg(2) == 100 ) {
    		.winside = getarg(1);
    		awake strnpcinfo(0);
    	}
    	sleep2 1250;
    	percentheal 100,100;
    	end;
    L_spawn:
    	.@mobid = bg_monster( getarg(0), "bat_c03", 0,0, "--ja--", callsub( L_mobid, readparam( BaseJob, getarg(1) ) ), strnpcinfo(0) + getarg(2) );
    	setunitdata .@mobid, UMOB_LEVEL, readparam( BaseLevel, getarg(1) );
    	setunitdata .@mobid, UMOB_MAXHP, readparam( MaxHp, getarg(1) );
    	setunitdata .@mobid, UMOB_HP, readparam( Hp, getarg(1) );
    	setunitdata .@mobid, UMOB_STR, readparam( bStr, getarg(1) );
    	setunitdata .@mobid, UMOB_AGI, readparam( bAgi, getarg(1) );
    	setunitdata .@mobid, UMOB_VIT, readparam( bVit, getarg(1) );
    	setunitdata .@mobid, UMOB_INT, readparam( bInt, getarg(1) );
    	setunitdata .@mobid, UMOB_DEX, readparam( bDex, getarg(1) );
    	setunitdata .@mobid, UMOB_LUK, readparam( bLuk, getarg(1) );
    	setunitdata .@mobid, UMOB_CLASS, readparam( Class, getarg(1) );
    	setunitdata .@mobid, UMOB_SEX, readparam( Sex, getarg(1) );
    	setunitdata .@mobid, UMOB_HAIRSTYLE, getlook( LOOK_HAIR, getarg(1) );
    	setunitdata .@mobid, UMOB_HAIRCOLOR, getlook( LOOK_HAIR_COLOR, getarg(1) );
    	return;
    L_mobid:
    	switch( getarg(0) ) {
    	case Job_Knight: return 1634;
    	case Job_Priest: return 1637;
    	case Job_Wizard: return 1639;
    	case Job_Blacksmith: return 1636;
    	case Job_Hunter: return 1638;
    	case Job_Assassin: return 1635;
    	case Job_Crusader: return 2221;
    	case Job_Monk: return 2224;
    	case Job_Sage: return 2223;
    	case Job_Rogue: return 2225;
    	case Job_Alchemist: return 2222;
    	case Job_Bard: return 2226;
    	case Job_Dancer: return 2227;
    	default: return 1002; // if not 3rd job then summon a poring muahahahaha .... nah, I'm just lazy
    	}
    }
    
    bat_c03	mapflag	battleground	2
    bat_c03	mapflag	nosave	SavePoint
    bat_c03	mapflag	nowarp
    bat_c03	mapflag	nowarpto
    bat_c03	mapflag	noteleport
    bat_c03	mapflag	nomemo
    bat_c03	mapflag	nopenalty
    bat_c03	mapflag	nobranch
    bat_c03	mapflag	noicewall
    bat_c03	mapflag	nomobloot

     


  7. On 4/11/2022 at 4:09 AM, 4144 said:

    v2021.02.08 is two months old. if you have issue better try latest hercules version.

    about client type see link what i gave. here explained how build hercules for selected client. This is i selected client what you really using.

     

    thank you! 


  8. On 4/9/2022 at 11:59 PM, 4144 said:

    i just checked on latest hercules on 2017-06-14bRagexeRE. In trade add 100 zeny, and it works fine.

    your error mean you using very old hercules or using wrong packet version or client type.

    another issue can be if you using any bad plugin with modified trades.

     

    you can look here how build hercules in correct way for your client version: http://nemo.herc.ws/clients/2017-06-14bRagexeRE/#build-hercules

     


    Hi I recently updated my trunk from [v2021.02.08] `February 08 2021` all are okay until I update it. does that mean that Feb 2021 files are too old? what do you mean of client type? thank you!


  9. 1 hour ago, chojuro said:

    i have this error when i change to that

     

    image.png.cc3edfc04977da428d72fc1255efd2ef.png

     

    .@id = getelementofarray(getvariableofnpc(.npcgid, "MVPLadder"),  getnpcid());

    try to input it manually

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.