Jump to content

xlaws27

Members
  • Content Count

    225
  • Joined

  • Last visited

Posts posted by xlaws27


  1. HP SP Generator link works fine for me

     

    yap it works but the calculation seems different with the eA formula

     

    on my server i followed all the formula without any mistakes

     

    sinx got 65422 hp / paladin got a 66984 hp and LK got a 88410 hp

     

    i now its normal that LK got a lot of hp but its shouldn't be high like that.

    and look at the difference of paladin and sinx hp, its too close.

     

    fyi

    i edited my base HP rate from 100 to 140 on players.conf that's why they got 60k++ hp

    but it doesn't change the fact that the formula is kinda wrong.


  2. kami-shi is super busy as always

     

    can someone help me with this? or can someone share their compatible hercules version of the disguise race scripts?

     

    this is what i got:

     

    [Error] script:callfunc: function not found! [setlook2]

    Debug: Source (NPC): Race Master at prontera 138 195

     

    this is the script T_T

    //===== *Athena Script =======================================
    //= Disguise Race Script
    //===== By: ==================================================
    //= KamiShi
    //===== Current Version: =====================================
    //= 1.3
    //===== Compatible With: =====================================
    //= *Athena SVN
    //===== Description: =========================================
    //= Race Master related stuff
    //= We use permanent char variables to define races:
    
    //= race_id = 0 // Human
    //= race_id = 1 // Dark Elf
    //= race_id = 2 // Light Elf
    //= race_id = 3 // Merman
    //= race_id = 4 // Orc
    //= race_id = 5 // Vampire
    //= race_id = 6 // Lycan
    //= race_id = 7 // Dragoon
    //= race_id = 8 // Demon
    //= race_id = 9 // Dark Soul
    //= race_id = 10 // Light Soul
    //= race_id = 11 // Earth Element
    //= race_id = 12 // Wind Element
    //= race_id = 13 // Water Element
    //= race_id = 14 // Fire Element
    //= race_id = 15 // Electric Element
    //= race_id = 16 // Shadow Element
    //= race_id = 17 // Ghost Element
    //= race_id = 18 // Poison Element
    //= race_id = 19 // Holy Element
    //= race_id = 20 // Undead Element
    
    //=========================================================
    // You should not use this following NPC if you don't want to 
    // use the *disguise* system, but the *item* system.
    //=========================================================
    
    prontera,138,195,5	script	Race Master	897,{
    	mes "[^008B00Race Master^000000]";
    	if(race_id)
    	{
    		mes "I see that you got a race choose!";
    		next;
    		mes "[^008B00Race Master^000000]";
    		mes "Do you want to become human again?";
    		next;
    		switch(select("No:Yes"))
    		{
    			case 1:
    				mes "[^008B00Race Master^000000]";
    				mes "I'll be here if you change your mind...";
    				close;
    
    			case 2:
    				mes "[^008B00Race Master^000000]";
    				mes "Done!";
    				callfunc "unsetRaceHat";
    				set race_id,0;
    				callfunc("resetSavedSets");
    				callfunc("setlook2", 6, 1);
    				callfunc("setlook2", 7, 1);
    				announce "[Race Master]: ["+strcharinfo(0)+"] has became a human again...",bc_all,"0xFFEBCD";
    				close;
    		}
    	}
    	mes "I can help you to change your Human essence.";
    	mes "Which race are you interested in?";
    	next;
    	switch(select("Earth Element:Wind Element:Water Element:Fire Element:Electric Element:Shadow Element:Ghost Element:Poison Element:Holy Element:Undead Element"))
    	{
    		
    			
    		case 1: //Earth
    				callfunc "BecomeRace", 11;
    				break;
    				
    		case 2: //Wind
    				callfunc "BecomeRace", 12;
    				break;
    		
    		case 3: //Water
    				callfunc "BecomeRace", 13;
    				break;
    				
    		case 4: //Fire
    				callfunc "BecomeRace", 14;
    				break;
    				
    		case 5: //Electric
    				callfunc "BecomeRace", 15;
    				break;
    				
    		case 6: //Shadow
    				callfunc "BecomeRace", 16;
    				break;
    				
    		case 7: //Ghost
    				callfunc "BecomeRace", 17;
    				break;
    				
    		case 8: //Poison
    				callfunc "BecomeRace", 18;
    				break;
    			
    		case 9: //Holy
    				callfunc "BecomeRace", 19;
    				break;
    				
    		case 10: //Undead
    				callfunc "BecomeRace", 20;
    				break;
    
    				
    	}
    	
    	mes "[^008B00Race Master^000000]";
    	mes "Now you are a ^008B00"+$RaceNames$[race_id]+"^000000!";
    	announce "[Race Master]: ["+strcharinfo(0)+"] has became a "+$RaceNames$[race_id]+"",bc_all,"0xFFEBCD"; 
    	
    	close;
    	
    
    	
    //=========== *DISGUISE SYSTEM* ==================
    //= When the player log in, shows its race's ears.
    //================================================
    
    OnPCLoginEvent:
    	callfunc "setRaceHat";
    	end;
    }
    
    //=========== *DISGUISE SYSTEM* ==================
    //==== callfunc ("BecomeRace", <id>); ============
    //================================================
    
    function	script	BecomeRace	{		
    	
    	set race_id,getarg(0);	// Race ID 
    	callfunc("setlook2", 6, $RacePals[race_id*4+2]);	// Number of the first race hair dye
    	callfunc("setlook2", 7, $RacePals[race_id*4]);	// Number of the first race clothes dye
    	callfunc "setRaceHat";
    	specialeffect2 248;	// Some fancy effect
    	return;
    	
    }
    
    
    
    //============= *DISGUISE SYSTEM* ================
    //=== Set the hat view ID of a race char =========
    //================================================
    
    function	script	setRaceHat	{	
    	set .@off, 0; // Change this value to increase / decrease hat view ID
    	switch(race_id)
    	{
    		case 1: // Dark Elf
    			setlook2 5,937+.@off;	
    			break;
    
    		case 2: // Light Elf
    			setlook2 5,936+.@off;	
    			break;
    
    		case 3: // Merman
    			setlook2 5,940+.@off;	
    			break;
    		
    		case 4: // Orc
    			setlook2 5,941+.@off;	
    			break;
    			
    		case 5: // Vampire
    			setlook2 5,938+.@off;	
    			break;
    		
    		case 6: // Beast
    			setlook2 4,939+.@off;	
    			break;
    			
    		case 7: // Dragoon
    			setlook2 4,942+.@off;	
    			break;
    			
    		case 8: // Demon
    			setlook2 5,943+.@off;	
    			break;
    		
    		case 9: // DarkSoul
    			setlook2 3,944+.@off;	
    			break;
    			
    		case 10: // LightSoul
    			setlook2 3,945+.@off;	
    			break;
    			
    		case 11: // Earth
    			setlook2 5,946+.@off;	
    			break;
    
    		case 12: // Wind
    			setlook2 5,947+.@off;	
    			break;
    
    		case 13: // Fire
    			setlook2 5,948+.@off;	
    			break;
    		
    		case 14: // Water
    			setlook2 5,949+.@off;	
    			break;
    			
    		case 15: // Electric
    			setlook2 5,950+.@off;	
    			break;
    		
    		case 16: // Shadow
    			setlook2 4,951+.@off;	
    			break;
    			
    		case 17: // Ghost
    			setlook2 4,952+.@off;	
    			break;
    			
    		case 18: // Holy
    			setlook2 5,953+.@off;	
    			break;
    		
    		case 19: // Poison
    			setlook2 3,954+.@off;	
    			break;
    			
    		case 20: // Undead
    			setlook2 3,955+.@off;	
    			break;
    
    		default: //Human
    			break;
    	}
    	return;
    
    }
    
    
    //============= *DISGUISE SYSTEM* ================
    //=== Unset the hat view ID of a race char =========
    //================================================
    
    function	script	unsetRaceHat	{	
    	switch(race_id)
    	{
    		case 1: // Dark Elf
    			setlook2 5,0;	
    			break;
    
    		case 2: // Light Elf
    			setlook2 5,0;	
    			break;
    
    		case 3: // Merman
    			setlook2 5,0;	
    			break;
    		
    		case 4: // Orc
    			setlook2 5,0;	
    			break;
    			
    		case 5: // Vampire
    			setlook2 5,0;	
    			break;
    		
    		case 6: // Beast
    			setlook2 4,0;	
    			break;
    			
    		case 7: // Dragoon
    			setlook2 4,0;	
    			break;
    			
    		case 8: // Demon
    			setlook2 5,0;	
    			break;
    		
    		case 9: // DarkSoul
    			setlook2 3,0;	
    			break;
    			
    		case 10: // LightSoul
    			setlook2 3,0;	
    			break;
    			
    		case 11: // Earth
    			setlook2 5,0;	
    			break;
    
    		case 12: // Wind
    			setlook2 5,0;	
    			break;
    
    		case 13: // Fire
    			setlook2 5,0;	
    			break;
    		
    		case 14: // Water
    			setlook2 5,0;	
    			break;
    			
    		case 15: // Electric
    			setlook2 5,0;	
    			break;
    		
    		case 16: // Shadow
    			setlook2 4,0;	
    			break;
    			
    		case 17: // Ghost
    			setlook2 4,0;	
    			break;
    			
    		case 18: // Holy
    			setlook2 5,0;	
    			break;
    		
    		case 19: // Poison
    			setlook2 3,0;	
    			break;
    			
    		case 20: // Undead
    			setlook2 3,0;	
    			break;
    
    		default: //Human
    			break;
    	}
    	return;
    
    }
    

  3.  

    you can use checkbound script command for it

     

    add this and change the array of .@Blacklist to your own ids

    // Headgear Blacklistsetarray .@Blacklist, 2201, 2202, 2203;for (.@c = 0; .@c < getarraysize(.@Blacklist); ++.@c) {	if ( .@Blacklist[.@c] == .@id && checkbound(.@Blacklist[.@c]) ) {		mes "You can't convert bound item.";		close;	}}

    after

    set .@Part, .@Position[ select(.@Menu$) ];set .@id, getequipid(.@Part);

    thank you!!!


  4. the ITEMBOUND items became tradable when i converted them into a costume then restore them back.

     

    can you help me ? i have no knowledge scripting.

     

    but i think the solution is countitem so that it won't let the player to use the costume clown if he/she has an <itemid> in his inventory.

     

     

    //===== Hercules Script ======================================//= Headgear to Costume converter >> Costume to Headgear converter//===== By: ==================================================//= Rebel, Zephyrus [rAthena]//= Mhalicot [Hercules]//===== Current Version: =====================================//= 1.1//===== Compatible With: =====================================//= Hercules//===== Description: =========================================//= Allows a user to convert the equipped headgear //	(on Top, Mid or Low) into a costume item. //	It will remove any card and refine of the Item.//= Allows a user to restore the equipped costume headgear //	(on Top, Mid or Low) into its original form. //	It will not return any card or refine of the item.//===== Additional Comments: =================================//= 1.0 Initial script [All of this script are credit to//	Rebel, Zephyrus of [rAthena] and revised by [Mhalicot]//	to make it compatible in Hercules.]//= 1.1 Denied if Headgear is rental, has refine,//	or has card[Mhalicot]//	Note: You must apply the patch in order to use this script//============================================================-	script	Costume Clown	-1,{	mes "[Clown]";	mes "Here you can convert your headgears into a Costume Headgear or restore to its Original form.";	switch(select("I want to convert.:I want to restore.:No thanks.")) {	case 1:			next;			mes "[Clown]";			mes "Please, select what to convert.";			mes "Remember, cards and refine will be removed.";			next;				setarray .@Position$[1],"Top","Mid","Low";				setarray .@Position[1],     1,    9,   10;				set .@Menu$,"";			for( set .@i, 1; .@i < 5; set .@i, .@i + 1 )			{				if( getequipisequiped(.@Position[.@i]) )				set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]";				set .@Menu$, .@Menu$ + ":";			}			set .@Part, .@Position[ select(.@Menu$) ];			set .@id, getequipid(.@Part);			set .@ref, getequiprefinerycnt(.@Part);			if( !getequipisequiped(.@Part) )			{				mes "[Clown]";				mes "Your not wearing anything there...";				close;			}			mes "[Clown]";			mes "You want to Costume your " + getitemname(getequipid(.@Part)) + "?";			next;			if( select("Yes, proceed:No, I am sorry.") == 2 )			{				mes "[Clown]";				mes "Need some time to think about it, huh?";				mes "Alright, I can understand.";				close;			}			for(set .@i,0; .@i<4; set .@i,.@i+1)				set .@slot[.@i], getequipcardid(.@Part,.@i);			if (.@slot[0]>4000 && .@slot[0]<5000) { // If it has card don't convert				mes "[Clown]";				mes "A card? Here?!";				mes "As I said before, I don't convert headgear with cards.";				emotion e_hmm;				close;			}			getinventorylist;			for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1)				if (@inventorylist_expire[.@i] != 0 && @inventorylist_equip[.@i] != 0) { // If rental don't convert				mes "[Clown]";				mes "Sorry, I don't convert a rental headgear!";				emotion e_hmm;				close;				}				if (.@ref > 0) { // If refine don't convert				mes "[Clown]";				mes "Sorry please keep in mind.";				mes "I don't convert headgear with refine.";				emotion e_hmm;				close;				}			if (!countitem(.@id)) { 				mes "[Clown]";				mes "Where is "+getitemname(@id)+"...?";				npctalk "You're a snoozy cheater!";				logmes "CHEATER: Tried to sign an item not having it: "+getitemname(@id);				emotion e_wah;				close;			}			costume .@Part; // Convert the Headgear			mes "[Clown]";			mes "Done, enjoy your costume headgear.";			close;	case 2:			next;			mes "Please, select what to restore.";			mes "Remember, I will only restore it back without refine and cards.";			next;				setarray .@Position$[1],"Top","Mid","Low";				setarray .@Position[1],     13,    12,   11;				set .@Menu$,"";			for( set .@i, 1; .@i < 5; set .@i, .@i + 1 )			{				if( getequipisequiped(.@Position[.@i]) )				set .@Menu$, .@Menu$ + .@Position$[.@i] + "-" + "[" + getequipname(.@Position[.@i]) + "]";				set .@Menu$, .@Menu$ + ":";			}			set .@Part, .@Position[ select(.@Menu$) ];			if( !getequipisequiped(.@Part) )			{				mes "[Clown]";				mes "Your not wearing anything there...";				close;			}			mes "[Clown]";			mes "You want to restore your " + getitemname(getequipid(.@Part)) + "?";			next;			if( select("Yes, proceed:No, I am sorry.") == 2 )			{				mes "[Clown]";				mes "Need some time to think about it, huh?";				mes "Alright, I can understand.";				close;			}			a = getequipid(.@Part);						delitem a,1;			getitem a,1;						mes "[Clown]";			mes "Done, enjoy your restored headgear.";			close;	case 3:		mes "[Clown]";		mes "Very well. Return at once if you seek my services.";		close;	}}// --------------------------------------------------------------------------// Use duplicates to put your npc on different cities// --------------------------------------------------------------------------mellina,120,75,4	duplicate(Costume Clown)	Costume Clown#1	4_M_PIERROT

     


  5.  

    http://herc.ws/board/topic/398-client-translation-project/

    Place data folder inside grf, and system folder should be in RO folder(outside grf)

    Pic1-4 are because of lua files

    Thank you a lot. The lua errors are not there anymore and I was able to use it with latest kRO client. Apparently, only the prontera map still has error, it crashed when I @go 0, others were fine. May I know how to fix this?

     

     

    if u're stuck in 3% loading then u should download this

     

    http://herc.ws/board/topic/8513-old-prontera/


  6.  

    show your skill.c file

    it looks like different than mine

    // Skill DBint skill_get_hit( uint16 skill_id )               { skill_get (skill->dbs->db[skill_id].hit, skill_id); }int skill_get_inf( uint16 skill_id )               { skill_get (skill->dbs->db[skill_id].inf, skill_id); }int skill_get_ele( uint16 skill_id , uint16 skill_lv )      { Assert_ret(skill_lv > 0); skill_get (skill->dbs->db[skill_id].element[skill_glv(skill_lv-1)], skill_id); }int skill_get_nk( uint16 skill_id )                { skill_get (skill->dbs->db[skill_id].nk, skill_id); }int skill_get_max( uint16 skill_id )               { skill_get (skill->dbs->db[skill_id].max, skill_id); }int skill_get_range( uint16 skill_id , uint16 skill_lv )    { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].range[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_splash( uint16 skill_id , uint16 skill_lv )   { Assert_ret(skill_lv > 0); skill_get2 ( (skill->dbs->db[skill_id].splash[skill_glv(skill_lv-1)]>=0?skill->dbs->db[skill_id].splash[skill_glv(skill_lv-1)]:AREA_SIZE), skill_id, skill_lv);  }int skill_get_hp( uint16 skill_id ,uint16 skill_lv )        { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].hp[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_sp( uint16 skill_id ,uint16 skill_lv )        { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].sp[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_hp_rate(uint16 skill_id, uint16 skill_lv )    { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].hp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_sp_rate(uint16 skill_id, uint16 skill_lv )    { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].sp_rate[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_state(uint16 skill_id)               { skill_get (skill->dbs->db[skill_id].state, skill_id); }int skill_get_spiritball(uint16 skill_id, uint16 skill_lv)  { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].spiritball[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_itemid(uint16 skill_id, int idx)     { skill_get (skill->dbs->db[skill_id].itemid[idx], skill_id); }int skill_get_itemqty(uint16 skill_id, int idx)    { skill_get (skill->dbs->db[skill_id].amount[idx], skill_id); }int skill_get_zeny( uint16 skill_id ,uint16 skill_lv )      { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].zeny[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_num( uint16 skill_id ,uint16 skill_lv )       { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].num[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_cast( uint16 skill_id ,uint16 skill_lv )      { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].cast[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_delay( uint16 skill_id ,uint16 skill_lv )     { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].delay[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_walkdelay( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].walkdelay[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_time( uint16 skill_id ,uint16 skill_lv )      { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].upkeep_time[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_time2( uint16 skill_id ,uint16 skill_lv )     { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].upkeep_time2[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_castdef( uint16 skill_id )           { skill_get (skill->dbs->db[skill_id].cast_def_rate, skill_id); }int skill_get_weapontype( uint16 skill_id )        { skill_get (skill->dbs->db[skill_id].weapon, skill_id); }int skill_get_ammotype( uint16 skill_id )          { skill_get (skill->dbs->db[skill_id].ammo, skill_id); }int skill_get_ammo_qty( uint16 skill_id, uint16 skill_lv )  { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].ammo_qty[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_inf2( uint16 skill_id )              { skill_get (skill->dbs->db[skill_id].inf2, skill_id); }int skill_get_castcancel( uint16 skill_id )        { skill_get (skill->dbs->db[skill_id].castcancel, skill_id); }int skill_get_maxcount( uint16 skill_id ,uint16 skill_lv )  { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].maxcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_blewcount( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].blewcount[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_mhp( uint16 skill_id ,uint16 skill_lv )       { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].mhp[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_castnodex( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].castnodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_delaynodex( uint16 skill_id ,uint16 skill_lv ){ Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].delaynodex[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_type( uint16 skill_id )              { skill_get (skill->dbs->db[skill_id].skill_type, skill_id); }int skill_get_unit_id ( uint16 skill_id, int flag ){ skill_get (skill->dbs->db[skill_id].unit_id[flag], skill_id); }int skill_get_unit_interval( uint16 skill_id )     { skill_get (skill->dbs->db[skill_id].unit_interval, skill_id); }int skill_get_unit_range( uint16 skill_id, uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].unit_range[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_unit_target( uint16 skill_id )       { skill_get (skill->dbs->db[skill_id].unit_target&BCT_ALL, skill_id); }int skill_get_unit_bl_target( uint16 skill_id )    { skill_get (skill->dbs->db[skill_id].unit_target&BL_ALL, skill_id); }int skill_get_unit_flag( uint16 skill_id )         { skill_get (skill->dbs->db[skill_id].unit_flag, skill_id); }int skill_get_unit_layout_type( uint16 skill_id ,uint16 skill_lv ){ Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].unit_layout_type[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_cooldown( uint16 skill_id, uint16 skill_lv )     { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].cooldown[skill_glv(skill_lv-1)], skill_id, skill_lv); }int skill_get_fixed_cast( uint16 skill_id ,uint16 skill_lv ) {
    on line 171 I have
    int skill_get_max( uint16 skill_id )               { skill_get (skill->dbs->db[skill_id].max, skill_id); }
    https://github.com/HerculesWS/Hercules/blob/master/src/map/skill.c#L171

    which doesn't even has skill_get_time ...

     

    EDIT: skill_get_time is on line 187 ...

    it was from the copyright message on the first line that's why you got skill_get_time on 187 line

     

     

     

     

    int skill_get_itemqty(uint16 skill_id, int idx)   { skill_get (skill->dbs->db[skill_id].amount[idx], skill_id); }

    int skill_get_zeny( uint16 skill_id ,uint16 skill_lv )   { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].zeny[skill_glv(skill_lv-1)], skill_id, skill_lv); }

    int skill_get_num( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].num[skill_glv(skill_lv-1)], skill_id, skill_lv); }

    int skill_get_cast( uint16 skill_id ,uint16 skill_lv )   { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].cast[skill_glv(skill_lv-1)], skill_id, skill_lv); }

    int skill_get_delay( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].delay[skill_glv(skill_lv-1)], skill_id, skill_lv); }

    int skill_get_walkdelay( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].walkdelay[skill_glv(skill_lv-1)], skill_id, skill_lv); }

    171 int skill_get_time( uint16 skill_id ,uint16 skill_lv )   { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].upkeep_time[skill_glv(skill_lv-1)], skill_id, skill_lv); }

    172 . int skill_get_time2( uint16 skill_id ,uint16 skill_lv ) { Assert_ret(skill_lv > 0); skill_get2 (skill->dbs->db[skill_id].upkeep_time2[skill_glv(skill_lv-1)], skill_id, skill_lv); }

     

     

     

    @@4144

     

    no such thing as warning found when i used that.

    ewKZ8Wr.png


  7. rror]: --- failed assertion --------------------------------------------
    [Error]: skill.c:171: 'skill_lv > 0' in function `skill_get_time'
    [Error]: ./map-server [0x8227711]
    [Error]: ./map-server [0x81959ee]
    [Error]: ./map-server [0x81ee6d9]
    [Error]: ./map-server [0x8167bad]
    [Error]: ./map-server [0x817d4e8]
    [Error]: ./map-server [0x8184cae]
    [Error]: ./map-server [0x8121148]
    [Error]: ./map-server [0x80a522a]
    [Error]: ./map-server [0x80ae5ac]
    [Error]: ./map-server [0x8233584]
    [Error]: --- end failed assertion ----------------------------------------
    [Error]: --- failed assertion --------------------------------------------
    [Error]: skill.c:171: 'skill_lv > 0' in function `skill_get_time'
    [Error]: ./map-server [0x8227711]
    [Error]: ./map-server [0x81959ee]
    [Error]: ./map-server [0x81ee6d9]
    [Error]: ./map-server [0x8167bad]
    [Error]: ./map-server [0x817d4e8]
    [Error]: ./map-server [0x8184cae]
    [Error]: ./map-server [0x8121148]
    [Error]: ./map-server [0x80a522a]
    [Error]: ./map-server [0x80ae5ac]
    [Error]: ./map-server [0x8233584]
     


  8. why do i get this warning? how to fix this?

     

    [Warning] npc_event: player's event queue is full, can't add event 'Anti Bot::OnNpcKillEvent' !

     

     

    -	script	Anti Bot	-1,{OnNPCKillEvent:    //if(getgmlevel() > 0) end;    set @kill,@kill+1;    if(@kill >= rand(500,501)) goto Check;    end;//OnPCLoginEvent:Check:    //if(getgmlevel() > 0) end;    getmapxy .@map$, .@x, .@y, 0;    if (.@map$=="jawaii") end;    if(checkcart() == 1) set @cart,1;    if(checkfalcon() == 1) set @falcon,1;    if(checkmount() == 1) set @mount,1;    atcommand "@option 2 0 0";    atcommand "@battleignore";    setoption 0x2,1;    sc_start sc_berserk, 1000000000, 1;    mes "[Anti Bot]";    mes "Bot checking time";    mes "Please input the number you see";    next;    switch( rand(1,9) ) {    case 1:        mes "#################^83F52C##^000000################";        mes "###############^83F52C####^000000################";        mes "#################^83F52C##^000000################";        mes "#################^83F52C##^000000################";        mes "#################^83F52C##^000000################";        mes "#################^83F52C##^000000################";        mes "###############^83F52C######^000000##############";        input @num;        if(@num == 1) break;        atcommand "@kick "+strcharinfo(0);        end;    case 2:        mes "#############^83F52C#######^000000###############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "###################^83F52C##^000000##############";        mes "#############^83F52C#######^000000###############";        mes "############^83F52C##^000000#####################";        mes "############^83F52C##^000000#####################";        mes "############^83F52C#########^000000##############";        input @num;        if(@num == 2) break;        atcommand "@kick "+strcharinfo(0);        end;    case 3:        mes "#############^83F52C#######^000000###############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "###################^83F52C##^000000##############";        mes "#############^83F52C#######^000000###############";        mes "###################^83F52C##^000000##############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "#############^83F52C#######^000000###############";        input @num;        if(@num == 3) break;        atcommand "@kick "+strcharinfo(0);        end;    case 4:        mes "############^83F52C##^000000#####################";        mes "############^83F52C##^000000####^83F52C##^000000###############";        mes "############^83F52C##^000000####^83F52C##^000000###############";        mes "############^83F52C##^000000####^83F52C##^000000###############";        mes "############^83F52C#########^000000##############";        mes "##################^83F52C##^000000###############";        mes "##################^83F52C##^000000###############";        input @num;        if(@num == 4) break;        atcommand "@kick "+strcharinfo(0);        end;    case 5:        mes "############^83F52C########^000000###############";        mes "############^83F52C##^000000#####################";        mes "############^83F52C##^000000#####################";        mes "############^83F52C#######^000000################";        mes "##################^83F52C##^000000###############";        mes "############^83F52C##^000000####^83F52C##^000000###############";        mes "#############^83F52C######^000000################";        input @num;        if(@num == 5) break;        atcommand "@kick "+strcharinfo(0);        end;    case 6:        mes "#############^83F52C#######^000000###############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "############^83F52C##^000000#####################";        mes "############^83F52C########^000000###############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "#############^83F52C######^000000################";        input @num;        if(@num == 6) break;        atcommand "@kick "+strcharinfo(0);        end;    case 7:        mes "############^83F52C########^000000###############";        mes "############^83F52C##^000000####^83F52C##^000000###############";        mes "################^83F52C##^000000#################";        mes "###############^83F52C##^000000##################";        mes "###############^83F52C##^000000##################";        mes "###############^83F52C##^000000##################";        mes "###############^83F52C##^000000##################";        input @num;        if(@num == 7) break;        atcommand "@kick "+strcharinfo(0);        end;    case 8:        mes "#############^83F52C#######^000000###############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "#############^83F52C#######^000000###############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "#############^83F52C#######^000000###############";        input @num;        if(@num == 8) break;        atcommand "@kick "+strcharinfo(0);        end;    case 9:        mes "#############^83F52C#######^000000###############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "#############^83F52C########^000000##############";        mes "###################^83F52C##^000000##############";        mes "############^83F52C##^000000#####^83F52C##^000000##############";        mes "#############^83F52C#######^000000###############";        input @num;        if(@num == 9) break;        atcommand "@kick "+strcharinfo(0);        end;    }    next;    mes "[Anti Bot]";    mes "Thank you for your patience, you can now move on.";    atcommand "@option 0 0 0";    atcommand "@battleignore";    setoption 0x2,0;    sc_end sc_berserk;    percentheal 100,100;    set @kill,0;    if(@cart == 1) {        setcart;        set @cart,0;    }    if(@falcon == 1) {        setfalcon;        set @falcon,0;    }    if(@mount == 1) {        setmount;        set @mount,0;    }    close;}

  9. hello. how can i remove this tarot cooldown? it's like 30~50sec cooldown before i can use tarot to  player B

     

    just to be more specific

     

    player A spam tarots to player B. after 8 or 9 Tarots, player A cant use tarot to player B for 30 seconds..

     

    but after 30 seconds i can spam 8-9 tarots again to player b


  10.  

     

     

    someone help me please!!

     

    help me to make mdef won't affect freeze duration/freeze status

    and every 40 luk there will be a 10% reduce of freeze duration.

     

     

    case SC_FREEZE:

       sc_def = st->mdef*100;

       sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);

       tick_def2 = status_get_luk(src) * -10; //Caster can increase final duration with luk

       break;

    case SC_FREEZE:        sc_def = st->mdef*100;        sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);	tick_def = st->luk*25;        tick_def2 = status_get_luk(src) * -10; //Caster can increase final duration with luk        break;

    helllo! thanks for this but i haven't seen any mdef changes

     

     

    does mdef will still affect the freeze chance/freeze duration?

    sorry , I didn't read the topic well. If you want mdef not affect  freeze status

    you can try to comment out this line 'sc_def = st->mdef*100;' ,

    so it should look like

    case SC_FREEZE:        //sc_def = st->mdef*100;        sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10);	tick_def = st->luk*25;        tick_def2 = status_get_luk(src) * -10; //Caster can increase final duration with luk        break;

    thanks


  11.  

    Old gcc often uses more ram for HPMHook,

    So you can install new gcc, to overcome this problem..

     

    @BackToTopic,

    type this

    make plugin.PluginFileName
    So for itemmap.c, type

    make plugin.itemmap

     

     

    Note: security plugin requires HpmHook to be enabled

    oh demn im screwed o_O

    anyway thanks and i tried this but unfortunately it is the latest

     

    i got 1gb ram. how much gb ram do hpm needs?

     

    [root@@ragnarok ~]# yum install gcc make mysql mysql-devel mysql-server pcre-devel gizlib-devel

    Loaded plugins: fastestmirror

    Loading mirror speeds from cached hostfile

     * base: mirrors.unifiedlayer.com

     * extras: mirrors.unifiedlayer.com

     * updates: repos.lax.quadranet.com

    base | 1.1 kB 00:00

    extras | 2.1 kB 00:00

    updates   | 1.9 kB 00:00

    Setting up Install Process

    Package gcc-4.1.2-55.el5.i386 already installed and latest version

    Package 1:make-3.81-3.el5.i386 already installed and latest version

    Package mysql-5.0.95-5.el5_9.i386 already installed and latest version

    Package mysql-devel-5.0.95-5.el5_9.i386 already installed and latest version

    Package mysql-server-5.0.95-5.el5_9.i386 already installed and latest version

    Package pcre-devel-6.6-9.el5.i386 already installed and latest version

    No package git available.

    Package zlib-devel-1.2.3-7.el5.i386 already installed and latest version

    Nothing to do

     

×
×
  • Create New...

Important Information

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