Jump to content

utofaery

Members
  • Content Count

    101
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by utofaery


  1. Spoiler
    
    /* db\castle_db.txt
    99,guild_vs2,guild_vs2 Test Castle,test flag,1
    */
    
    
    guild_vs2,52,52,4	script	testflag	GUILD_FLAG,{
    	dispbottom "=========================";
    	.@gid = getcastledata("guild_vs2", 1); //CD_GUILD_ID == rathena ,  1 == hercules
    	dispbottom "owner of the castle : "+( ( .@gid )? "["+ getguildname(.@gid) +"]" : "<none>" );
    	dispbottom "agit check : "+( ( agitcheck() )?"on":"off" );
    	dispbottom "gvg_castle mapflag : "+( ( getmapflag( strcharinfo(PC_MAP), mf_gvg_castle )?"on":"off" ) );
    	dispbottom "=========================";
    	end;
    
    OnInit:
    	if ( agitcheck() == true )
    //	if ( agitcheck() == false && !getcastledata("guild_vs2", 1) || agitcheck() == true )
    		donpcevent strnpcinfo(0)+"::OnAgitStart";
    	setmapflag "guild_vs2", mf_gvg_castle;
    	flagemblem getcastledata("guild_vs2", 1);
    
    		setarray .map_woe0$, // yours woe map
    			"aldeg_cas01", "aldeg_cas02", "aldeg_cas03", "aldeg_cas04", "aldeg_cas05", 
    			"gefg_cas01", "gefg_cas02", "gefg_cas03", "gefg_cas04", "gefg_cas05", 
    			"payg_cas01", "payg_cas02", "payg_cas03", "payg_cas04", "payg_cas05", 
    			"prtg_cas01", "prtg_cas02", "prtg_cas03", "prtg_cas04", "prtg_cas05", 
    			"arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05",
    			"schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05",
    		"guild_vs2";
    		.size_map = getarraysize( .map_woe0$ );
    	setarray .mob,
    
    
    //		1646,3, // Lord Knight Seyren
    //		1647,3, // Assassin Cross Eremes
    //		1648,3, // Whitesmith Harword
    //		1649,3, // High Priest Magaleta
    //		1650,3, // Sniper Shecil
    //		1651,3, // High Wizard Katrinn
    
    //		2235,3, // Paladin Randel
    //		2236,3, // Creator Flamel
    //		2237,3, // Professor Celia
    //		2238,3, // Champion Chen
    //		2239,3, // Stalker Gertie
    //		2240,3, // Clown Alphoccio
    //		2241,3; // Gypsy Trentini
    
    
    
    		1031, 3, //Poporing
    		1062, 3, //Santa Poring
    		1090, 3, //Mastering
    //		1096, 3, //Angeling
    		1113, 3, //Drops
    //		1120, 3, //Ghostring
    		1242, 3, //Marin
    		1388, 3, //Arc Angeling
    //		1582, 3, //Deviling
    		1613, 3, //Metaling
    		1784, 3, //Stapo
    		2093, 3, //Botaring
    		1002, 3; //Poring
    
    	.mobsize = getarraysize(.mob);
    
    	end;
    OnEmpBreak:
    	announce "The Emperium has fallen", bc_map|bc_woe;
    	killmonster strnpcinfo(4), strnpcinfo(0)+"::OnGuardianDead";
    	setcastledata "guild_vs2", 1, getcharid(2);
    	donpcevent "::OnRecvCastle123";
    	maprespawnguildid "guild_vs2", getcharid(2), 2;
    	sleep 7000;
    	if ( agitcheck() == false ) end;
    
    OnAgitStart:
    
    	.@mobid = monster("guild_vs2",49,49,"EMPERIUM",1288,1,strnpcinfo(NPC_NAME)+"::OnEmpBreak");
    	setunitdata .@mobid, UDT_HP, 5;
    	setunitdata .@mobid, UDT_MAXHP, 5;
    
    	for( .@x = 0; .@x < getarraysize( .map_woe0$ ); .@x++ ) {
    		if ( getcastledata(.map_woe0$[.@x], 1) ) {
    			for ( .@i = 0; .@i < .mobsize; .@i += 2 ) {
    				guardian .map_woe0$[.@x], 0, 0, "--ja--", .mob[.@i], strnpcinfo(0)+"::OnGuardianDead";
    			}
    		} else {
    			for ( .@i = 0; .@i < .mobsize; .@i += 2 ) 
    				monster .map_woe0$[.@x], 0,0, "--ja--", .mob[.@i], .mob[.@i +1], strnpcinfo(0)+"::OnGuardianDead";
    		}
    	}
    
    	end;
    OnAgitEnd:
    	killmonster strnpcinfo(4), strnpcinfo(0)+"::OnEmpBreak";
    	killmonster strnpcinfo(4), strnpcinfo(0)+"::OnGuardianDead";
    
    	for( .@i = 0; .@i < .size_map; .@i++ ) {
    		sleep2 1;
    		killmonsterall .map_woe0$[.@i];
    	}
    
    	end;
    OnGuardianDead:
    	if (getmapflag(strcharinfo(PC_MAP), mf_gvg) == true) {
    		if ( getcastledata( strcharinfo(PC_MAP), 1 ) ) {
    			guardian strcharinfo(PC_MAP), 0,0,"--ja--", killedrid, strnpcinfo(0)+"::OnGuardianDead";
    		} else {
    			monster strcharinfo(PC_MAP), 0,0, "--ja--", killedrid, 1, strnpcinfo(0)+"::OnGuardianDead";
    		}
    	}
    	end;
    
    OnAgitInit:
    	requestguildinfo getcastledata("guild_vs2", 1);
    OnRecvCastle123:
    	flagemblem getcastledata("guild_vs2", 1);
    	end;
    OnGuildBreak:
    	setcastledata "guild_vs2", 1, 0;
    	donpcevent "::OnRecvCastle123";
    	end;
    }

     

    As we know that Thursday is emperium war day...

    on server start map server spiting multiple error of  these few lines may be 30 or more time.

    [Error]: script_rid2sd: fatal error ! player not attached!
    [Debug]: Function: strcharinfo (1 parameter):
    [Debug]: Data: constant name='PC_MAP' value=3
    [Debug]: Source (NPC): testflag at guild_vs2 (52,52)

    [Status]: NPC_Event:[OnAgitStart] Run (49) Events by @AgitStart.  << and then it ends here..


  2. Yes my script is total mess.

    Which is why am posting for help.

    Only those don't want to be helped will refuse to ask for it or worst reject it.

    But something else comes in my mind.

    Curiously...

    Why is there got bhatch;

    And there hasn't got any breturntoegg; ?

    Or could you create something like that too?

     

     

    Side stuff:

    At this time I am using phone to browsing here 

    But out of curiosity why there is so many guess which outnumbered members which logged in.


  3. I have a broken pet egg exchanging old egg to new egg script which need help in fixing.

    -	script	F_PetTrader	FAKE_NPC,{
    		disable_items;
    		getinventorylist;
    		for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) {
    			.@item_type = getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE );
    			if ( .@item_type == IT_PETEGG ) {
    				if ( .petid[ @inventorylist_id[.@i] ] && !.@compare[ @inventorylist_id[.@i] ] ) {
    					.@found[.@c++] = @inventorylist_id[.@i];
    					.@compare[ @inventorylist_id[.@i] ] = false;
    				}
    			}
    		}
    		.@menu$ = "+&Sort&Count&Item&Name+&^FF0000Quit^000000:";
    		for ( .@i = 0; .@i < getarraysize(.@found); ++.@i ) {
    			mes getitemname( .@found[.@i] );
    			.@menu$ += .@i + " " + countitem(.@found[.@i] ) + " " + getitemname(.@found[.@i]) + " :";
    			dispbottom ( " .@i :: " + .@i + "  Count item :: " + countitem(.@found[.@i] ) + "  ItemName :: " + getitemname(.@found[.@i]) ) ;
    		}
    		.@i = select(.@menu$)-1;
    		if ( .@i > getarraysize(.@found) ) {
    			dispbottom ( " Dont mess with bug or I bug you! " ) ;
    			close2;
    			end;
    		} else {
    			mes (" .@i " + .@i ); 
    			.@EggItemId = .@found[.@i];
    			.@EggCount = countitem(.@found[.@i] );
    			if ( .@EggItemId ) {
    				delitem ( .@EggItemId, .@EggCount ) ;
    				makepet ( .@EggItemId );
    				mes ( " Exchanged :: " + .@EggCount + " of " + .@EggItemId ) ;
    			} else {
    				dispbottom ( " .@EggItemId :: " + .@EggItemId + "  .@EggCount :: " + .@EggCount ) ;
    			}
    		}
    		close;
    OnInit:
    	.@nb = query_sql( "select id from item_db where type & "+( 7 ), .@id );
    	freeloop true;
    	for ( .@i = 0; .@i < .@nb; ++.@i )
    		.petid[ .@id[.@i] ] = true;
    	end;
    }

    It is suppose to list what egg in player inventory but always returning poring egg..

    sometimes nothing is listed..or 0

    somewhere is broken and I failed to find out where

    and the .@menu$ part is confusing for me since it's not something I always messing with.


  4. .@nb = query_sql( "select id from item_db where equip_locations & "+( EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT ), .@id );
    

    Say after collected this list EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT 

    I want to put extra check which exclude some of the item from being listed in the 

    .@id[.@c++] = @inventorylist_id[.@i];

    like putting in an extra check so it doesn't get included in the .@id[.@c++]??

     

    mes getitemname( .@id[.@i] );

    then in this part it won't list the excluded "certain item"?


  5. 2 hours ago, JeanM said:

    ok, I had seen the question of the bonuses quoted, but I would like it to be temporary, and using these bonuses, I would need to add to the script in a garment and / or shoes item.
    would you have any changes you could suggest? my intention at this time would be to create two consumable items "Chemical Protection Shoes Scroll" and "Chemical Protection Garment Scroll" because we originally only have Chemical Armor / Helm / Shield / Weapon.

    I thank the attention.

    Scroll ... cant be done yet unless you create custom SC_ProtectGarment / SC_ProtectShoes.

     

    This can be put into Garment or Shoes or any combo items???

    autobonus...

    autobonus "{  bonus bUnbreakableGarment,100 }",50,10000,BF_WEAPON,"{ specialeffect(EF_ENHANCE, AREA, playerattached()); }";

    on attack has random chance to make garment unbreakable..

     


  6. 13 hours ago, AnnieRuru said:
    
    prontera,155,185,5	script	kjsdhfksjf	1_F_MARIA,{
    	disable_items;
    	getinventorylist;
    	for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) {
    		.@item_type = getiteminfo( @inventorylist_id[.@i], ITEMINFO_TYPE );
    		if ( ( .@item_type == IT_WEAPON || .@item_type == IT_ARMOR ) && !@inventorylist_equip[.@i] && !.costumeid[ @inventorylist_id[.@i] ] )
    			.@id[.@c++] = @inventorylist_id[.@i];
    	}
    	mes "Equipments found that are not costumes";
    	if ( !.@c ) {
    		mes "<none>";
    		close;
    	}
    	mesf "Total -> %d", .@c;
    	for ( .@i = 0; .@i < .@c; ++.@i )
    		mes getitemname( .@id[.@i] );
    	close;
    OnInit:
    //	SQL query to fetch all the costumes
    	.@nb = query_sql( "select id from item_db where equip_locations & "+( EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT ), .@id );
    //	build the 'pointers' to compare later
    	freeloop true;
    	for ( .@i = 0; .@i < .@nb; ++.@i )
    		.costumeid[ .@id[.@i] ] = true;
    	end;
    }

     

    I really fix up a lot of other script I have by comparing your script with whatever is in my script folder...

     

    On 2/11/2019 at 3:51 PM, utofaery said:

    1. How to add exclusion on this script like another array which exclude items from being found?

    I guess it's my bad for not explaining this correctly..

    on .nb part where it query_sql to fetch all the costumes, can I have another array to 

    .@arrayA which include a list of item which not to be compared or "found"?  from the big list of query_sql?


  7. On 2/10/2019 at 6:09 PM, AnnieRuru said:

    btw, can you get a clean hercules and test on it before posting ?
    you make hercules sounds like a crappy emulator because it gives you lots of error

    Not really since I am the one not get used to read all those source stuff so anything I change error'ed out on me...

     

    On 2/10/2019 at 2:03 PM, utofaery said:

    When multiple stormgust cast'ed on the same cell and mapserver keep putting out

    [Warning]: skill_unitgrouptickset_search: tickset is full. ( failed for skill 'W
    Z_STORMGUST' on unit 2 )

    does it has something to do with this setting?  or should I set it to 31 instead so it don't put any warning of this type?
    land_skill_limit: 14 // xsa // 9
    // Note 3: Value is a bit field. If no description is given,
    //         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)

     

    My original setting is 14 instead of default 9

    say it has a lot to do with it lol.

    after I change that 14 to 31 no more tickset warning...

    I tested with this script for all the value 9, 14, and 31

    only 14 has that error all the time.

    Spoiler

    function    script    F_summonX    {
        .@x = 30;
        for (.@i = 0; .@i < .@x; .@i++ )
            atcommand "@summon 1956";
            atcommand "@spawn 1502";
    return;
    }
     

     


  8. Not my suggestion but forced by microsoft to download that 17763 version of visual studio.

    it says i have something missing blablabla and need download a whole package of 8~10 GB of stuff which is so far away from what I intended.

    (which is the small visual studio download suggested by someone here and the download size would be (less than 2GB) which opps me out

     

     

    regarding the heal error

    I found it...

     

    original line in skill.c
    //xsa                if (status->isimmune(bl) || (dstmd != NULL && (dstmd->class_ == MOBID_EMPELIUM || mob_is_battleground(dstmd))))

    but I make it to this line: 
    if ( dstmd->class_ == mob_is_battleground(dstmd))//xsa

    so it crash whenever I try to these skills.
            case HLIF_HEAL: // [orn]
            case AL_HEAL:
            case AB_HIGHNESSHEAL:
            case SU_TUNABELLY:

    but if I change that line to this It's not crashing anymore...
    if (status->isimmune(bl) || (dstmd != NULL && (mob_is_battleground(dstmd))))//xsa

    if (status->isimmune(bl)  << how to make heal work on immuned Player (AKA GTB card equipped player) or anything???


  9. 5 hours ago, Mina-chan said:

    Hi! Does anyone have any problem with this and Browedit? I've tried to make either of the dowloads work with Browedit 586, 620 and 2, but it doesn't want to. I get messages like this:

    Clipboard02.jpg.6ec9f4f6fdd59dd09181c6d23b178dc0.jpg

    Other grfs also don't want to work (updated or not), except for an old one that I have.

    Thank u in advance!

    browedit has not updated since I dont know when

    but I think it work perfectly fine with anything 2016 but not after...


  10. 20 hours ago, AnnieRuru said:

    EDIT: no longer repeat the costume value

    Why and how does it repeat the costume at the first place ?

    was it because there is not enough limitation or conditions check that causing the loop then?

    and the loop can loop more than once??

    because in some cases I have seen

    .@i got bigger than .@c in some test
    for ( .@i = 0; .@i < .@c; ++.@i )

     

    side note:

    for the code box thing could changes be made so that it only run Codebox script after posting?

    so it load faster when trying to posting (aka before post is made)

    then after the post is made only then it load it's code?

     

    20 hours ago, AnnieRuru said:

    similar topic ->

    and since you want method 3

    
    prontera,155,185,5	script	kjsdhfksjf	1_F_MARIA,{
    	disable_items;
    	getinventorylist;
    	for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) {
    		if ( .costumeid[ @inventorylist_id[.@i] ] && !.@compare[ @inventorylist_id[.@i] ] ) {
    			.@found[.@c++] = @inventorylist_id[.@i];
    			.@compare[ @inventorylist_id[.@i] ] = true;
    		}
    	}
    	if ( !.@c ) {
    		mes "no costume found on your character";
    		close;
    	}
    	mesf "%d custome found on your character", .@c;
    	for ( .@i = 0; .@i < .@c; ++.@i )
    		mes getitemname( .@found[.@i] );
    	close;
    OnInit:
    //	SQL query to fetch all the costumes
    	.@nb = query_sql( "select id from item_db where equip_locations & "+( EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT ), .@id );
    //	build the 'pointers' to compare later
    	freeloop true;
    	for ( .@i = 0; .@i < .@nb; ++.@i )
    		.costumeid[ .@id[.@i] ] = true;
    	end;
    }

     

    1. How to add exclusion on this script like another array which exclude items from being found?


  11. 5 minutes ago, AnnieRuru said:

    I need to test this, if this is true, this really save a lot of time ...

    by the way, isn't this will make the emulator bug ? because our code isn't intended to be coded this way

    Nah all this time

    I am on window 7 Enterprise ultimate x32<<EDIT

    with visual studio 2017 and let the installer which downloaded from microsoft download all the package itself which resulted in 8~10GB total size

    and then when try to compile visual studio says retarget project or nothing...

    so I retarget ok build solution done. ... nothing happen lol.  except where I did source edit which resulted heal(28) not working...

     

    The only sad thing about hercules is development is slowish compare to rathena

    but rathena is a ship with lots of hole and slow speed...


  12. First off don't get mad to link from rathena:

    https://rathena.org/board/topic/118192-on-checking-array-items-infinite-loop/

     

    This is the test case I try to redo the thing but it's gotten into loop again and again.

    Don't get mad at me for not understanding this stuff.  I always ask things till I get it.

    Spoiler


    function    script    F_testarraycompare    {
            setarray ( .@costumes[getarraysize(.@costumes)]    ,
    19500, 19501, 19502, 19503, 19504, 19505, 19506, 19507, 19508, 19509, 19510, 19511, 19512, 19513, 19514, 
    19515, 19516, 19517, 19518, 19519, 19520, 19521, 19522, 19523, 19524, 19525, 19526, 19527, 19528, 19529, 
    19530, 19531, 19532, 19533, 19534, 19535, 19536, 19537, 19538, 19539, 19540, 19541, 19542, 19543, 19544, 
    19545, 19546, 19547, 19548, 19549, 19550, 19551, 19552, 19553, 19554, 19555, 19556, 19557, 19558, 19559, 
    19560, 19561, 19562, 19563, 19564, 19565, 19566, 19567, 19568, 19569, 19570, 19571, 19572, 19573, 19574, 
    19575, 19576, 19577, 19578, 19579, 19580, 19581, 19582, 19583, 19584, 19585, 19586, 19587, 19588, 19589, 
    19590, 19591, 19592, 19593, 19594, 19595, 19596, 19597, 19598, 19599, 19600, 19601, 19602, 19603, 19604, 
    19605, 19606, 19607, 19608, 19609, 19610, 19611, 19612, 19613, 19614, 19615, 19616, 19617, 19618, 19619, 
    19620, 19621, 19622, 19623, 19624, 19625, 19627, 19628, 19629, 19630, 19631, 19632, 19633, 19634, 19635, 
    19636, 19637, 19638, 19639, 19640, 19641, 19642, 19643, 19644, 19645, 19646, 19647, 19648, 19649, 19650, 
    19651, 19652, 19653, 19654, 19655, 19656, 19657, 19658, 19659, 19660, 19661, 19662, 19663, 19664, 19665, 
    19666, 19667, 19668, 19669, 19670, 19671, 19672, 19673, 19674, 19675, 19676, 19677, 19678, 19679, 19680, 
    19681, 19682, 19683, 19684, 19685, 19686, 19687, 19688, 19689, 19690, 19691, 19692, 19693, 19694, 19695, 
    19696, 19697, 19698, 19699, 19700, 19701, 19702, 19703, 19704, 19705, 19706, 19707, 19708, 19709, 19710, 
    19711, 19712, 19713, 19714, 19715, 19716, 19717, 19718, 19719, 19720, 19721, 19722, 19723, 19724, 19725, 
    19726, 19727, 19728, 19729, 19730, 19731, 19732, 19733, 19734, 19735, 19736, 19737, 19738, 19739, 19741, 
    19740, 19742, 19743, 19744, 19745, 19746, 19747, 19748, 19749, 19750, 19751, 19752, 19753, 19754, 19755, 
    19756, 19757, 19758, 19759, 19760, 19761, 19762, 19763, 19764, 19765, 19767, 19766, 19768, 19769, 19770, 
    19771, 19772, 19773, 19774, 19775, 19776, 19777, 19778, 19779, 19780, 19781, 19782, 19783, 19784, 19785, 
    19786, 19787, 19788, 19789, 19790, 19791, 19792, 19793, 19794, 19795, 19796, 19797, 19798, 19799, 19800, 
    19801, 19802, 19803, 19804, 19805, 19806, 19807, 19808, 19809, 19810, 19811, 19812, 19813, 19814, 19815, 
    19816, 19817, 19818, 19819, 19820, 19821, 19822, 19823, 19824, 19825, 19826, 19827, 19828, 19829, 19830, 
    19831, 19832, 19833, 19834, 19835, 19836, 19837, 19838, 19839, 19840, 19841, 19842, 19843, 19844, 19845, 
    19846, 19847, 19848, 19849, 19850, 19851, 19852, 19853, 19854, 19855, 19856, 19857, 19858, 19859, 19860, 
    19861, 19862, 19863, 19864, 19865, 19866, 19867, 19868, 19869, 19870, 19871, 19872, 19873, 19874, 19875, 
    19876, 19877, 19878, 19879, 19880, 19881, 19882, 19883, 19884, 19885, 19886, 19887, 19888, 19889, 19890, 
    19891, 19892, 19893, 19894, 19895, 19896, 19897, 19898, 19899, 19900, 19901, 19902, 19903, 19904, 19905, 
    19906, 19907, 19908, 19909, 19910, 19911, 19912, 19913, 19914, 19915, 19916, 19917, 19918, 19919, 19920, 
    19921, 19922, 19923, 19924, 19925, 19926, 19927, 19928, 19929, 19930, 19931, 19932, 19934, 19935, 19936, 
    19937, 19938, 19939, 19940, 19941, 19942, 19943, 19944, 19945, 19946, 19947, 19949, 19950, 19951, 19952, 
    19953, 19954, 19955, 19956, 19957, 19958, 19959, 19960, 19961, 19962, 19963, 19964, 19965, 19966, 19967, 
    19968, 19969, 19970, 19971, 19972, 19973, 19974, 19975, 19976, 19977, 19978, 19979, 19980, 19981, 19982, 
    19983, 19984, 19985, 19986, 19987, 19988, 19989, 19990, 19991, 19992, 19993, 19994, 19996, 19997, 19998, 
    19999, 20000, 20001, 20002, 20003, 20004, 20005, 20006, 20007, 20008, 20009, 20010, 20011, 20012, 20013, 
    20014, 20015, 20016, 20017, 20018, 20019, 20020, 20021, 20022, 20023, 20024, 20025, 20026, 20027, 20028, 
    20029, 20030, 20031, 20032, 20033, 20034, 20035, 20036, 20037, 20038, 20039, 20040, 20041, 20042, 20043, 
    20044, 20045, 20046, 20047, 20048, 20049, 20050, 20051, 20052, 20053, 20054, 20055, 20056, 20057, 20058, 
    20059, 20060, 20061, 20062, 20063, 20064, 20065, 20066, 20067, 20068, 20069, 20070, 20071, 20073, 20074, 
    20075, 20076, 20077, 20078, 20079, 20080, 20081, 20082, 20083, 20084, 20085, 20086, 20087, 20088, 20089, 
    20090, 20091, 20092, 20093, 20094, 20095, 20096, 20097, 20098, 20099, 20100, 20101, 20102, 20103, 20104, 
    20105, 20106, 20107, 20108, 20109, 20110, 20111, 20112, 20113, 20114, 20115, 20116, 20117, 20118, 20119, 
    20120, 20121, 20122, 20123, 20124, 20125, 20126, 20127, 20128, 20129, 20130, 20131, 20132, 20133, 20134, 
    20135, 20136, 20137, 20138, 20139, 20140, 20141, 20142, 20143, 20144, 20145, 20146, 20147, 20148, 20149, 
    20150, 20151, 20152, 20153, 20154, 20155, 20156, 20157, 20158, 20159, 20160, 20161, 20162, 20163, 20164, 
    20165, 20166, 20167, 20168, 20169, 20170, 20171, 20172, 20173, 20174, 20175, 20176, 20177, 20178, 20179, 
    20180, 20181, 20182, 20183, 20184, 20185, 20186, 20187, 20188, 20189, 20190, 20191, 20192, 20193, 20194, 
    20195, 20196, 20197, 20198, 20199, 20200, 20201, 20202, 20203, 20204, 20205, 20206, 20207, 20208, 20209, 
    20210, 20211, 20212, 20213, 20214, 20215, 20216, 20217, 20218, 20219, 20220, 20221, 20222, 20223, 20224, 
    20225, 20226, 20227, 20228, 20229, 20230, 20231, 20232, 20233, 20234, 20235, 20236, 20237, 20238, 20239, 
    20240, 20241, 20242, 20243, 20244, 20245, 20246, 20247, 20248, 20249, 20250, 20251, 20252, 20253, 20254, 
    20255, 20256, 20257, 20258, 20259, 20260, 20262, 20263, 20264, 20265, 20266, 20267, 20268, 20269, 20270, 
    20271, 20272, 20273, 20274, 20277, 20278, 20279, 20280, 20281, 20282, 20283, 20284, 20285, 20286, 20287, 
    20288, 20291, 20292, 20293, 20294, 20295, 20296, 20297, 20298, 20299, 20300, 20301, 20302, 20303, 20304, 
    20307, 20311, 20312, 20313, 20314, 20315, 20316, 20317, 20318, 20319, 20320, 20321, 20322, 20323, 20324, 
    20325, 20326, 20327, 20328, 20329, 20330, 20331, 20332, 20333, 20334, 20335, 20338, 20339, 20340, 20341, 
    20342, 20345, 20346, 20347, 20348, 20349, 20350, 20351, 20352, 20353, 20354, 20355, 20356, 20357, 20358, 
    20359, 20360, 20361, 20362, 20363, 20364, 20365, 20366, 20367, 20368, 20369, 20370, 20371, 20372, 20373, 
    20374, 20375, 20376, 20377, 20378, 20379, 20380, 20381, 20382, 20383, 20384, 20386, 20392, 20393, 20394, 
    20396, 20397, 20398, 20399, 20400, 20401, 20402, 20403, 20404, 20405, 20406, 20407, 20408, 20409, 20416, 
    20417, 20418, 20419, 20420, 20421, 20422, 20423, 20424, 20425, 20426, 20427, 20428, 20429, 20430, 20431, 
    20432, 20433, 20434, 20435, 20436, 20437, 20438, 20439, 20440, 20441, 20442, 20446, 20447, 20448, 20449, 
    20450, 20451, 20452, 20455, 20456, 20458, 20457, 20459, 20460, 20461, 20462, 20463, 20464, 20465, 20466, 
    20467, 20468, 20470, 20476, 20481, 20482, 20483, 20484, 20485, 20486, 20487, 20488, 20489, 20490, 20491, 
    20492, 20495, 20496, 20497, 20498, 20499, 20500, 20502, 20504, 20506, 20507, 20508, 20509, 20510, 20511, 
    20512, 20514, 20515, 20516, 20517, 20530, 20533 ) ;

        disable_items;
        getinventorylist;
        for ( .@x = 0; .@x < getarraysize(@inventorylist_count); ++.@x ) {
            for ( .@y = 0; .@y < getarraysize(.@costumes); ++.@y ) {
                    if ( @inventorylist_id[.@x] == .@costumes[.@y] ) {
                        dispbottom ( " Found item :: " + @inventory_id[.@x] ) ;
                        .@i++;
                    }
                    .@z++;
            }
        }
        dispbottom ( " .@x :: " + .@x  ) ;
        dispbottom ( " .@y :: " + .@y  ) ;
        dispbottom ( " .@z :: " + .@z  ) ;
        dispbottom ( " .@i :: " + .@i  ) ;
        return;
    }

     


  13. 9 hours ago, AnnieRuru said:

    download visual studio, 1 day ...
    hercules need Windows 10 SDK 10.0.15063 ... download 1 day ...
    rathena need Windows 8.1 SDK ... download another 1 day...

    I don't know if you realise this.

    You could retarget project even if you are not on

    Windows 10 SDK 10.0.15063

    Windows 8.1 SDK

    I used 10.0.17763.0

    and retarget project by rightclicking solution in solution explorer.

    function ok I think even in newer version of sdk

    for both rathena and hercules (retarget)

     

    and about download speed

    Do make use of internet download manager ...

    it's like "@speed 0" compare to normal way of download which is "@speed 100" 

    it shorten download time by at least 75% if you use it.

     

    13 hours ago, AnnieRuru said:

    compare windows to linux ... of course linux better ...
    to be honest, I'm the only hercules staff member using windows, all other staff members use linux

    imgur ... no ... if I make this topic fully load with screenshots, it eats lots of bandwidth

    Nah I would not agree only developer grade or someone pro on source code stuff love linux more

    even when linux has nice and improved desktop environment the keyboard shortcut are all different if you are above pro window user you hate it

    (it's like your kitchen stuff is not where it should be and you need to learn or find them when you need them)

    13 hours ago, AnnieRuru said:

    How did I learn to ride bicycle ?
    my father rent a bicycle and I ride on it while I was 7~8 years old,
    nobody push at the back, no book, no guide, straight on to the real thing, fell a few times
    ... typical chinese teaching method ... yes I'm chinese

    EDIT: yes, how the chinese children learn how to swim -> throw them into the water
    that's why western culture thinks chinese are child abuse

    I guess same here dah

    Westerner try to judge asian people's way to teach kid...sick and bad

    When I got the chance to learn to ride motorcycle I had nobody to teach me nothing 

    all the adult say is keep your balance and hold on to the speed...including fall and break the bone.

     

     

     

    forgotten this:

    You should include the internet download manager into the guide too 

    it helps with download speed with anything bigger than 500MB


  14. 1 hour ago, lllaaazzz said:

    1

    Because. .. Sure i can add another skill but theres very little point when you can barely get special effects to look good on it, i can use specialeffect function but theres no point when i can just edit the existing skills the give the illusion of real skills instead of my work around of making damage DoT with misc damage 1, could do that but aoe skills are still wonky and cast on all targets, so even if i just use the BF_MAGIC function and just call ignition break, its still broken cause it casts on every target + it wont even cast if mobs arent in my vicinity so that just makes it look really ugly. . . so thats why im trying to edit an existing skill. rather then just making a new skill that does the same thing.

    specialeffects works rather well with non damaging skills though

    2

    But if daddy cant fix this ill just have to use tab 1 + etc and go with plan d)

    1.

    In the ancient age where everyone is still crawling around "eathena" which died out already, 

    I ask a question, can we get something like Skill_avail.txt just like mob_avail.txt?

    and no answer or it's too complicated to do...

    I guess it's hard since skill are tied to source or what's not then..

     

    2. I see 2 way you could go from where you are right now.

    It would do you good if you would choose "plan D", since this "Plan C" of yours are currently dying.

    But if you do insist use custom skill way to implement it downside are you gonna have to do your own graphic for the "custom skill" (really cool sprite to showoff somehow)


  15. 1 hour ago, AnnieRuru said:

    5 yes

    6. item_db2.conf

    
    {
    	Id: 39999
    	AegisName: "Jellopy__"
    	Name: "Jellopy__"
    	Buy: 6
    	Weight: 10
    	BuyingStore: true
    	Sprite: 909
    },

     

    5 because your answer simply is a single yes so i take it both can which is 

    setarray #name[.@i] , blablabla
    setarray #name$[.@i] , blablabla

    can be done.

    and sql CREATE something blablabal?

     

    6 means only need this line only?

    Sprite: 909

     

    2

    land_skill_limit: 14 // xsa // 9 < this is in config files

    and tested with @summon 1956 atleast 30 of them

    against target with really high hp about 7m and all 1956 casted aoe spell

    (multiple stormgust and meteorstorm) at the target like 10 minimum count of aoe spell on cell where target is at.

    then map server spit up alot of these ...
    [Warning]: skill_unitgrouptickset_search: tickset is full. ( failed for skill 'W
    Z_STORMGUST' on unit 2 ) 

     

    1.

    then it's weird last time it need me go to change every file but not import folder to take effect...

     

    3

    One simple question:

    does array start with -1 or 0?

    sometime it return 0 sometime -1 

    confusing...


  16. Have you search through this file already ??

    Ragnarok\data\luafiles514\lua files\skillinfoskilltreeview.lub  << this is the reason if it's not the server doing it.

    skillinfo_f.lub << and this is the script from the client doing the showing skill position << check it out...

    9 hours ago, utofaery said:

    Hercules\db\re\skill_tree.conf

     

    Follow through this and test again:

    https://herc.ws/wiki/Adding_new_skills

    The reason I suggest you to go through the links is because it would be easier to add new skill lol.

    Skill are unique stuff not like mob can be avail'ed although hercules I have not found item_avail.txt.

     


  17. short questions first then long long question...
    4.
    Why @summon'ed white plant or any thing can move but not 
    @summon 2042 (SilverSniper) or
    @summon 1511 (Amon ra)
    can't move at all?

    in eathena amonra moves if summon ( if memory serves me correctly or was it otherwise. )


    5.
    in cases of storing arrays of Item Id from getinventorylist.
    can we make use of permanent player variable to store that array??
    or should I create a custom sql table for that purpose?

    6
    have item avail gone from hercules?

     

     

     


    1.

    tested multiple times on gunslinger against pupa...

    Hercules\conf\map\battle\battle.conf
            arrow_decrement: 0  << edits inside here works no using up any ammunitions of any kind

    Hercules\conf\import\battle.conf
            arrow_decrement: 0  << edits inside here NOT working at all???  ammunitions decreasing...

    so question is does the import folder of hercules actually working at all??
    entries on Hercules\conf\map\battle.conf is unchanged.


    another case
    bow_unequip_arrow: false // xsa // true
    Setting placed in Hercules\conf\import\battle.conf no read 
    but if place in Hercules\conf\map\battle\items.conf it got read and effective

    so how hercules import folder actually works for battle.conf? 

    don't know if other files in import folder behaves like this or not.
     


    2.

    When multiple stormgust cast'ed on the same cell and mapserver keep putting out

    [Warning]: skill_unitgrouptickset_search: tickset is full. ( failed for skill 'W
    Z_STORMGUST' on unit 2 )

    does it has something to do with this setting?  or should I set it to 31 instead so it don't put any warning of this type?
    land_skill_limit: 14 // xsa // 9
    // Note 3: Value is a bit field. If no description is given,
    //         assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun, 16: Mercenary)

     

    3

    I have script like this:
    How do I check if getarg(1) == empty or null
    which is suppose to be filled as .x1 but it's not filled (which is intended)

    Spoiler

    -    script    IT_ArrayCentral    FAKE_NPC,{
    OnInit:
        setarray .x0[0], x, y, z;
        setarray .x1[0], x, y, z;
        end;
    }

    called from another npc
    callfunc ( "F_xTestArrayinfunction",.x0 ) ;  // filled getarg(0) but not filling getarg(1) 

    function    script    F_xTestArrayinfunction    {
            if ( getarg ( 0 ) == 0 ) { // How do I make proper check here?? if getarg(0) is filled or not filled?  (especially array)
                dispbottom ( " arguement 0 is 0 " ) ; // << This shows up but not the else'd dispbottom why??
            } else {
                dispbottom ( " Array 0 :: size :: " + getarraysize(getvariableofnpc( getarg(0) , "IT_ArrayCentral" ) ) ) ; // << This is expected to show up but it's not.
            }
            if ( getarg ( 1 ) == 0 ) {
                dispbottom ( " arguement 1 is 0 " ) ;
            } else {
                dispbottom ( " Array 1 :: size :: " + getarraysize(getvariableofnpc( getarg(1) , "IT_ArrayCentral" ) ) ) ;
            }
            return;
    }


     


  18. #include "common/hercules.h"
    #include "map/pc.h"
    #include "common/HPMDataCheck.h"
    
    HPExport struct hplugin_info pinfo = {
    	"getstoragelist",
    	SERVER_TYPE_MAP,
    	"x_O",
    	HPM_VERSION,
    };
    
    BUILDIN(getstoragelist) {
    	struct map_session_data *sd = script->rid2sd(st);
    	char card_var[SCRIPT_VARNAME_LENGTH];
    	int i = 0, j = 0, k = 0;
    
    	if ( sd == NULL )
    		return true;
    
    	for ( i = 0; i < VECTOR_LENGTH(sd->storage.item); i++ ) {
    		pc->setreg( sd, reference_uid( script->add_variable("@storagelist_id"), j ), VECTOR_INDEX(sd->storage.item, i).nameid );
    		pc->setreg( sd, reference_uid( script->add_variable("@storagelist_amount"), j ), VECTOR_INDEX(sd->storage.item, i).amount );
    		pc->setreg( sd, reference_uid( script->add_variable("@storagelist_refine"), j ), VECTOR_INDEX(sd->storage.item, i).refine );
    		pc->setreg( sd, reference_uid( script->add_variable("@storagelist_identify"), j ), VECTOR_INDEX(sd->storage.item, i).identify );
    		pc->setreg( sd, reference_uid( script->add_variable("@storagelist_attribute"), j ), VECTOR_INDEX(sd->storage.item, i).attribute );
    		for ( k = 0; k < MAX_SLOTS; k++ ) {
    			sprintf( card_var, "@storagelist_card%d", k +1 );
    			pc->setreg( sd, reference_uid( script->add_variable(card_var), j ), VECTOR_INDEX(sd->storage.item, i).card[k]);
    		}
    		pc->setreg( sd, reference_uid(script->add_variable("@storagelist_expire"), j ), VECTOR_INDEX(sd->storage.item, i).expire_time);
    		pc->setreg( sd, reference_uid(script->add_variable("@storagelist_bound"), j ), VECTOR_INDEX(sd->storage.item, i).bound);
    		for ( k = 0; k < MAX_ITEM_OPTIONS; k++ ) {
    			sprintf( card_var, "@storagelist_opt_id%d", k + 1 );
    			pc->setreg(sd, reference_uid(script->add_variable(card_var), j), VECTOR_INDEX(sd->storage.item, i).option[k].index);
    			sprintf( card_var, "@storagelist_opt_val%d", k + 1 );
    			pc->setreg(sd, reference_uid(script->add_variable(card_var), j), VECTOR_INDEX(sd->storage.item, i).option[k].value);
    			sprintf( card_var, "@storagelist_opt_param%d", k + 1 );
    			pc->setreg(sd, reference_uid(script->add_variable(card_var), j), VECTOR_INDEX(sd->storage.item, i).option[k].param);
    		}
    		j++;
    	}
    	pc->setreg( sd, script->add_variable("@storagelist_count") , j );
    	return true;
    }
    
    HPExport void plugin_init (void) {
    	addScriptCommand( "getstoragelist", "", getstoragelist );
    }
    
    // src/plugins/xGetStorageList.c
    
    
    #include "common/hercules.h"
    #include "map/pc.h"
    #include "common/HPMDataCheck.h"
    
    HPExport struct hplugin_info pinfo = {
    	"maxbaselv",
    	SERVER_TYPE_MAP,
    	"x_O",
    	HPM_VERSION,
    };
    
    BUILDIN(maxbaselv) {
    	struct map_session_data *sd = script->rid2sd(st);
    
    	if ( sd == NULL )
    		return true;
    
    	script_pushint( st, pc->maxbaselv(sd) );
    	return true;
    }
    
    BUILDIN(maxjoblv) {
    	struct map_session_data *sd = script->rid2sd(st);
    
    	if ( sd == NULL )
    		return true;
    
    	script_pushint( st, pc->maxjoblv(sd) );
    	return true;
    }
    
    HPExport void plugin_init (void) {
    	addScriptCommand( "maxbaselv", "", maxbaselv );
    	addScriptCommand( "maxjoblv", "", maxjoblv );
    }
    // src/plugins/xMaxLvlCheck.c 

    The 2 plugins.

     

     

    Mobbranch.txt << need seperate it.
    db/mob_customMVP.txt
    db/mob_customNormal.txt

     

    Unversioned files are not here,

    or do I need to pack them up as zip???

    Mobbranch.txt

    Git Diff.txt


  19. Spoiler
    
    -    script    BmapMobList    -1,{
    OnInit:
        bindatcmd "mapmoblist2", strnpcinfo(0)+"::Onaaa";
        end;
    Onaaa:
        if ( .@atcmd_numparameters ) {
            if ( getmapusers(.@atcmd_parameters$) == -1 ) {
                dispbottom "Map not exist";
                end;
            }
            .@map$ = .@atcmd_parameters$;
        }
        else
            .@map$ = strcharinfo(3);
        .@size = getunits( BL_MOB, .@bl, false, .@map$ );
        freeloop true;
        for ( .@i = 0; .@i < .@size; ++.@i ) {
            .@string$ = rid2name(.@bl[.@i]);
            if ( !getd(".@"+ .@string$) ) {
                .@mobname$[.@c] = .@string$;
                getmapxy .@map$, .@x, .@y, UNITTYPE_MOB, .@bl[.@i];
                .@mobx[.@c] = .@x;
                .@moby[.@c] = .@y;
                .@mobhp[.@c] = getunitdata( .@bl[.@i], UDT_HP );
                .@mobmaxhp[.@c] = getunitdata( .@bl[.@i], UDT_MAXHP );
                ++.@c;
            }
            setd ".@"+ .@string$, getd(".@"+ .@string$) +1;
        }
        dispbottom " === These are monsters in "+ .@map$ +" ===";
        for ( .@i = 0; .@i < .@c; ++.@i )
            if ( getd(".@"+ .@mobname$[.@i]) )
                dispbottom ( ++.@j )+". "+ .@mobname$[.@i] +" : "+ getd(".@"+ .@mobname$[.@i])+"x";
        if ( getgmlevel() < 99 ) end; // Hercules doesn't catch dead monsters as being alive
        dispbottom " === Location of unique monsters === ";
        for ( .@i = 0; .@i < .@c; ++.@i )
            if ( getd(".@"+ .@mobname$[.@i]) == 1 )
                dispbottom .@mobname$[.@i] +" --> X = "+ .@mobx[.@i] +" Y = "+ .@moby[.@i] +" | Hp left = "+ .@mobhp[.@i] +"/"+ .@mobmaxhp[.@i];
        end;
    }

     

    I found this script 

    1. I hope to know how do I make a script to check for only a specific monster count from script without use bindatcmd?
    like directly check for specific monster count in a map but not other monster on the same map.

     


  20. Unhandled exception thrown: read access violation.
    **dstmd** was nullptr. occurred

     

    This happen'd when I use Heal skill (28) on any target.

    Spoiler

    'map-server.exe' (Win32): Loaded 'C:\Users\Rio\Desktop\Hercules\map-server.exe'. Symbols loaded.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\ws2_32.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\rpcrt4.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\nsi.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Users\Rio\Desktop\Hercules\libmysql.dll'. Module was built without symbols.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\wsock32.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\advapi32.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\sechost.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Users\Rio\Desktop\Hercules\zlib1.dll'. Module was built without symbols.
    'map-server.exe' (Win32): Loaded 'C:\Users\Rio\Desktop\Hercules\pcre3.dll'. Module was built without symbols.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\user32.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\gdi32.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\lpk.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\usp10.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\cryptsp.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\rsaenh.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\cryptbase.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\imm32.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\msctf.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\api-ms-win-core-synch-l1-2-0.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\nlaapi.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\NapiNSP.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\pnrpnsp.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\mswsock.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\dnsapi.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\winrnr.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\IPHLPAPI.DLL'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\winnsi.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\FWPUCLNT.DLL'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\rasadhlp.dll'. Cannot find or open the PDB file.
    'map-server.exe' (Win32): Loaded 'C:\Users\Rio\Desktop\Hercules\plugins\HPMHooking_map.dll'. Symbols loaded.
    'map-server.exe' (Win32): Loaded 'C:\Users\Rio\Desktop\Hercules\plugins\mapcache.dll'. Symbols loaded.
    'map-server.exe' (Win32): Loaded 'C:\Users\Rio\Desktop\Hercules\plugins\xGetStorageList.dll'. Symbols loaded.
    'map-server.exe' (Win32): Loaded 'C:\Users\Rio\Desktop\Hercules\plugins\xMaxLvlCheck.dll'. Symbols loaded.
    'map-server.exe' (Win32): Loaded 'C:\Windows\System32\WSHTCPIP.DLL'. Cannot find or open the PDB file.
    The thread 0x2ca8 has exited with code 0 (0x0).
    Unhandled exception thrown: read access violation.
    **dstmd** was nullptr.

     

×
×
  • Create New...

Important Information

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