Jump to content

Blazing Spear

Members
  • Posts

    208
  • Joined

  • Last visited

Posts posted by Blazing Spear

  1. ow i missed the topic already let me try this :D

    AnnieRuru

    - can we add function like when player already have killing spree title have 3 when died -1 and auto remove the title to the character

    - and add some reward to the last title owned by the player

    - and is this work with pvp ladder? 

     

    it is @karazu ask me to view this topic from hercules forum
    otherwise I don't really care much about this forum unless someone from hercules ask me to =/

     

    Annie is needed

    why everyone always think about me when nobody else can script  <_<
    @Skorm, @Capuche and @Missingno also can script very well,
    next time ask them as they are rathena scripting leaders


    screw that script, use mine
    [paste=5oruqcujcc6h]
    it hurt my eyes to see so many query_sql in the script,
    I rather rewrite this from scratch using string manipulations


    @Elektrochemiestry
    yeah ... it also means,
    you can get a title and go to war without fearing anyone invite you into party because it helps you auto-reject  :P

     

    how can i add when player died -1 kill auto delete the title to the player or degrade the title example from holyshit to godlike

    what do you mean by this ...
    this is a UNLOCK a title, right ?
    why do you want to steal the player's effort away after they have already unlock the title ?

     

    This function is for PVP only i wanna add to like refine ranking title

    the most successful refine acquired like master refiner or somethig that related

  2. 	if( tsc && tsc->data[SC_DEVOTION] && skill_id != PA_PRESSURE ) {
    		struct status_change_entry *sce = tsc->data[SC_DEVOTION];
    		struct block_list *d_bl = map_id2bl(sce->val1);
    
    		if( d_bl && (
    			(d_bl->type == BL_MER && ((TBL_MER*)d_bl)->master && ((TBL_MER*)d_bl)->master->bl.id == bl->id) ||
    			(d_bl->type == BL_PC && ((TBL_PC*)d_bl)->devotion[sce->val2] == bl->id)
    			) && check_distance_bl(bl, d_bl, sce->val3) )
    		{
    			if(!rmdamage){
    				clif_damage(d_bl,d_bl, gettick(), 0, 0, damage, 0, 0, 0);
    				status_fix_damage(NULL,d_bl, damage, 0);
    			} else {//Reflected magics are done directly on the target not on paladin
    				//This check is only for magical skill.
    				//For BF_WEAPON skills types track var rdamage and function battle_calc_return_damage
    				clif_damage(bl,bl, gettick(), 0, 0, damage, 0, 0, 0);
    				status_fix_damage(bl,bl, damage, 0);
    			}
    		}
    		else {
    			status_change_end(bl, SC_DEVOTION, INVALID_TIMER);
    			if( !dmg.amotion )
    				status_fix_damage(src,bl,damage,dmg.dmotion);
    		}
    	}
    

    Edit that code :D

  3. hm use onpckill ? sorry i don't understand at all but that could do it o:

     
    using onpckill for pvp i think i already tried its working but i dont know why till Killing Spree only
     
    what you dont understand?
     

    This is a good concept 

     

    I already have that long time ago and i not expert to implement it XD

     

    We need Expert Scripter Here :)

  4. //CREATE TABLE IF NOT EXISTS `title` (
    //  `id` int(11) NOT NULL AUTO_INCREMENT,
    //  `title` varchar(255) NOT NULL,
    //  PRIMARY KEY (`id`)
    //) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9;
    //
    //CREATE TABLE IF NOT EXISTS `title_player` (
    //  `id` int(3) NOT NULL,
    //  `char_id` int(6) NOT NULL,
    //  `name` varchar(255) NOT NULL
    //) ENGINE=MyISAM DEFAULT CHARSET=latin1;
    
    rachel,163,122,4	script	name	1002,{
    
    	//======== Configuration =======
    
    	set @npc_name$,""; // NPC's name
    	set @gm_level,99;  // GM level required
    
    	//==============================
    
    	if(getgmlevel()>=@gm_level) if(select("Normal","Admin") == 2) goto L_admin;
    	mes "["+@npc_name$+"]";
    	mes "Hi, I can give you titles.";
    	next;
    	mes "["+ @npc_name$ +"]";
    	mes "Here is the list.";
    	query_sql("SELECT `a1`.`id`,`a1`.`title` FROM `title` `a1` WHERE EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ getcharid(0) +") ORDER BY `a1`.`title` ASC",@title_id,@title$);
    	query_sql("SELECT `a1`.`title` FROM `title` `a1` WHERE NOT EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ getcharid(0) +") ORDER BY `a1`.`title`",@title_no$);
    	query_sql("SELECT COUNT(*) FROM `title` `a1` WHERE EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ getcharid(0) +")",@title_count);
    	query_sql("SELECT COUNT(*) FROM `title` `a1` WHERE NOT EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ getcharid(0) +")",@title_nocount);
    	if(!@title_count && !@title_nocount) goto L_notitle;
    		
    	L_normal:
    		menu "Avaible titles ("+ @title_count +")",L_avaible,"Unaivable titles ("+ @title_nocount +")",L_unaivable,"Remove my title",L_remove,"Cancel",-;
    				close;
    		
    			L_avaible:
    				if(!@title_count) goto L_normal;
    				set @menu$,"";
    				for(set i,0;i<@title_count;set i,i+1)
    					set @menu$,(@menu$=="") ? @title$[i] : @menu$ +":"+ @title$[i];
    				set @menu$,@menu$ +":Back";
    				menu @menu$,-;
    				set @title_choice,@menu-1;
    				if(@title_choice==@title_count) goto L_normal;
    				next;
    				mes "["+ @npc_name$ +"]";
    				mes "The title : \"" + @title$[@title_choice] + "\" is avaible to you.";
    				if(select("Change my title","Cancel")==2) close;
    				atcommand "@fakename "+@title$[@title_choice] + strcharinfo(0);
    				set title$,@title$[@title_choice];
    				next;
    				mes "["+ @npc_name$ +"]";
    				mes "That's it.";
    				mes "Bye.";
    				close;
    				
    			L_unaivable:
    				if(!@title_nocount) goto L_normal;
    				set @menu$,"";
    				for(set i,0;i<@title_nocount; set i,i+1)
    					set @menu$,(@menu$=="") ? "^FF0000"+ @title_no$[i] +"^000000" : @menu$ +":^FF0000"+ @title_no$[i] +"^000000";
    				set @menu$,@menu$ +":Back";
    				menu @menu$,-;
    				goto L_normal;
    			
    			L_remove:
    				if(title$=="") {
    					mes "You don't have any title.";
    					close;
    				}
    				mes "That's it.";
    				atcommand "@fakename";
    				set title$,"";
    				close;
    		
    	L_admin:
    		query_sql("SELECT COUNT(*) FROM `title`",@title_count);
    		mes "Hi.";
    		mes "What do you want to do?";
    		menu "Delete a title",-,"Add a title",addT,"Modify a title",modifyT,"Modify a player",modifyP;
    				next;
    				mes "["+ @npc_name$ +"]";
    				mes "What title do you want to delete?";
    				if(!@title_count)
    					goto L_noTitle;
    				query_sql("SELECT * FROM `title`",@title_id,@title$);
    	  			set @menu$,"";
    				for(set i,0;i<@title_count;set i,i+1)
    					set @menu$,(@menu$=="") ? @title$[i] : @menu$ +":"+ @title$[i];
    				set @menu$,@menu$ +":Back";
    				menu @menu$,-;
    				set @title_choice,@menu-1;
    				if(@title_choice==@title_count) { next; mes "["+ @npc_name$ +"]"; goto L_admin; }
    				next;
    				mes "["+@npc_name$+"]";
    				mes "Are you sure you want to delete : \""+ @title$[@title_choice] +"\"?";
    				if(select("No","Yes")==2) {
    					next;
    					mes "["+ @npc_name$ +"]";
    					mes "The title has been deleted!";
    					query_sql("DELETE FROM `title` WHERE `id`="+ @title_id[@title_choice]);
    					query_sql("DELETE FROM `title_player` WHERE `id`="+ @title_id[@title_choice]);
    					goto L_admin;
    				}
    				next;
    				mes "["+ @npc_name$ +"]";
    				goto L_admin;
    			
    			addT:
    				next;
    				mes "["+ @npc_name$ +"]";
    				mes "What title do you want to add?";
    				next;
    				input @addT$;
    				if(@addT$==" ") { next; mes "["+ @npc_name$ +"]"; goto L_admin; }
    				mes "["+ @npc_name$ +"]";
    				if(!callfunc("Add a title",@addT$)) {
    					mes "This title is already in use!";
    					goto L_admin;
    				}
    				mes "That's it!";
    				goto L_admin;
    							
    			modifyT:
    				next;
    				mes "["+@npc_name$+"]";
    				if(!@title_count)
    					goto L_noTitle;
    				mes "What title do you want to modify?";
    				query_sql("SELECT * FROM `title`",@title_id,@title$);
    				set @menu$,"";
    				for(set i,0;i<@title_count;set i,i+1)
    					set @menu$,(@menu$=="") ? @title$[i] : @menu$ +":"+ @title$[i];
    				set @menu$,@menu$ +":Back";
    				menu @menu$,-;
    				set @title_choice,@menu-1;
    				if(@title_choice==@title_count) { next; mes "["+ @npc_name$ +"]"; goto L_admin; }
    				mes "Currently modifying : "+ @title$[@title_choice] +".";
    				mes "Those players have this title avaible.";
    				fastMod:
    					query_sql("SELECT COUNT(*) FROM `title_player` WHERE `id`="+ @title_id[@title_choice],@title_player_count);
    					query_sql("SELECT `char_id`,`name` FROM `title_player` WHERE `id`="+ @title_id[@title_choice],@title_player_charid,@title_player_name$);
    					if(!@title_player_count)
    						mes "No player.";
    					for(set i,0;i<@title_player_count;set i,i+1)
    					mes "- "+ @title_player_name$[i];
    					menu "Add a player",L_addP,"Remove a player",remP,"Modify the title's name",modT,"Modify another title",modifyT,"Return to main menu",-;
    							next;
    							mes "["+ @npc_name$ +"]";
    							goto L_admin;
    						
    						L_addP:
    							next;
    							mes "["+ @npc_name$ +"]";
    							mes "Please, enter the player's name.";
    							input @addP$;
    							if(@addP$==" ") goto fastMod;
    							next;
    							mes "["+ @npc_name$ +"]";
    							switch(callfunc("Add a player",@title$[@title_choice],@addP$)) {
    								case 1:
    									mes "The player doesn't exist.";
    									break;
    								
    								case 2:
    									mes "The title doesn't exist.";
    									break;
    
    								case 3:
    									mes "Player has already this title avaible.";
    									break;
    									
    								default:
    									mes "That's it!";
    									break;
    							}
    							next;
    							mes "["+ @npc_name$ +"]";
    							goto fastMod;
    		
    						remP:
    							if(!@title_player_count) goto fastMod;
    							mes "What player do you want to remove?";
    							set @menu$,"";
    							for(set i,0;i<@title_player_count;set i,i+1)
    								set @menu$,(@menu$=="") ? @title_player_name$[i] : @menu$ +":"+ @title_player_name$[i];
    							set @menu$,@menu$ +":Back";			
    							menu @menu$,-;
    							set @title_player_choice,@menu-1;
    							if(@title_player_choice==@title_player_count) { next; mes "["+ @npc_name$ +"]"; goto fastMod; }
    							query_sql("DELETE FROM `title_player` WHERE `id`="+ @title_id[@title_choice] +" AND `char_id`="+ @title_player_charid[@title_player_choice] +" AND `name`='"+ @title_player_name$[@title_player_choice] +"'");
    							next;
    							mes "["+ @npc_name$ +"]";
    							mes "That's it!";
    							goto fastMod;
    	
    						modT:
    							next;
    							mes "["+ @npc_name$ +"]";
    							mes "Title : \""+ @title$[@title_choice] +"\".";
    							if(select("Modify","Back")==2) { next; mes "["+ @npc_name$ +"]"; goto fastMod; }
    							next;
    							mes "["+ @npc_name$ +"]";
    							mes "Enter the new title.";
    							input @newT$;
    							next;
    							for(set i,0;i<@title_count;set i,i+1) {
    								if(@title$[i]!=@newT$) continue;
    								mes "["+ @npc_name$ +"]";
    								mes "This title is already in use!";
    								goto modT;
    							}
    							if(select("Save names","Don't save names") == 2 ) 
    								query_sql("DELETE FROM `title_player` WHERE `id`="+ @title_id[@title_choice]);
    							mes "["+ @npc_name$ +"]";
    							mes "That's it!";
    							query_sql("UPDATE `title` SET `title`='"+ @newT$ +"' WHERE `id`="+ @title_id[@title_choice]);
    							query_sql("SELECT * FROM `title`",@title_id,@title$);
    							goto fastMod;
    							
    			modifyP:
    				next;
    				mes "["+ @npc_name$ +"]";
    				query_sql("SELECT COUNT(DISTINCT `char_id`) FROM `title_player`",@player_count);
    				mes ((@modGP) ? "What player do you want to add?" : "What player do you want to modify?");
    				query_sql("SELECT `char_id`,`name`,COUNT(*) FROM `title_player` GROUP BY `char_id` ORDER BY `name` ASC",@title_player_charid,@title_player_name$,@title_player_count);
    				fastModP:
    				set @menu$,"";
    				for(set i,0;i<@player_count;set i,i+1)
    					set @menu$,(@menu$=="") ? @title_player_name$[i] +"("+ @title_player_count[i] +")" : @menu$ +":"+ @title_player_name$[i] +"("+ @title_player_count[i] +")";
    				set @menu$,(@menu$=="") ? "Type a name" : @menu$ +":Type a name";
    				set @menu$,@menu$ +":Back";
    				menu @menu$,-;
    				set @title_player_choice,@menu-1;
    				if(@title_player_choice==@player_count) {
    					input @title_player_name$[@title_player_choice];
    					query_sql("SELECT `char_id` FROM `char` WHERE `name`='"+ @title_player_name$[@title_player_choice] +"'",@charid);
    					if(!@charid[0]) {
    						mes "Player doesn't exist.";
    						goto fastModP;
    					}
    					set @title_player_charid[@title_player_choice],@charid[0];
    				} else if(@title_player_choice==@player_count+1 && !@modGP) {
    					next;
    					mes "["+ @npc_name$ +"]";
    					goto L_admin;
    				}
    				fastModPP:
    				next;
    				mes "["+ @npc_name$ +"]";
    				mes "Currently modifying : "+ @title_player_name$[@title_player_choice] +".";
    				menu "Add a title",-,"Remove a title",L_removeTP,"Modify another player",modifyP,"Return to main menu",L_admin;
    						query_sql("SELECT COUNT(*) FROM `title` `a1` WHERE NOT EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ @title_player_charid[@title_player_choice] +")",@title_nocount);
    						if(!@title_nocount) {
    							mes "This player has all titles avaible.";
    							goto fastModPP;
    						}
    						query_sql("SELECT `a1`.`id`,`a1`.`title` FROM `title` `a1` WHERE NOT EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ @title_player_charid[@title_player_choice] +") ORDER BY `a1`.`title` ASC",@title_noid,@title_no$);
    						mes "Add title ...";
    						set @menu$,"";
    						for(set i,0;i<@title_nocount;set i,i+1)
    							set @menu$,(@menu$=="") ? @title_no$[i] : @menu$ +":"+ @title_no$[i];
    						set @menu$,@menu$ +":Back";
    						menu @menu$,-;
    						set @title_choice,@menu-1;
    						if(@title_choice==@title_nocount) goto fastModPP;
    						callfunc("Add a player",@title_no$[@title_choice],@title_player_name$[@title_player_choice]);
    						mes "Title \""+ @title_no$[@title_choice] +"\" added for player \""+ @title_player_name$[@title_player_choice] +"\".";
    						goto fastModPP;
    						
    					L_removeTP:
    						query_sql("SELECT COUNT(*) FROM `title` `a1` WHERE EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ @title_player_charid[@title_player_choice] +")",@title_count);
    						if(!@title_count) {
    							mes "This player doesn't have any title.";
    							goto fastModPP;
    						}
    						query_sql("SELECT `a1`.`id`,`a1`.`title` FROM `title` `a1` WHERE EXISTS(SELECT `id`,`char_id` FROM `title_player` WHERE `id`=`a1`.`id` AND `char_id`="+ @title_player_charid[@title_player_choice] +") ORDER BY `a1`.`title` ASC",@title_id,@title$);
    						mes "Remove the title ...";
    						set @menu$,"";
    						for(set i,0;i<@title_count;set i,i+1)
    							set @menu$,(@menu$=="") ? @title$[i] : @menu$ +":"+ @title$[i];
    						set @menu$,@menu$ +":Back";
    						menu @menu$,-;
    						set @title_choice,@menu-1;
    						if(@title_choice==@title_count) goto fastModPP;
    						query_sql("DELETE FROM `title_player` WHERE `id`="+ @title_id[@title_choice] +" AND `char_id`="+ @title_player_charid[@title_player_choice]);
    						mes "Title \""+ @title$[@title_choice] +"\" removed for player \""+ @title_player_name$[@title_player_choice] +"\".";
    						goto fastModPP;
    					
    	L_noTitle:
    		mes "I don't have any title.";
    		close;
    
    	OnPCLoginEvent:
    		if(title$!="")
    			atcommand "@fakename "+$titles$[title] +strcharinfo(0);
    		end;
    }
    
    function	script	Add a title	{ // callfunc "Add a title","Title name"
    	query_sql("SELECT COUNT(*) FROM `title`",@title_count);
    	query_sql("SELECT * FROM `title`",@title_id,@title$);
    	for(set i,0;i<@title_count;set i,i+1) {
    		if(getarg(0)!=@title$[i]) continue;
    		return 0;
    	}
    	query_sql("INSERT INTO `title` VALUES(NULL,'"+ getarg(0) +"')");
    	return 1;
    }
    
    function	script	Add a player	{ // callfunc "Add a player","Title name","Player name"
    	query_sql("SELECT COUNT(*) FROM `char` WHERE `name`='"+ getarg(1) +"'",@title_charid_check);
    	query_sql("SELECT `char_id` FROM `char` WHERE `name`='"+ getarg(1) +"'",@title_charid);
    	if(!@title_charid_check) return 1;
    	query_sql("SELECT COUNT(*) FROM `title` WHERE `title`='"+ getarg(0) +"'",@title_check);
    	if(!@title_check) return 2;
    	query_sql("SELECT `char_id`,`name` FROM `title_player` WHERE `id`="+ @title_id[0],@title_player_charid,@title_player_name$);
    	query_sql("SELECT `id` FROM `title` WHERE `title`='"+ getarg(0) +"'",@title_id);
    	query_sql("SELECT COUNT(*) FROM `title_player` WHERE `id`="+ @title_id[0],@title_player_count);
    		for(set i,0;i<@title_player_count;set i,i+1) {
    			if(@title_charid[0]!=@title_player_charid[i]) continue;
    			return 3;
    		}
    	query_sql("INSERT INTO `title_player` VALUES("+ @title_id[0] +","+ @title_charid[0] +",'"+ getarg(1) +"')");
    	return 0;
    }
    
    function	script	Has Title	{ // callfunc "Has title","Title name",char_id
    	query_sql("SELECT `id` FROM `title` WHERE `title`='"+ getarg(0) +"'",@title_id);
    	query_sql("SELECT COUNT(*) FROM `title_player` WHERE `id`="+ @title_id[0] +" AND `char_id`="+ getarg(1),@title_check);
    	if(@title_check)
    		return 1;
    	else
    		return 0;
    }
    
    -	script	test	-1,{
    OnPCKillEvent:
        set Kill,Kill+1;
        if(callfunc("Has Title","[KILLING SPREE]",getcharid(0)) || callfunc("Has Title","[DOMINATING]",getcharid(0)) || callfunc("Has Title","[MEGAKILL]",getcharid(0)) || callfunc("Has Title","[UNSTOPPABLE]",getcharid(0)) || callfunc("Has Title","[WICKEDSICK]",getcharid(0)) || callfunc("Has Title","[MONSTERKILL]",getcharid(0)) || callfunc("Has Title","[GODLIKE]",getcharid(0)) || callfunc("Has Title","[HOLYSHIT]",getcharid(0))) end;
        if(Kill==3) {
            if(!callfunc("Add a player","[KILLING SPREE]",strcharinfo(0)))
                announce "You unlock [KILLING SPREE] Title",bc_self;
            else
                debugmes "Incorrect title [KILLING SPREE].";
        } else if(Kill==4) {
            if(!callfunc("Add a player","[DOMINATING]",strcharinfo(0)))
                announce "You unlock [DOMINATING] Title",bc_self;
            else
                debugmes "Incorrect title [DOMINATING].";
        } else if(Kill==5) {
            if(!callfunc("Add a player","[MEGAKILL]",strcharinfo(0)))
                announce "You unlock [DOMINATING] Title",bc_self;
            else
                debugmes "Incorrect title [MEGAKILL].";
        } else if(Kill==6) {
            if(!callfunc("Add a player","[UNSTOPPABLE]",strcharinfo(0)))
                announce "You unlock [UNSTOPPABLE] Title",bc_self;
            else
                debugmes "Incorrect title [UNSTOPPABLE].";
        } else if(Kill==7) {
            if(!callfunc("Add a player","[WICKEDSICK]",strcharinfo(0)))
                announce "You unlock [WICKEDSICK] Title",bc_self;
            else
                debugmes "Incorrect title [WICKEDSICK].";
        } else if(Kill==8) {
            if(!callfunc("Add a player","[MONSTERKILL]",strcharinfo(0)))
                announce "You unlock [MONSTERKILL] Title",bc_self;
            else
                debugmes "Incorrect title [MONSTERKILL].";
        } else if(Kill==9) {
            if(!callfunc("Add a player","[GODLIKE]",strcharinfo(0)))
                announce "You unlock [GODLIKE] Title",bc_self;
            else
                debugmes "Incorrect title [GODLIKE].";
        } else if(Kill==10) {
            if(!callfunc("Add a player","[HOLYSHIT]",strcharinfo(0)))
                announce "You unlock [HOLYSHIT] Title",bc_self;
            else
                debugmes "Incorrect title [HOLYSHIT].";
        }
        end;
    }
    

    Basically this script enable the player to gain title listed

    player can choose there own title to put with there character

    the problem is only [KILLING SPREE] title give to the player even if i kill more than 3

    how can i add the anti-feed if the character already killed 3 times kill is not counted

    how can i add when player died -1 kill auto delete the title to the player or degrade the title example from holyshit to godlike

     

    for ask me for more clarification thanks

  5. Im currently working with this modification Here

     

    Im not expert enough for src coding i really need some help

     

    Alchemist Soul link mods

     

    - Acid Terror becomes a splash skill in an area of 4x4 around the target player or mob and does 100%+110%*SkillLV ATK.



    case AM_ACIDTERROR:
    if (!(flag&1) && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_ALCHEMIST)
    { //Become a slash attack when Soul Linked.
    map_foreachinrange(skill_area_sub, bl,
    skill_get_splash(skill_id, skill_lv),splash_target(src),
    src_skill_id,skill_lv,tick, flag|BCT_ENEMY|1,
    skill_castend_damage_id);
    } else
    skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
    break;


    for 100%+110%*SkillLV ATK



    case AM_ACIDTERROR:
    skillratio += 10*(skill_lv-1);
    if (sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ALCHEMIST)
    skillratio += 110;
    break;


    Enable to use parrying using one handed sword



    skill.c
    bool skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id, uint16 skill_lv) {
    struct skill_condition require;
    struct status_data *status;
    int i;
    int index[MAX_SKILL_ITEM_REQUIRE];
    + struct status_change *sc = &sd->sc;




    skill.c
    if(require.weapon && !(pc_check_weapontype(sd,require.weapon) || (skill == LK_PARRYING && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_KNIGHT && sd->status.weapon == W_1HSWORD)) ){
    clif_skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0);
    return false;
    }




    status.c
    case SC_PARRYING:
    + if(sd && sd->status.weapon == W_1HSWORD)
    + val2 = val1 * 3;


    Reducing all after cast delay of knight and lord knight skill when linked by 40%



    if ( sc && sc->data[SC_SPIRIT] ) {
    + if(sc->data[SC_SPIRIT]->val2 == SL_KNIGHT)
    + time /= 10;

    switch (skill_id) {

    case CR_SHIELDBOOMERANG:

    if (sc->data[sC_SPIRIT]->val2 == SL_CRUSADER)

    time /= 2;

    break;

    case AS_SONICBLOW:

    if (!map_flag_gvg3(bl->m) && sc->data[sC_SPIRIT]->val2 == SL_ASSASIN)

    time /= 2;

    break;

    }



    Correct the code if im wrong :)

     

  6. Soul link effect Modification
    Alchemist
    - Acid Terror becomes a splash skill in an area of 4x4 around the targetted player or mob and does 100%+110%*SkillLV ATK.
    
    Sage
    - HP will also increase by BaseLvl * 100 HP and his/her Vit will increase by 35.
    
    Crusader
    - increasing the damage of Smite by 300% with a bonus of 100 HIT. Therefore at level 5,
    - damage will be 500% ATK instead of 200%.
    - It will also increase the damage of Shield Chain by 150% and add a HIT bonus of 50.
    
    Super Novice
    - you can use skill 'Act Dead' during the buff
    
    Knight
    - Parrying can also be used with One Hand Swords with a block chance of 3*SkillLV%.
    - All skills have their after delay reduced by 40%.
    - Spear Boomerang does an additional 200% ATK damage (i.e. 550% at level 5).
    
    Wizard
    - HP will also increase by BaseLvl * 200 HP and his/her Vit will increase by Int/5
    (For example, 255 Int will give you an additional bonus of 255/5 = 51 Vit).
    
    Rogue
    - Increase the damage dealt from Double Strafe by (STR/2)%
    - You can divest through Full Protection by consuming one Glistening Coat for each attempt
    - It doesn't work with Full Divest but only with Divest Weapon/Shield/Armor/Helm.
    
    Assassin
    - boosting the damage from Throw Venom Knife by 100%.
    
    Blacksmith
    - Full adrenaline rush gives Str +10, Dex +10 and Flee +15.
    - Maximum Power Thrust is buffed with +100% ATK, giving 300% ATK at Lv5.
    
    Hunter
    - There is a 0.3%*LUK chance of Falcon Assault occurring automatically per shot with a bow
    

    Help me to modify this soul link

  7. "My question about custom item addition is that do I need to change anything with the lub files after changing the accessoryid and accname luas?"

     

    correct me if im wrong with your rephrase your question

    do you need to change other lub files after changing the accessoryid and accname lua

    if that is you question the

    answer: is it depends to your client if your client read ItemInfo.lua or Iteminfo.lub you need to put there your itemdisplayname, itemdescription, itemresourcename

  8. 	[15014] = {
    		unidentifiedDisplayName = "Ebone Armor",
    		unidentifiedResourceName = "¿ìµç¸ÞÀÏ",
    		unidentifiedDescriptionName = {
    			"An unknown item requiring appraisal. It can be identified by using a magnifier."
    		},
    		identifiedDisplayName = "Ebone Armor",
    		identifiedResourceName = "Ä¥ÈæÀÇ°©¿Ê",
    		identifiedDescriptionName = {
    			"A armor made of a metal called Opcidium.",
    			"The decoration of a black crystal looks profound.",
    			"Class: ^777777Armor^000000",
    			"Defense: ^77777793^000000",
    			"Weight:: ^777777450^000000",
    			"Required Level: ^777777100^000000",
    			"Jobs: ^777777All third class jobs^000000"
    		},
    		slotCount = 1,
    		ClassNum = 0
    	},
    

    FROM KRO

  9. BEWARE OF ALLSTARRO OWNER FORUM NAME: BENORMAL Here

     

    DONT ACCEPT ANY PAID SERVICE WORK TO THAT SERVER

     

    actually 10$ is no that big deal for me

     

    that thing is don't trust him to work with.

     

    after he got your trust then the service is done suddenly gone with the wind XD

     

    =============== POLL =====================

    For all PAID DEVELOPER out there

    are you willing to work without any initial payment?

    yes

    no

     

    and why?

×
×
  • Create New...