Jump to content

Hadeszeus

Members
  • Content Count

    651
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Hadeszeus


  1. First of all I don't know if this post make sense since I really dunno how it works. I just notice it on my live server.

     

    I'm using 2014 client with these 2 new jobs. The problem is the players who uses SMALL CLIENT files + 2012 RO Files. Their client CRASH since it doesn't support new jobs.
    Can someone guide me what files should I need to add in my GRF to solve the issue of crashing with old RO? Or maybe you want to share yours.
     

     


  2. Hi Guys,

     

    I have this script that gives an item to the Killer of the MVPS. The rewards is separate from PARTY KILLER and A SOLO KILLER.

     

    Im trying to add a condition that check if the party members are in the same map of the KILLER when the MVP was killed.
    If not in the same map of KILLER. No reward will be given.

    The problem is I can't make it work and I need your help.

    I added this before it gives the item to the party.
     

     if ( strcharinfo(3) != .@mapc$ ) end;

     

    -	script	MVPREWARD	-1,{OnNPCKillEvent:    if ( !getmonsterinfo( killedrid, MOB_MVPEXP ) ) end;    if ( getcharid(1) ) {	.@mapc$ = strcharinfo(3);        getpartymember getcharid(1), 1;        getpartymember getcharid(1), 2;        for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {            if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { // what happens if someone in the party member is offline =/                .@partymemberaid[.@c] = $@partymemberaid[.@i];                .@c++;            }        }        if ( strcharinfo(3) != .@mapc$ ) end;	getitem 501, 5, .@partymemberaid[ rand( .@c ) ];           announce "Party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;     }    else {	getitem 501, 1; //Get Item if KILLER is not in a party.        announce "Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), 0;     }   end;}

  3. That does still work inside of a script, but counts mobs instead of giving items.

     

    If you want all of your party members to get an item, you can try changing all

    count++;

    on the script to:

    getitem <item ID>, amount;

     

    And you're good to go.

     

    Just notify me if that wasn't what you wanted.

     

    Hi Jabote again thank you! 

     

    But I still have one problem. How can I check if the the KILLER OF THE MOBS CURRENT MAP is equal to PARTY MEMEBERS LOCATION?

     

    FOR EXAMPLE

     

    IF THE KILLER OF THE MOB IS IN ABBEY02 and other PARTY MEMBERS IS NOT EQUAL TO KILLER OF THE MOBS MAP.

    THEY DONT GET THE ITEM. 

     

    MEANING THEY NEED TO BE IN THE SAME MAP OF THE KILLERID TO GET THE ITEM.


  4.  

    Yes, you can be creative ending it.

     

    According to source:

    /*========================================== * @unmute [Valaris] *------------------------------------------*/ACMD(unmute) {	struct map_session_data *pl_sd = NULL;		if (!message || !*message) {		clif->message(fd, msg_txt(1234)); // Please enter a player name (usage: @unmute <char name>).		return false;	}		if ( (pl_sd = map->nick2sd((char *)message)) == NULL )	{		clif->message(fd, msg_txt(3)); // Character not found.		return false;	}		if(!pl_sd->sc.data[SC_NOCHAT]) {		clif->message(sd->fd,msg_txt(1235)); // Player is not muted.		return false;	}		pl_sd->status.manner = 0;	status_change_end(&pl_sd->bl, SC_NOCHAT, INVALID_TIMER);	clif->message(sd->fd,msg_txt(1236)); // Player unmuted.		return true;}

     

    Since I suppose you already know your character is logged in and muted you can skip all the checks and go directly to what you want. Try this instead?

    OnPCLogoutEvent:	if (strcharinfo(3) == "guild_vs1" ) {		Manner = 0;		// sc_end SC_NOCHAT; // Edit, not needed as of the documentation says?	}	end;

     

    EDIT: You've also got some nice advice on the scripting documentation regarding that on our scripting documentation :P:

     

     

    'sc_end' will remove a specified status effect. If SC_All is used (-1), it
    will do a complete removal of all statuses (although permanent ones will
    re-apply).
     
    You can see the full list of status effects caused by skills in
    'src/map/status.h' - they are currently not fully documented, but most of
    that should be rather obvious.
    Note: to use SC_NOCHAT you should alter Manner
    Manner = -5; // Will mute a user for 5 minutes
    Manner = 0; // Will unmute a user
    Manner = 5; // Will unmute a user and prevent the next use of 'Manner'
     
    I've just commented out the SC_NOCHAT line. If that doesn't work just edit the script and try with that uncommented again ;)
     
    P.S.: You sure you didn't get any warning or so from the console when trying to atcommand? O.o

     

    OMG Thank you for that very detailed explanation and fix. Thank you so much Jabote!


  5. Yup ayon dito sa Wiki[Castle's Treasure Box] dapat every 12AM ang respawn ng Treasurebox. 

     

    Based sa script ng Hercules agit_main.

     

    //= - Treasure Chest spawning.//=   Chests will NOT be saved anymore in the event of crashes.//=   Treasures will NOT spawn on a location that already has//=   treasure chest spawned.

     

    sure naman na naka set ito properly

    Treasure Room Spawn Template

     

    tignan mo po kung tama din yung ginawa ng mga player mo :)

     

    Ibigsabhin ba Sir pag nag restart or nag @reloadscript ako ng server hindi na sya mag sspawn or mawawala na  for that day?


  6. Bakit ganun minsan may chest pero madalas walang treasure box na nag sspawn sa AGIT? :(

    Ano ba ang nakaka apekto sa pag labas ng mga box? need ba investment or what?

     

    Pag hindi ba napuntahan ng isaktong 12AM mawawala na ung box?


  7. I want to reduce the chance of Masq. Skill. Can someone guide me how to?

     

     

    case SC_ENERVATION:		case SC_GROOMY:		case SC_IGNORANCE:		case SC_LAZINESS:		case SC_UNLUCKY:		case SC_WEAKNESS:			if( !(tsc && tsc->data[type]) ) {				int joblvbonus = 0;				int rate = 0;				if (is_boss(bl)) break;				joblvbonus = ( sd ? sd->status.job_level : 50 );				//First we set the success chance based on the caster's build which increases the chance.				rate = 10 * skill_lv + rnd_value( sstatus->dex / 12, sstatus->dex / 4 ) + joblvbonus + status->get_lv(src) / 10;				// We then reduce the success chance based on the target's build.				rate -= rnd_value( tstatus->agi / 6, tstatus->agi / 3 ) - tstatus->luk / 10 - ( dstsd ? (dstsd->max_weight / 10 - dstsd->weight / 10 ) / 100 : 0 ) - status->get_lv(bl) / 10;				//Finally we set the minimum success chance cap based on the caster's skill level and DEX.				rate = cap_value( rate, skill_lv + sstatus->dex / 20, 100);				clif->skill_nodamage(src,bl,skill_id,0,sc_start(src,bl,type,rate,skill_lv,skill->get_time(skill_id,skill_lv)));				if ( tsc && tsc->data[SC__IGNORANCE] && skill_id == SC_IGNORANCE) {					//If the target was successfully inflected with the Ignorance status, drain some of the targets SP.					int sp = 100 * skill_lv;					if( dstmd ) sp = dstmd->level * 2;					if( status_zap(bl,0,sp) )						status->heal(src,0,sp/2,3);//What does flag 3 do? [Rytech]				}				if ( tsc && tsc->data[SC__UNLUCKY] && skill_id == SC_UNLUCKY) {					//If the target was successfully inflected with the Unlucky status, give 1 of 3 random status's.					switch(rnd()%3) {//Targets in the Unlucky status will be affected by one of the 3 random status's reguardless of resistance.						case 0:							status->change_start(src,bl,SC_POISON,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),10);							break;						case 1:							status->change_start(src,bl,SC_SILENCE,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),10);							break;						case 2:							status->change_start(src,bl,SC_BLIND,10000,skill_lv,0,0,0,skill->get_time(skill_id,skill_lv),10);						}				}			} else if( sd )				clif->skill_fail(sd, skill_id, USESKILL_FAIL_LEVEL, 0);			break;

     


  8. example...

     

    Archer                VS                 Neutral Monster

    Arrow                    --------->      100% damage

    Fire Arrow             --------->      100% damage

    Crystal Arrow        --------->      100% damage

    Arrow of Wind       --------->      100% damage

    Stone Arrow          --------->      100% damage

    Poison Arrow        --------->       100% damage

    Silver Arrow          --------->       100% damage

    Immaterial Arrow   --------->       70% damage

     

     

    Archer   VS Ghost Monster(lv1)

    Arrow   --------->       70% damage

    Fire Arrow --------->   100% damage

    Crystal Arrow   --------->   100% damage

    Arrow of Wind --------->   100% damage

    Stone Arrow   --------->   100% damage

    Poison Arrow   ---------> 100% damage

    Silver Arrow   ---------> 100% damage

    Immaterial Arrow ---------> 125% damage

     

    for more reference : http://ro.doddlercon.com/wiki/index.php?title=Renewal_Changes#Element_Table

     

    :meow:

    Idol Malu salamat po :)


  9. case PA_SACRIFICE:				wd.damage = sstatus->max_hp* 8/100;				wd.damage2 = 0;#ifdef RENEWAL				wd.damage = battle->calc_elefix(src, target, skill_id, skill_lv, wd.damage, nk, n_ele, s_ele, s_ele_, false, wd.flag); // temporary [malufett]#endif				break;

     

    Above is the formula of SACRIFICE skill. My question is why SACRI damage doesn't affected by Ghostring card and Deviling Card? Should have a reduction when wearing GR and DEV.


  10. -	script	custom_drop	-1,{OnNPCKillEvent:	if ( !getcharid(1) ) {		if ( checkidle() > 10 ) // 10 seconds			end;		if ( rand(4000) < 25 ) // .@rand_gc_drop ... 25/4000 = 1/160			getitem 512,1;		if ( rand(2000) < 5 ) // .@rand_sc_drop .... 5/2000 = 1/400			getitem 513,1;		if ( rand(1000) < 1 ) // .@rand_gc_drop .... 1/1000			getitem 511,1;	}	else {		.@map$ = strcharinfo(3); // added a map check		getpartymember getcharid(1), 1;		getpartymember getcharid(1), 2;		for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {			if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {				attachrid $@partymemberaid[.@i];				if ( strcharinfo(3) != .@map$ || checkidle() > 10 )					continue;				if ( rand(4000) < 25 ) // .@rand_gc_drop ... 25/4000 = 1/160					getitem 512,1;				if ( rand(2000) < 5 ) // .@rand_sc_drop .... 5/2000 = 1/400					getitem 513,1;				if ( rand(1000) < 1 ) // .@rand_gc_drop .... 1/1000					getitem 511,1;			}		}	}	end;}

    I have a quick question about this script. 

     

    If I'm not mistaken this line  strcharinfo(3) != .@map$

    checks if all members of the party are in the same map?

     

    But it doesn't work like that. Can I request a line of code that checks if the party members are not in the same map they will not get anything from the mobs.


  11. simple lang sagot diyan kasi neutral vs all element except ghost...ay 100% modifier ibig sabihin walang pagbabago always 100% ang tira mo di hihina at di lalakas

     

    :meow:

     

    Sir pwede paki linaw or kung sino pwede mag explain ng mas clear.

     

    Ibig sabihin ba pag normal attack ng archer kahit anong element ng arrow ilgay wlang pag babago sa damage vs all elements? 

     

    Except ghost??.. Meaning po kahit anong PALIT nya ng arrow property basta neutral vs GHOST hindi tatama?

     

    PERO pag SKILL GINAMIT WITH ARROW PROPERTY vs GHOST tatama ba?

     

    Kasi kahit anong arrow ayaw tumama sa ghost eh.. 

     

    Paki explain.. thanks!


  12. I have implemented a rentitem feature for new players to try out certain cards. My problem is, If they compound the Rental Card to an equipment, the card becomes permanent to them. Is there anyway to edit the rentitem script command to make rented cards stay rented and not become permanent. and also if the rental card is compounded in a equipment when it expires is it possible to delete the rental card while compunded?

     

     

     

    IS THIS PROBLEM NORMAL AND THERE'S NO QUICK FIX RIGHT NOW? PLEASE CONFIRM.

     

     

     

     


  13. this script doesn't support multiple npc nor duplicate npc

    nvm, I can write this one too

     

    http://upaste.me/a40210640b9cc4c5d

     

    note that there are 2 npcs inside, so remember remove 1 of them

    so you cannot duplicate it, but have to make multiple copies of it

    because the npc variable can overwrite each other if using npc duplicate

     

    Hi I just want to ask if this script really doesnt support multiple rewards?


  14. OnNPCKillEvent:	if ( killedrid == 1002 ) {		if ( !getcharid(1) ) { // if no party			count++;		}		else {			getmapxy .@map1$, .@x1, .@y1, 0; // killer position			getpartymember getcharid(1), 1;			getpartymember getcharid(1), 2;			for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {				if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) {					attachrid $@partymemberaid[.@i];					getmapxy .@map2$, .@x2, .@y2, 0;					if ( .@map1$ == .@map2$ && distance(.@x1,.@y1,.@x2,.@y2) <= 30 ) // same map and the distance is within 30 cell range						count++;				}			}		}	}	end;

    This script was originally written by Annieruru.

     

    I wan't to make a script that OnNPCKillEvent the party will get an item shared to the party who's distance to the killer is within 30 cells.

     

    How can I do this?

×
×
  • Create New...

Important Information

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