Jump to content

kevin1109

Members
  • Posts

    15
  • Joined

  • Last visited

Posts posted by kevin1109

  1. I made an item call a function which have player interaction to choose on a menu but it gets the error npc_scriptcont: failed npc->checknear test.

     

    Heres an example of it:

    Item id of Knife -> 1202

    with script on it as:

    callfunc "getSkill";

     

    and the gist of the function of:

    function	script	getSkill	{
    	attachrid(getcharid(3));
    			retryRK:
    					dispbottom "Select a Skill you want.";
    					switch(select("Enchant Blade:Sonic Wave:Death Bound")){
    						case 1: 
    							.@r = 1;
    							break;
    						case 2: 
    							.@r = 2;
    							break;
    						case 3: 
    							.@r = 3;
    							break;
    						default:
    							goto(retryRK);
    					}
    					close;
    <More code...>

    Is there any workaround this or any fix? would greatly appreciate it!

  2.  

    yes, when youve done those fcp can disable the strip status.

    how to remove the timer revert? you said that 

    "basically others do to their src code is dispell the FCP and then strip goes in. in my code i do is dispell the FCP temporarily and revert it back to 1min duration."

        

    so I means is when you got strip with the Stalker with Soul Link (means you been bypass strip even you have FCP Buff) you can just remove the strip status permanently when you are being skill by FCP of Creator. and vice versa

    example

    Stalker ---use strip ---> LK with FCP (then he/she is strip already) ---Creator use FCP on strip LK------> the Strip Status cancelled and replaced by FCP Status and so on the scenario will repeat as long as stalker with soul link strip up players with fcp it stripped right then the strip status cancel out when the player receive another FCP Buff from creator 

    Thank you =) hope you get me sorry for the bad english :P/no1

     

    //Attempts to strip at rate i and duration d
       if( (i = skill_strip_equip(src,bl, location, i, skill_lv, d)) || (skill_id != ST_FULLSTRIP && skill_id != GC_WEAPONCRUSH ) )
           clif_skill_nodamage(src,bl,skill_id,skill_lv,i);
    
            if( !i && ( skill_id == RG_STRIPWEAPON || skill_id == RG_STRIPSHIELD || skill_id == RG_STRIPARMOR || skill_id == RG_STRIPHELM ) )
                {
                    int idx = sd?pc_search_inventory (sd, 7321):-1;
                    if( idx >= 0 )
                    {
                        struct status_change *sc_ = status_get_sc(src);
                        if( sc_->data[SC_SPIRIT] )
                        {
                            if( sc_->data[SC_SPIRIT]->val2 == SL_ROGUE )
                            {
                                if (rnd()%100 >= ii)
                                {                        
                                    if( skill_id == RG_STRIPWEAPON ){
                                        status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER );
                                        skill_strip_equip(src,bl, EQP_WEAPON, ii, skill_lv, d);
                                       // sc_start(src,bl,(sc_type)(SC_CP_WEAPON),100,skill_lv,60000); <-------------------------------- Comment this out
                                    }
                                    else if( skill_id == RG_STRIPSHIELD ){
                                        status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
                                        skill_strip_equip(src,bl, EQP_SHIELD, ii, skill_lv, d);
                                      //  sc_start(src,bl,(sc_type)(SC_CP_SHIELD),100,skill_lv,60000); <-------------------------------- Comment this out
                                    }
                                    else if( skill_id == RG_STRIPARMOR ){
                                        status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
                                        skill_strip_equip(src,bl, EQP_ARMOR, ii, skill_lv, d);
                                       // sc_start(src,bl,(sc_type)(SC_CP_ARMOR),100,skill_lv,60000); <-------------------------------- Comment this out
                                    }
                                    else if( skill_id == RG_STRIPHELM ){
                                        status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
                                        skill_strip_equip(src,bl, EQP_HELM, ii, skill_lv, d);
                                      //  sc_start(src,bl,(sc_type)(SC_CP_HELM),100,skill_lv,60000); <-------------------------------- Comment this out
                                    }
                                        clif_skill_nodamage(src,bl,skill_id,skill_lv,ii);
                                        break;
                                }
                                pc_delitem(sd, idx, 1, 0, 1, LOG_TYPE_NONE);
                                
                            }
                        }
                    }
                }
    
    • Upvote 1
  3. Im having problem with my other players, the client wont open, when i try to open it it just loads for a while, the process is in there in the task manager but then it terminates it. then nothing happens. need help. :o

     

    my Diff

    3 Chat Flood Remove Limit
    8 Custom Window Title
    9 Disable 1rag1 type parameters (Recommended)
    10 Disable 4 Letter UserCharacter Limit
    11 Disable 4 Letter UserID Limit
    12 Disable 4 Letter UserPassword Limit
    13 Disable Ragexe Filename Check (Recommended)
    14 Disable Hallucination Wavy Screen (Recommended)
    15 Disable HShield (Recommended)
    16 Disable Swear Filter
    17 Enable Official Custom Fonts
    19 Enable Title Bar Menu
    20 Extend Chat Box
    22 Extend PM Box
    24 Fix Camera Angles (Recommended)
    28 Increase Headgear ViewID
    32 Increase Zoom Out Max
    33 Always Call SelectKoreaClientInfo() (Recommended)
    34 Enable /showname (Recommended)
    36 Read msgstringtable.txt (Recommended)
    37 Read questid2display.txt (Recommended)
    38 Remove Gravity Ads (Recommended)
    39 Remove Gravity Logo (Recommended)
    40 Restore Login Window (Recommended)
    41 Disable Nagle Algorithm (Recommended)
    42 Skip Resurrection Buttons
    44 Translate Client (Recommended)
    45 Use Custom Aura Sprites
    46 Use Normal Guild Brackets
    47 Use Ragnarok Icon
    48 Use Plain Text Descriptions (Recommended)
    50 Skip License Screen
    51 Ascii & Arial on All Langtypes (Recommended)
    61 Disable Packet Encryption (Recommended)
    63 Use Official Cloth Palettes
    64 @ Bug Fix (Recommended)
    65 Load Custom lua file instead of iteminfo.lub
    67 Remove Quake skill effect
    68 Enable 64k Hairstyle
    200 Enable Multiple GRFs - Embedded
    71 Ignore Missing File Error
    72 Ignore Missing Palette Error
    73 Remove Hourly Announce (Recommended)
    204 Increase Attack Display
    74 Increase Screenshot Quality
    205 Enable Monster tables
    75 Enable Flag Emoticons
    76 Enforce Official Login Background
    77 Enable Custom 3D Bones
    84 Remove Serial Display (Recommended)
    88 Allow space in guild name
    97 Cancel to Login Window (Recommended)
    98 Disable dc_scream.txt
    99 Disable ba_frostjoke.txt
    102 Fix Tetra Vortex
    
    
    

    my clientinfo

    <?xml version="1.0"
    encoding="euc-kr" ?>
    <clientinfo>
    <servicetype>korea</servicetype>
    <servertype>sakray</servertype>
    <connection>
    <display>NoobFuryRO</display> 
    <balloon>NoobFuryRO</balloon>    
    <desc>NoobFuryRO</desc>     
    <address>xx.xx.xx.xxx </address>     
    <port>6900</port>     
    <version>45</version>     
    <langtype>0</langtype>     
    <registrationweb></registrationweb>     
    <aid>
                  <admin>2000001</admin> 
    			  <admin>2000007</admin>
    			  <admin>2000008</admin>
    
    </aid>  
    	<loading>
    		<image>loading01.jpg</image>
    		<image>loading02.jpg</image>
    		<image>loading03.jpg</image>
    		<image>loading04.jpg</image>
    		<image>loading05.jpg</image>
    		<image>loading06.jpg</image>
    		<image>loading07.jpg</image>
    		<image>loading08.jpg</image>
    		<image>loading09.jpg</image>
    		<image>loading10.jpg</image>
    		<image>loading11.jpg</image>
    		<image>loading12.jpg</image>
    		<image>loading13.jpg</image>
    		<image>loading14.jpg</image>
    		<image>loading15.jpg</image>
    		<image>loading16.jpg</image>
    		<image>loading17.jpg</image>
    		<image>loading18.jpg</image>
    		<image>loading19.jpg</image>
    		<image>loading20.jpg</image>
    		<image>loading21.jpg</image>
    		<image>loading22.jpg</image>
    		<image>loading23.jpg</image>
    		<image>loading24.jpg</image>
    		<image>loading25.jpg</image>
    		<image>loading26.jpg</image>
    		<image>loading27.jpg</image>
    		<image>loading28.jpg</image>
    		<image>loading29.jpg</image>
    		<image>loading30.jpg</image>
    		<image>loading31.jpg</image>
    		<image>loading32.jpg</image>
    		<image>loading33.jpg</image>
    		<image>loading34.jpg</image>
    		<image>loading35.jpg</image>
    		<image>loading36.jpg</image>
    		<image>loading37.jpg</image>
    		<image>loading38.jpg</image>
    		<image>loading39.jpg</image>
    	</loading>
    </connection>
    </clientinfo>
    
  4. About my fluxcp im using drawmov with xantaras, where can i change my itemshops order because right now its on the descending order which starts my item from Z-A and also it takes up alot of space from the website. i like them in 2rows per item. need help :o

     


    @bump!


    @bump?

    post-9120-0-50307100-1407245436_thumb.png

  5. my first time doing this so please bare with me. i only have few knowledge on programming C. but what it does is when soul linked you can use single strip on a fcp'd player. basically others do to their src code is dispell the FCP and then strip goes in. in my code i do is dispell the FCP temporarily and revert it back to 1min duration. it is good on woe maps where alot of stalkers arent soul linked. it is also a way to dispel strip by creators.

     

    Now on to Skill.c

    Find

     
         case SC_STRIPACCESSARY: {
            unsigned short location = 0;
            int d = 0;
    

    Add

    case SC_STRIPACCESSARY: {
            unsigned short location = 0;
            int d = 0;
            unsigned char ii = 0;
    

    Find

    //Attempts to strip at rate i and duration d
            if( (i = skill_strip_equip(src,bl, location, i, skill_lv, d)) || (skill_id != ST_FULLSTRIP && skill_id != GC_WEAPONCRUSH ) )
                clif_skill_nodamage(src,bl,skill_id,skill_lv,i);
    

    Add

    ii = i;
            
    //Attempts to strip at rate i and duration d
       if( (i = skill_strip_equip(src,bl, location, i, skill_lv, d)) || (skill_id != ST_FULLSTRIP && skill_id != GC_WEAPONCRUSH ) )
           clif_skill_nodamage(src,bl,skill_id,skill_lv,i);
    
            if( !i && ( skill_id == RG_STRIPWEAPON || skill_id == RG_STRIPSHIELD || skill_id == RG_STRIPARMOR || skill_id == RG_STRIPHELM ) )
                {
                    int idx = sd?pc_search_inventory (sd, 7321):-1;
                    if( idx >= 0 )
                    {
                        struct status_change *sc_ = status_get_sc(src);
                        if( sc_->data[SC_SPIRIT] )
                        {
                            if( sc_->data[SC_SPIRIT]->val2 == SL_ROGUE )
                            {
                                if (rnd()%100 >= ii)
                                {                        
                                    if( skill_id == RG_STRIPWEAPON ){
                                        status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER );
                                        skill_strip_equip(src,bl, EQP_WEAPON, ii, skill_lv, d);
                                        sc_start(src,bl,(sc_type)(SC_CP_WEAPON),100,skill_lv,60000);
                                    }
                                    else if( skill_id == RG_STRIPSHIELD ){
                                        status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER );
                                        skill_strip_equip(src,bl, EQP_SHIELD, ii, skill_lv, d);
                                        sc_start(src,bl,(sc_type)(SC_CP_SHIELD),100,skill_lv,60000);
                                    }
                                    else if( skill_id == RG_STRIPARMOR ){
                                        status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER );
                                        skill_strip_equip(src,bl, EQP_ARMOR, ii, skill_lv, d);
                                        sc_start(src,bl,(sc_type)(SC_CP_ARMOR),100,skill_lv,60000);
                                    }
                                    else if( skill_id == RG_STRIPHELM ){
                                        status_change_end( bl, SC_CP_HELM, INVALID_TIMER );
                                        skill_strip_equip(src,bl, EQP_HELM, ii, skill_lv, d);
                                        sc_start(src,bl,(sc_type)(SC_CP_HELM),100,skill_lv,60000);
                                    }
                                        clif_skill_nodamage(src,bl,skill_id,skill_lv,ii);
                                        break;
                                }
                                pc_delitem(sd, idx, 1, 0, 1, LOG_TYPE_NONE);
                                
                            }
                        }
                    }
                }
    

    Find

    case AM_CP_HELM:
    		{
    			unsigned int equip[] = {EQP_WEAPON, EQP_SHIELD, EQP_ARMOR, EQP_HEAD_TOP};
    			
    			if( sd && ( bl->type != BL_PC || ( dstsd && pc_checkequip(dstsd,equip[skill_id - AM_CP_WEAPON]) < 0 ) ) ){
    				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
    				map_freeblock_unlock(); // Don't consume item requirements
    				return 0;
    			}
    			status_change_end(bl, scid, INVALID_TIMER);
    			clif_skill_nodamage(src,bl,skill_id,skill_lv,
    				sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
    		}
    		break;
    

    Edit

    case AM_CP_HELM:
    		{
    			unsigned int equip[] = {EQP_WEAPON, EQP_SHIELD, EQP_ARMOR, EQP_HEAD_TOP};
    			enum sc_type scid = (sc_type)(SC_STRIPWEAPON + (skill_id - AM_CP_WEAPON));
    			
    			if( sd && ( bl->type != BL_PC /*|| ( dstsd && pc_checkequip(dstsd,equip[skill_id - AM_CP_WEAPON]) < 0 )*/ ) ){
    				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
    				map_freeblock_unlock(); // Don't consume item requirements
    				return 0;
    			}
    			status_change_end(bl, scid, INVALID_TIMER);
    			clif_skill_nodamage(src,bl,skill_id,skill_lv,
    				sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
    		}
    		break;
    

    Find

    case CR_FULLPROTECTION:
    		{
    			unsigned int equip[] = {EQP_WEAPON, EQP_SHIELD, EQP_ARMOR, EQP_HEAD_TOP};
    			int i_eqp, s = 0, skilltime = skill_get_time(skill_id,skill_lv);
    
    			for (i_eqp = 0; i_eqp < 4; i_eqp++) {
    				if( bl->type != BL_PC || ( dstsd && pc_checkequip(dstsd,equip[i_eqp]) < 0 ) )
    					continue;
    				sc_start(src,bl,(sc_type)(SC_CP_WEAPON + i_eqp),100,skill_lv,skilltime);
    				s++;
    			}
    			if( sd && !s ){
    				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
    				map_freeblock_unlock(); // Don't consume item requirements
    				return 0;
    			}
    			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
    		}
    		break;
    

    Edit

    case CR_FULLPROTECTION:
    		{
    			unsigned int equip[] = {EQP_WEAPON, EQP_SHIELD, EQP_ARMOR, EQP_HEAD_TOP};
    			int i_eqp, s = 0, skilltime = skill_get_time(skill_id,skill_lv);
    
    			for (i_eqp = 0; i_eqp < 4; i_eqp++) {
    				if( bl->type != BL_PC /*|| ( dstsd && pc_checkequip(dstsd,equip[i_eqp]) < 0 )*/ )
    					continue;
    				status_change_end(bl, (sc_type)(SC_STRIPWEAPON + i), INVALID_TIMER);
    				status_change_end(bl, (sc_type)(SC_STRIPHELM + i), INVALID_TIMER);
    				status_change_end(bl, (sc_type)(SC_STRIPSHIELD + i), INVALID_TIMER);
    				status_change_end(bl, (sc_type)(SC_STRIPARMOR + i), INVALID_TIMER);
    				sc_start(src,bl,(sc_type)(SC_CP_WEAPON + i_eqp),100,skill_lv,skilltime);
    				s++;
    			}
    			if( sd && !s ){
    				clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
    				map_freeblock_unlock(); // Don't consume item requirements
    				return 0;
    			}
    			clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
    		}
    		break;
    

    Sorry if its messy..

    • Upvote 2
×
×
  • Create New...