Jump to content

celeron0134

Members
  • Posts

    194
  • Joined

  • Last visited

Posts posted by celeron0134

  1. Hello good day ,, can i trigger this?

    setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW;
    	for(.@i = 1; .@i<getarraysize(.@indices); ++.@i) {
    
    		if(getequipisequiped(.@indices[.@i])) {
    
    			.@menu$ = .@menu$ + F_getpositionname(.@indices[.@i]) + "-[" + getequipname(.@indices[.@i]) + "]";
    			.@equipped = 1;
    
    		}
    		.@menu$ = .@menu$ + ":";
    
    	}

    how can i trigger EQI_HEAD_TOP or EQI_SHOES

    if(getequipisequiped(.@indices[EQI_HEAD_TOP])) {
        mes "Yup this is the headgear";
        close;
    }

    if(getequipisequiped(.@indices[EQI_SHOES])) {
        mes "Yup this is the Footgear";
        close;
    }

    so when i picked any headgear it will go to their respective ifs
     

  2. Bump for this.. as i tried and failed =D

      - ID: 230201
        Group: "AG_BATTLE"
        Name: "Exploring Poring's life (1)"
        Reward:
          TitleID: 1029
        Target:
          - Id: 0
            MobID: 1002
            Count: 10
        Score: 10

    but no rewards can be seen on the achievement window nothing to collect.. 

  3. Hello good day.. 

    setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW;

    Case 1: 

       switch select .@headstones

    Case 2:

     switch select .@armorstones

    Case 3:

     Switch select .@weaponstones

     

    like this.. 

  4. 12199,Rice_Scroll,Scroll of Magic,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "soullink"; },{},{}

    put this on your itemdb.txt

    function	script	soullink	{
            
    			switch ( basejob ) {
    			  case Job_Alchemist:	set .@spirit, 445; break;
    			  case Job_Monk:	 set .@spirit, 447; break;
    			  case Job_Star_Gladiator:  set .@spirit, 448; break;
    			  case Job_Sage:	 set .@spirit, 449; break;
    			  case Job_Crusader:	set .@spirit, 450; break;
    			  case Job_SuperNovice:   set .@spirit, 451; break;
    			  case Job_Knight:	set .@spirit, 452; break;
    			  case Job_Wizard:	set .@spirit, 453; break;
    			  case Job_Priest:	set .@spirit, 454; break;
    			  case Job_Bard: case Job_Dancer: set .@spirit, 455; break;
    			  case Job_Rogue:	 set .@spirit, 456; break;
    			  case Job_Assassin:	set .@spirit, 457; break;
    			  case Job_Blacksmith:   set .@spirit, 458; break;
    			  case Job_Hunter:	set .@spirit, 460; break;
    			  case Job_Soul_Linker:   set .@spirit, 461; break;
    			  default:
    			   if ( upper == 1 && baselevel < 70 )
    				set .@spirit, 494;
    			}
    			if ( .@spirit ) {
    			  sc_start4 sc_spirit, 360000, 5, .@spirit,0,0;
    			  skilleffect .@spirit, 5;
    			}
    end;
    }
    

    add this to your npc/custom/ .. ...

     

    • Like 1
  5. prontera,156,178,5	script	ldfhsdfkljs	100,{
    	if ( getpetinfo(PET_CLASS) ) {
    		mes "please return your pet into egg state to continue";
    		close;
    	}
    	getinventorylist;
    	for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) {
    		if ( @inventorylist_card1[.@i] == -256 ) {
    			query_sql "select intimate, class, level, equip, name from pet where pet_id = "+( .@id = @inventorylist_card2[.@i] + ( ( @inventorylist_card2[.@i] >= 0 )? 0 : 1 << 16 ) + @inventorylist_card3[.@i] * ( 1 << 16 ) ), .@intimate, .@class, .@level, .@equipped, .@name$;
    			if ( .@intimate > .pet_min_friendly ) {
    				.@menu$ = .@menu$ +"^0000FF"+ .@name$ +" ^00CC00{"+ getmonsterinfo( .@class, 0 ) +"} ^000000["+ .@level +"] ^FF0000"+( ( .@equipped )? "*equipped" : "" )+":";
    				.@pet_id[.@c] = .@id;
    				.@egg_id[.@c] = @inventorylist_id[.@i];
    				.@pet_name$[.@c] = .@name$;
    				.@pet_class[.@c] = .@class;
    				.@pet_level[.@c] = .@level;
    				.@pet_equipped[.@c] = .@equipped;
    				.@c++;
    			}
    		}
    	}
    	if ( !.@c ) {
    		mes "your inventory doesn't have any pet egg that intimate enough";
    		close;
    	}
    	mes "select which pet that you want it to evolve";
    	next;
    	.@s = select( .@menu$ ) -1;
    	mes "selected : "+ .@pet_name$[.@s];
    	mes "level : "+ .@pet_level[.@s];
    	mes "equipped : "+( ( .@pet_equipped[.@s] )? "Yes" : "No" );
    	if ( getd( ".petr"+ .@pet_class[.@s] ) ) {
    		mes "require :-";
    		.@size = getarraysize( getd( ".petr"+ .@pet_class[.@s] ) );
    		for ( .@i = 0; .@i < .@size; .@i += 2 )
    			mes getd( ".petr"+ .@pet_class[.@s] +"["+( .@i +1 )+"]" )+"x "+ getitemname( getd( ".petr"+ .@pet_class[.@s] +"["+ .@i +"]" ) );
    	}
    	next;
    	if ( !getd( ".pet"+ .@pet_class[.@s] ) ) {
    		mes "this pet cannot evolve any further";
    		close;
    	}
    	if ( .@pet_level[.@s] < .min_level ) {
    		mes "this pet doesn't meet the level requirement";
    		close;
    	}
    	if ( .@pet_equipped[.@s] ) {
    		mes "please unequip this pet accesory to continue";
    		close;
    	}
    	if ( getd( ".petr"+ .@pet_class[.@s] ) ) {
    		.@size = getarraysize( getd( ".petr"+ .@pet_class[.@s] ) );
    		for ( .@i = 0; .@i < .@size; .@i += 2 ) {
    			if ( countitem( getd( ".petr"+ .@pet_class[.@s] +"["+ .@i +"]" ) ) < getd( ".petr"+ .@pet_class[.@s] +"["+( .@i +1 )+"]" ) ) {
    				mes "you need "+ getd( ".petr"+ .@pet_class[.@s] +"["+( .@i +1 )+"]" ) +"x "+ getitemname( getd( ".petr"+ .@pet_class[.@s] +"["+ .@i +"]" ) ) +" to evolve this pet";
    				close;
    			}
    		}
    		for ( .@i = 0; .@i < .@size; .@i += 2 )
    			delitem getd( ".petr"+ .@pet_class[.@s] +"["+ .@i +"]" ), getd( ".petr"+ .@pet_class[.@s] +"["+( .@i +1 )+"]" );
    	}
    	delitem2 .@egg_id[.@s], 1, 1, 0, 0, -256, ( .@pet_id[.@s] % ( 1 << 16 ) - ( .@remainder15 = .@pet_id[.@s] % ( 1 << 15 ) ) < ( 1 << 15 ) )? .@remainder15 : ( .@remainder15 - ( 1 << 15 ) ), .@pet_id[.@s] >> 16, 0;
    	makepet .@get_pet_id = getd( ".pet"+ .@pet_class[.@s] +"["+ rand( getarraysize( getd( ".pet"+ .@pet_class[.@s] ) ) ) +"]" );
    	mes "your "+ .@pet_name$[.@c] +" has reborn into "+ getmonsterinfo( .@get_pet_id, 0 );
    	mes "please rename your pet ~";
    	close;
    OnInit:
    	.min_level = 80; // minimum level 80 to change pet egg
    	.pet_min_friendly = 900;
    //	setarray getd( ".petr"+ <require pet egg> ), <require itemID 1>, <require item require 1>, <require itemID 2>, <require item require 2>, ...
    	setarray getd( ".petr"+ 1031 ), 501,1, 502,2, 503,10;
    
    //	setarray getd( ".pet"+ <require pet egg> ), <random pet egg 1>, <random pet egg 2> ....
    	setarray getd( ".pet"+ 1031 ), 1063; // poring pet(1002) can evolve into drops(1113) or poporing(1031)
    
    	// add more as needed
    	end;
    }

    used @AnnieRuru's script but it always says your inventory doesn't have any pet egg that intimate enough how to fix this?

  6. 	setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW;

    like the script of the refining NPC where the menu will be your current equipment.. 

    when EQI_HEAD_TOP is picked = only STR runes are available on headgears,,

    when EQI_ARMOR is picked = only AGI runes are available on armors

    when EQI_HAND_L (SHIELD) only VIT runes are available on shield -- and checks if the equipped is shield and not weapons

     

  7. 1 hour ago, botka4aet said:
    
    Case 1: -> Case 7:

    you can add 

    
    Strength(old case!) to EQI_ARMOR (7<-----) - Armor (jackets, robes)

    can you show me the full script? i tried it but  the cases are dependent on the setarray .EquipID[0] which means if i put armor on the 7th slot on .EquipID[0] it will work.. but the prob is its limited on 1 armor only ( cotton shirts) and can't add more.. 

     

    what i need is.. when you talked to the NPC..  switch(select your current equipment . and when you pick like example a headgear.. it will go case 1 of the rune.. if shield it will go case 2; .. id like to enchant any armors too and not dependent on the setarray

  8. 1 hour ago, botka4aet said:
    
    switch( select( "Strength:Intelligent:Dexterity:Agility:Vitality:Luck" )){

    to

    
    switch( getiteminfo(.EquipID[.@Equip],10)){

    And change case to correct number according this

    
    EQI_COMPOUND_ON (-1)      - Item slot that calls this script (In context of item script)
    EQI_ACC_L (0)             - Accessory 1
    EQI_ACC_R (1)             - Accessory 2
    EQI_SHOES (2)             - Footgear (shoes, boots)
    EQI_GARMENT (3)           - Garment (mufflers, hoods, manteaux)
    EQI_HEAD_LOW (4)          - Lower Headgear (beards, some masks)
    EQI_HEAD_MID (5)          - Middle Headgear (masks, glasses)
    EQI_HEAD_TOP (6)          - Upper Headgear
    EQI_ARMOR (7)             - Armor (jackets, robes)
    EQI_HAND_L (8)            - Left hand (weapons, shields)
    EQI_HAND_R (9)            - Right hand (weapons)
    EQI_COSTUME_HEAD_TOP (10) - Upper Costume Headgear
    EQI_COSTUME_HEAD_MID (11) - Middle Costume Headgear
    EQI_COSTUME_HEAD_LOW (12) - Lower Costume Headgear
    EQI_COSTUME_GARMENT (13)  - Costume Garment
    EQI_AMMO (14)    		  - Arrow/Ammunition
    EQI_SHADOW_ARMOR (15)     - Shadow Armor
    EQI_SHADOW_WEAPON (16)    - Shadow Weapon
    EQI_SHADOW_SHIELD (17)    - Shadow Shield
    EQI_SHADOW_SHOES (18)     - Shadow Shoes
    EQI_SHADOW_ACC_R (19)     - Shadow Accessory 2
    EQI_SHADOW_ACC_L (20)     - Shadow Accessory 1

     

    this one?

    setarray .EquipID[0],2301,2302,2303,2304,2305,2306,2307,2308,2309,2310;

    or this one?

    switch( getiteminfo(.EquipID[.@Equip],10)){
    	Case 1: setarray .RuneID[0],4700,4701,4702,4703,4704,4705,4706,4707,4708,4709; break;
    	Case 2: setarray .RuneID[0],4710,4711,4712,4713,4714,4715,4716,4717,4718,4719; break;
    	Case 3: setarray .RuneID[0],4720,4721,4722,4723,4724,4725,4726,4727,4728,4729; break;
    	Case 4: setarray .RuneID[0],4730,4731,4732,4733,4734,4735,4736,4737,4738,4739; break;
    	Case 5: setarray .RuneID[0],4740,4741,4742,4743,4744,4745,4746,4747,4748,4749; break;
    	Case 6: setarray .RuneID[0],4750,4751,4752,4753,4754,4755,4756,4757,4758,4759; break;

     

  9. @Haruka Mayumi if you have time to spare kindly check this thanks

    prontera,155,181,5	script	Sample	757,{
    mes "Which Armor you want to Enchant ?";
    mes "Make sure there is no Card / Rune in it.";
    next;
    setarray .EquipID[0],2301,2302,2303,2304,2305,2306,2307,2308,2309,2310;
    for( set .@i,0; .@i < getarraysize( .EquipID ); set .@i,.@i + 1 )
    	set .@EquipMenu$,.@EquipMenu$ + getitemname( .EquipID[.@i] )+( !getitemslots(.EquipID[.@i])?"":"["+getitemslots(.EquipID[.@i])+"]" )+":";
    set .@Equip,select( .@EquipMenu$ ) - 1;
    if( !countitem( .EquipID[.@Equip] ) ){
    	mes "You didnt have this Equipment with you.";
    	close;
    }
    mes "Equipment : ^FF0000"+getitemname( .EquipID[.@Equip] )+"^000000";
    switch( select( "Strength:Intelligent:Dexterity:Agility:Vitality:Luck" )){
    	Case 1: setarray .RuneID[0],4700,4701,4702,4703,4704,4705,4706,4707,4708,4709; break;
    	Case 2: setarray .RuneID[0],4710,4711,4712,4713,4714,4715,4716,4717,4718,4719; break;
    	Case 3: setarray .RuneID[0],4720,4721,4722,4723,4724,4725,4726,4727,4728,4729; break;
    	Case 4: setarray .RuneID[0],4730,4731,4732,4733,4734,4735,4736,4737,4738,4739; break;
    	Case 5: setarray .RuneID[0],4740,4741,4742,4743,4744,4745,4746,4747,4748,4749; break;
    	Case 6: setarray .RuneID[0],4750,4751,4752,4753,4754,4755,4756,4757,4758,4759; break;
    }
    for( set .@i,0; .@i < getarraysize( .RuneID ); set .@i,.@i + 1 )
    	set .@RuneMenu$,.@RuneMenu$ + getitemname( .RuneID[.@i] )+":";
    set .@Rune,select( .@RuneMenu$ ) - 1;
    mes "Rune : ^FF0000"+getitemname( .RuneID[.@Rune] )+"^000000";
    next;
    if( select("Confirm:Cancel") == 1 ){
    	if( !countitem( .RuneID[.@Rune] ) ){
    		mes "Sorry you didnt have the "+getitemname( .RuneID[.@Rune] )+" with you.";
    	}else{
    		delitem .EquipID[.@Equip],1;
    		delitem .RuneID[.@Rune],1;	
    		getitem2 .EquipID[.@Equip],1,1,0,0,0,0,0,.RuneID[.@Rune];
    		mes "Done.";
    		mes "^0000FF"+getitemname( .EquipID[.@Equip] )+"^000000";
    		mes "Enchanted with ^FF0000"+getitemname( .RuneID[.@Rune] )+"^000000";
    	}
    }
    close;
    }

    what i need now is the seperation from equips.. example the setarray on case 1 runes can only be inserted on shields..

    case 2 setarray can only be inserted on footgears and so on.. also i need a enchant remover that gives back the enchant runes and cards inserted on the equipment

    thankyou

  10. a NPC that enchants orbs depending on equipment..

    you need a specific orb on a specific armor.. 

    example : Armor - only STR  orbs can be inserted ( Str + 1 to Str + 10) there will be a menu here

                   Garment - only DEX orbs can be inserted

    with Zeny cost and 100% success rate,,

    Armor,Shield,garment,footgears,accessories,upper,middle,lower and lvl 4 weapons only

    and retains refine equips

     

    orrr -- if its possible let's say Str + 1 Orb can be doubled click and a function will pop up.. on which armor do you want to insert?  

    thankyou in advance

  11.  

    Character Name Change Coupon    Item ID# 12790

    Use this item to change your character's name on the Character Select menu.
    After using this item you must logout to the Character Select menu and Right-Click on your character and choose 'Change Name'
    You can then enter a new name as long as it is not already taken.
    You must leave your current guild and/or party before changing your name.
    You can use this item once and it is account bound

    can we use this for title purposes

    example: killing 100 porings will give you a title of Poringslayer

    there would be a dialogue : mes "do you want to use the title Poringslayer? , you'll be logged out of the game if you click OK"

    then copies strcharinfo.. - [PoringSlayer]"+strcharinfo+" idunno if this will do.. bc as said on the item description you must leave guild and party

     

  12. Emp break = 5 apples

    all Players inside the setarray of castles ( active castles ) - (except the castle owner) recieves 1 apple per minute ( configurable )

    all players on the guild that owns the castle will recieve 2 apples per minute

    onAgitEnd .. after a countdown of 5 secs will recall the guild who owns the castle and gives them a reward of 10apples per player..

    and summons 5 MVPs on the castle at random coordinates ( MVP auto dies 1minute before next WOE session )

    add a checker for non guild owners who enter's the active castle and kick them out of the castle ( effective till next WOE session )

    add a @command like example @guild with switch select from the setarray of castles.. ( you can only warp on the castle your guild owns ) ( add ownership  on the menu ) 

    example : kriemhild - apple guild

                  :  castle 2 - poring guild

    staying on the castle you owned after WOE .. gives you guildpoints .. this will be used to buy something from a shop

    that all thankyou so much in advance!! keep up the good work rathena , more power and god bless

     

     

  13. 22 minutes ago, Haruka Mayumi said:
    
    *checkoption(<option number>{,<char_id>})
    *checkoption1(<option number>{,<char_id>})
    *checkoption2(<option number>{,<char_id>})
    *setoption <option number>{,<flag>{,<char_id>}};
    
    The 'setoption' series of functions check for a so-called option that is set on
    the invoking character. 'Options' are used to store status conditions and a lot
    of other non-permanent character data of the yes-no kind. For most common cases,
    it is better to use 'checkcart','checkfalcon','checkriding' and other similar
    functions, but there are some options which you cannot get at this way. They
    return 1 if the option is set and 0 if the option is not set.
    
    Option numbers valid for the first (option) version of this command are:
    
    0x1       - Sight in effect.
    0x2       - Hide in effect.
    0x4       - Cloaking in effect.
    0x8       - Cart number 1 present.
    0x10      - Falcon present.
    0x20      - Peco Peco present.
    0x40      - GM Perfect Hide in effect.
    0x80      - Cart number 2 present.
    0x100     - Cart number 3 present.
    0x200     - Cart number 4 present.
    0x400     - Cart number 5 present.
    0x800     - Orc head present.
    0x1000    - The character is wearing a wedding sprite.
    0x2000    - Ruwach is in effect.
    0x4000    - Chasewalk in effect.
    0x8000    - Flying or Xmas suit.
    0x10000   - Sighttrasher.
    0x100000  - Warg present.
    0x200000  - The character is riding a warg.

    Grandcross is an AoE skill will most likely fail if it doesn't have stats not like sight thrasher.. you need target skills

    orayt thanks again.. ill just add targeted skills .. muaaaah

  14. 4 hours ago, Haruka Mayumi said:
    
    prontera,155,170,3	script	Tamadora	10110,3,3,{
    end;
    OnTouch_:
    	if(gettime(DT_HOUR) < 7) end;	// 7AM Onwards
    	if(!.Active){
    		initnpctimer;
    		.Active = 1;
    		.CFail = 0;
    	}
    end;
    
    OnTimer1000:
    	getmapxy(.@map$,.@x,.@y,BL_NPC);
    	.@c = getareaunits(BL_PC,.@map$,[email protected],[email protected],.@x+.Cells,.@y+.Cells,.@aid);
    	if(!.@c){
    		if(++.CFail>=.Fail){
    			stopnpctimer;
    			.Active = 0;
    			end;
    		}
    		initnpctimer;
    		end;
    	}
    	if(.CurrentCD >= .Countdown){
    		.@idx = rand(getarraysize(.ItemDrop));
    		makeitem .ItemDrop[.@idx],.ItemAmt[.@idx],.@map$,rand([email protected],.@x+.Cells),rand([email protected],.@y+.Cells);
    	}
    	if(.Countdown-.CurrentCD <= 0) .CurrentCD = 0;
    	if(.CurrentCD%3==0){
    		for(.@i=0;.@i<.@c;.@i++){
    			.@idx2 = rand(getarraysize(.SkillID));
    			unitskilluseid getnpcid(0),.SkillID[.@idx2],.SkillLV[.@idx2],.@aid[.@i],-1;
    		}
    		showscript "~ < "+(.Countdown-.CurrentCD++)+" > ~",getnpcid(0),AREA;
    		sleep 1000;
    	}
    	showscript "~ < "+(.Countdown-.CurrentCD++)+" > ~",getnpcid(0),AREA;
    	npcwalkto rand(.XY[0],.XY[2]),rand(.XY[1],.XY[3]);
    	initnpctimer;
    end;
    
    OnInit:
    	.Countdown = 120;	//seconds
    	.Fail = 3;	//3 seconds
    	.Cells = 5;	//3 Cells Away
    	npcspeed 150;
    	setarray .XY[0],150,175,160,165;
    	setarray .ItemDrop[0],7929;
    	setarray .ItemAmt[0],1;
    	setarray .SkillID[0],489,16,29,30,34;
    	setarray .SkillLV[0],15,20,10,10,10;
    end;
    }

     

    this is better than i expected.. love it.. !! thanks a lot 

     

    EDIT: 

       Cute NPC sprite and name !! =D

  15. @Haruka Mayumi here's the request  -  the concept is like when players are on the PVP room.. they have to defend the NPC spot like maybe 3 cells SQUARE . if there are no players on the 3 cells square.. the countdown timer will stop.. 

    2minutes = countdown

    noplayer near the npc = countdown stops

    on2minutes - 1 7929 will drop ( configurable on how many pcs will drop )

    and if it's possible ,, The NPC casts Tarot Card of fate on the nearby players on the 3cell square every 3secs

     

×
×
  • Create New...