Jump to content

Mabuhay

Members
  • Posts

    446
  • Joined

  • Last visited

  • Days Won

    34

Posts posted by Mabuhay

  1. // I only use R hand check since L hand may equip with shield.
    // And too lazy to add more checks.
    prontera,160,160,0	script	Click Me	123,{
    	.@item = 501; // TCG ID here.
    	.@amnt = 5; // TCG Amount here.
    	if ( countitem(.@item) < .@amount ) {
    		mes "I need 5 "+getitemname(.@item)+" to proceed.";
    		close;
    	}
    	.@equipid = getequipid(EQI_HAND_R);
    	if ( !.@equipid || !getequipisequiped(EQI_HAND_R) ) {
    		mes "Please equip your weapon.";
    		close;
    	}
    	if ( !getequipisenableref(EQI_HAND_R) ) {
    		mes "This item is not refinable.";
    		close;
    	}
    	if ( getequipweaponlv(EQI_HAND_R) > 4 ) {
    		mes "I only refine Lv 1 - 4 weapons.";
    		close;
    	}
        if ( getequiprefinerycnt(EQI_HAND_R) >= 10 ) { // Added +10 check
        	mes "This item is already +10";
            close;
        }
    	delitem .@item, .@amount;
    	while ( getequiprefinerycnt(EQI_HAND_R) < 10 ) {
    		successrefitem EQI_HAND_R;
    	}
    	end;
    }

    Not tested. But should work.

     

    Edit : Added +10 item check

  2. 6 hours ago, Skits said:

    What do you mean by animation problems. I wanted to use a thief sprite as a mob

    Sorry, I thought you wanted an NPC to be a MOB. I didnt fully realize what you ask. 

    If you are asking how to make a player-looking mob, yes it is possible. 

    1. Create a mob in mob_db. (You should know how to add custom mob)

    2. Change the mob's looks into a player using db/mob_avail.txt

     

    // Mob Availability and Alias Database
    //
    // Structure of Database:
    // MobID,SpriteID{,Equipment}
    //
    // 01. MobID        Mob ID to change.
    // 02. SpriteID     Mob ID which will be sent to the client instead of MobID.
    //                  If 0, the mob becomes unavailable for use.
    // 03. Equipment    Item ID of pet equipment (must be available for pet counterpart, or this will cause problems).
    //
    // To disguise a mob as a player:
    // MobID,SpriteID,Sex,Hair_Style,Hair_Color,Weapon,Shield,Head_Top,Head_Middle,Head_Bottom,Option,Dye_Color
    //
    // SpriteID is a job class value.
    // Weapon and Shield uses Item ID, while Head uses View ID.
    // Option for carts only works if you compiled your server for a packet version before 2012-02-01

     

    Or the easiest way is use lhz mobs.. they pretty much looks like a player already.

  3. 2 minutes ago, Kami675 said:

    Tried replacing an existing mobs name with HRIST and it is still giivng me porings ?

    I see the problem is all npc becomes poring. I didnt really checked the image. and yes I've encountered this before also. This is caused by mistakes you did somewhere in lua. I suggest reverting everything then double check if you are editing the right files with the right formats. Sometimes the last lines wont require commas at the end and such.

  4. 1 hour ago, Hale said:

    I've been testing a lot, changing then compiling but it seems doesn't work. Any idea how?? This is from my src/map/battle.cpp

    Default:

    
    case MG_FIREBOLT:
    					case MG_COLDBOLT:
    					case MG_LIGHTNINGBOLT:
    						if (sc && sc->data[SC_SPELLFIST] && mflag&BF_SHORT)  {
    							skillratio += (sc->data[SC_SPELLFIST]->val4 * 100) + (sc->data[SC_SPELLFIST]->val1 * 50) - 100; // val4 = used bolt level, val2 = used spellfist level. [Rytech]
    							ad.div_ = 1; // ad mods, to make it work similar to regular hits [Xazax]
    							ad.flag = BF_WEAPON|BF_SHORT;
    							ad.type = DMG_NORMAL;
    						}
    						break;

    1st Change:

    
    case MG_FIREBOLT:
    					case MG_COLDBOLT:
    					case MG_LIGHTNINGBOLT:
    						if (sc && sc->data[SC_SPELLFIST] && mflag&BF_SHORT)  {
    							skillratio += (sc->data[SC_SPELLFIST]->val4 * 100) + (sc->data[SC_SPELLFIST]->val1 * 50) - 200; // val4 = used bolt level, val2 = used spellfist level. [Rytech]
    							ad.div_ = 1; // ad mods, to make it work similar to regular hits [Xazax]
    							ad.flag = BF_WEAPON|BF_SHORT;
    							ad.type = DMG_NORMAL;
    						}
    						break;

    2nd Change:
     

    
    case MG_FIREBOLT:
    					case MG_COLDBOLT:
    					case MG_LIGHTNINGBOLT:
    						if (sc && sc->data[SC_SPELLFIST] && mflag&BF_SHORT)  {
    							skillratio += (sc->data[SC_SPELLFIST]->val4 * 50) + (sc->data[SC_SPELLFIST]->val1 * 25) - 100; // val4 = used bolt level, val2 = used spellfist level. [Rytech]
    							ad.div_ = 1; // ad mods, to make it work similar to regular hits [Xazax]
    							ad.flag = BF_WEAPON|BF_SHORT;
    							ad.type = DMG_NORMAL;
    						}
    						break;


    After doing this three modifications, the damage isn't reducing. Can someone help me with this?

    Have you tried editing in db/skill_damage_db.txt first?

    // Examples:
    // MC_MAMMONITE,BL_PC,1,50 // In normal maps, players deal +50% damage to other players with Mammonite.
    // MO_EXTREMITYFIST,BL_PC,6,-50 // In PVP and GVG, players deal -50% (half) damage to other players with Asura Strike.
    // AB_ADORAMUS,BL_PC,6,50,0,10,15 // In PVP and GVG, players deal +50% damage to other players, +0% to mobs, +10% to bosses, and +15% to other with Adoramus.

     

  5. 2 minutes ago, Kami675 said:

    What do you mean by that? There is no other mob by the name of "HRIST" and no other mob utilizing the id "32001"

    i literally meant that you will look for 'existing' mobs and replace the files to your custom mob.

    There are mobs in the client that aren't used anywhere in-game. I've encountered similar problem with you before and the solution that worked for me is to replace a mob that isn't used anywhere in-game but existing in the client files.

  6. Did you try changing this part?

    conf/char_athena.conf

    // Restrict character deletion by email address or birthdate.
    // This restricts players from changing the langtype and deleting characters.
    // Defaults based on client date.
    // 1: Email address
    // 2: Birthdate
    // 3: Email address or Birthdate
    // IMPORTANT!
    // - This config only works for clients that send 0x0068 or 0x01fb for delete request.
    // - Use langtype 1 for newer clients (2013+), to use 0x01fb.
    // - Clients that are not using 0x0068 or 0x01fb, only use birthdate (YYMMDD) as default.
    char_del_option: 2

    change to 1 for e-mail.

     

    PS: Rest of character deletion settings are also there,..

     

    Check this topic as well.. Might help you:

     

  7. Instanced Emperium Test Breaker + Ranker/Ladder


    As the title says.

    Records break time of the player.

    Ranks them with who had the fastest time.

    Uses only a custom emperium mob duplicate.

     

    The script would be as is. Use this freely and edit it as much as you need.

     

    Compatibility is your responsibility.

    No backward compatibility support.

     

    Enjoy!


    • Submitter
    • Submitted
      01/23/2020
    • Category
    • Video
    • Content Author
      Mabuhay

     

    • Upvote 1
  8. I dont think its a bug?

    Have you checked this?

    	case MO_EXTREMITYFIST:
    		{
    			struct block_list *mbl = bl; // For NJ_ISSEN
    			short x, y, i = 2; // Move 2 cells (From target)
    			short dir = map_calc_dir(src,bl->x,bl->y);
    
    			skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
    			if (skill_id == MO_EXTREMITYFIST) {
    				status_set_sp(src, 0, 0);
    				status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER);
    				status_change_end(src, SC_BLADESTOP, INVALID_TIMER);
    #ifdef RENEWAL
    				sc_start(src,src,SC_EXTREMITYFIST2,100,skill_lv,skill_get_time(skill_id,skill_lv));
    #endif
    			} else {
    				status_set_hp(src, 1, 0);
    				status_change_end(src, SC_NEN, INVALID_TIMER);
    				status_change_end(src, SC_HIDING, INVALID_TIMER);
    			}
    			if (skill_id == MO_EXTREMITYFIST) {
    				mbl = src; // For MO_EXTREMITYFIST
    				i = 3; // Move 3 cells (From caster)
    			}
    			if (dir > 0 && dir < 4)
    				x = -i;
    			else if (dir > 4)
    				x = i;
    			else
    				x = 0;
    			if (dir > 2 && dir < 6)
    				y = -i;
    			else if (dir == 7 || dir < 2)
    				y = i;
    			else
    				y = 0;
    			// Ashura Strike still has slide effect in GVG
    			if ((mbl == src || (!map_flag_gvg2(src->m) && !map_getmapflag(src->m, MF_BATTLEGROUND))) &&
    				unit_movepos(src, mbl->x + x, mbl->y + y, 1, 1)) {
    				clif_blown(src);
    				clif_spiritball(src);
    			}
    		}
    		break;

     

×
×
  • Create New...