Jump to content

Clark

Members
  • Posts

    22
  • Joined

  • Last visited

Posts posted by Clark

  1. El emulador tiene implementado hasta cierta parte el episodio 16.1, porque hasta cierta parte?
    Porque si bien tiene la Main quest del 16.1 hacia atras, pero se a brincado algunas otras implementaciones antes de dicho episodio (ej. illusion dungs, OGH Nightmare, etc)

    • MVP 1
  2. I hope this helps.

    
    	disable_items;
    	set .@Price, 3000;
    	mes "[Equip Assistant]";
    	mes "Hello, do you need your help with your equipment?";
    	switch(select("Repair Equipment","Identify Equipment")){
    		case 1:
    			if (Zeny < .@Price) {
    				dispbottom "It costs "+.@Price+" Zeny to repair your items.";
    				end;
    			}else {
    				if( getbrokenid(1) ){
    					repairall;
    					set Zeny, Zeny- .@Price;
    					dispbottom "Your items have been repaired.";
    				} else {
    					message strcharinfo(0),"No broken items detected.";
    					 end;
    				}
    			}
    		break;
    		case 2:
    			getinventorylist;
    			for(set .@i,0; .@i<@inventorylist_count; set .@i,.@i+1) {
    				if (@inventorylist_identify[.@i]) 
    					continue;
    				if (Zeny < .@Price) {
    					dispbottom "It costs "+.@Price+" zeny to identify an item.";
    				}else {
    					setarray .@Total[0], .@Total[0]+1, .@Total[1]+.@Price;
    				}
    			}
    			if (!.@Total[0]) {
    				message strcharinfo(0),"No items where identified.";
    				end;
    			} else {
    				set Zeny, Zeny-.@Price;
    				specialeffect2 154;
    				atcommand "@identifyall";
    				message strcharinfo(0),"Identified "+.@Total[0]+" items"+((.@Total[1])?" for "+.@Total[1]+" Zeny":"")+".";
    				end;
    			}
    		break;
    	}

     

    • Upvote 1
  3. You can add a pj variable when they finish a quest like this or if you are using quest_db you can verify the progress of the quest.

    prontera,156,167,4	script	QuestNpc#1	854,3,3,{
    	end;
    	OnTouch:
          if(Quest_Custom < 10 ){
    		hideoffnpc "QuestNpc#1";
                  switch(Quest_Custom){
                      case 0:
                          //do something for beginning questers
                          close2;
                          set Quest_Custom, 1;
                          end;
                      break;
                      case 1:
                      	//do something else
                        close2;
                        set Quest_Custom, 2;
                        end;
                      break;
                      .
                      .
                      .
                      default:
                      	//do something when this npc does not have an option for the level of quest the user has.
                      break;
                  }
          } else {
            npctalk "Looks like you've finished all the quest, congratulations "+strcharinfo(0);
          }
    	end;
    	OnInit:
    		hideonnpc "QuestNpc#1";
    	end;
    }

     

  4. 1 & 2.- You have to check the Geffen Magic Tournament script, that's the file that's giving you problems ... but without the script you are running it's difficult to know what's happening

    3.- There's already an issue for this here: https://github.com/rathena/rathena/issues/1679

    4.-Judging by the skill id it can be the Nightmare Jitterbug instance (some monsters inside there use that skill) or a Minstrel/Wanderer. It looks like it has its attack type wrong ...

  5. prontera,198,148,3    script    Test    860,{
      if( Class >= 4054 && Class <= 4218 ){
          mes ( "restertstat") ;
          atcommand "+resetstat";
          next;
          mes ( "remove stpoint");
          StatusPoint = 0;
          next;
          mes ( "apply st point");
          StatusPoint += 25000;
          mes ( "done");
          mes ("congratulations! now you're at max! ");
          close;
      } else {
          mes "[npc]";
          mes "Sorry, you have to have a third class.";                                
          close;
      }
    }

    If you want only third job then just remove the condition for level 175, you can use the code that i gave you or just edit the one that rongmauhong

    if (!(.@eac&EAJL_THIRD)) {
  6. prontera,198,148,3    script    Test    860,{
      if( Class >= 4054 && Class <= 4218 ){
          if(BaseLevel < 175){
              mes "[npc]";
              mes "Sorry , you have to be minimum base level 175";
              close;
          }
          mes ( "restertstat") ;
          atcommand "+resetstat";
          next;
          mes ( "remove stpoint");
          StatusPoint = 0;
          next;
          mes ( "apply st point");
          StatusPoint += 25000;
          mes ( "done");
          mes ("congratulations! now you're at max! ");
          close;
      } else {
          mes "[npc]";
          mes "Sorry, you have to have a third class.";                                
          close;
      }
    }

    Hope it helps!

  7. You could try with the option in item_db https://github.com/rathena/rathena/blob/master/db/re/skill_db.txt

    // 16 inf3 (skill information 3):
    //    0x000001 - skill ignores land protector
    //    0x000002 - free
    //    0x000004 - usable skills while hiding
    //    0x000008 - skill that can be use while in dancing state
    //    0x000010 - skill that could hit emperium
    //    0x000020 - skill ignores SC_STASIS
    //    0x000040 - skill blocked by kagehumi
    //    0x000080 - skill range affected by AC_VULTURE
    //    0x000100 - skill range affected by GS_SNAKEEYE
    //    0x000200 - skill range affected by NJ_SHADOWJUMP

    Just copy & paste this in your db/re or pre-re/item_db.txt (not tested)

    404,9,6,2,2,0x1,0,5,1,yes,0,0x100,2,magic,0,0x100001, PF_FOGWALL,Blinding Mist

  8. 3 hours ago, YtalloNv said:

    How do you add item in this cash shop?
     ?

    You just add them on the db/import/item_cash_db.txt

    // Cash Shop Database
    // Contains the items sold in the ingame cash shop.
    //
    // Structure of Database:
    // Type,ItemID,Price
    //
    // Type:
    //    0: New
    //    1: Hot
    //    2: Limited
    //    3: Rental
    //    4: Gear
    //    5: Buff
    //    6: Heal
    //    7: Other
    //    8: Sale
    //
    // Price:
    //    Item cost, in cash points (#CASHPOINTS).

     

    BTW huge necropost you did here... you should create a new topic when you have a new question that you can't find in the search bar!

  9. *getequipid({<equipment slot>,<char_id>})
    
    This function returns the item ID of the item slot that calls the script
    on the invoking character or the specified equipment slot. If nothing is
    equipped there, it returns -1.
    Valid equipment slots are:
    
    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
    
    Notice that a few items occupy several equipment slots, and if the character is
    wearing such an item, 'getequipid' will return its ID number for either slot.
    
    Can be used to check if you have something equipped, or if you haven't got
    something equipped:
    
    	if (getequipid(EQI_HEAD_TOP) == 2234)
    		mes "What a lovely Tiara you have on";
    	else
    		mes "Come back when you have a Tiara on";
    	close;
    
    You can also use it to make sure people don't pass a point before removing an
    item totally from them. Let's say you don't want people to wear Legion Plate
    armor, but also don't want them to equip if after the check, you would do this:
    
    	if (getequipid(EQI_ARMOR) == 2341 || getequipid(EQI_ARMOR) == 2342) {
    		mes "You are wearing some Legion Plate Armor, please drop that in your stash before continuing";
    		close;
    	}
    	// the || is used as an or argument, there is 2341 and 2342 cause there are
    	// two different legion plate armors, one with a slot one without.
    
    	if (countitem(2341) > 0 || countitem(2432) > 0) {
    		mes "You have some Legion Plate Armor in your inventory, please drop that in your stash before continuing";
    		close;
    	}
    	mes "I will lets you pass.";
    	close2;
    	warp "place",50,50;
    	end;
    
    ---------------------------------------
    
    *getequipname(<equipment slot>{,<char_id>})
    
    Returns the jname of the item equipped in the specified equipment slot on the
    invoking character, or an empty string if nothing is equipped in that position.
    Does the same thing as getitemname(getequipid()). Useful for an NPC to state
    what your are wearing, or maybe saving as a string variable.
    See 'getequipid' for a full list of valid equipment slots.
    
            if ( getequipname(EQI_HEAD_TOP) != "" )
    	        mes "So you are wearing a " + getequipname(EQI_HEAD_TOP) + " on your head";
    	else
    	        mes "You are not wearing any head gear";

    Is because the refiner npc has the old positions of the equipment.

    You're getting those values because of this part.

    setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Head","Accessory 1","Accessory 2","Head 2","Head 3";
    		set .@menu$,"";
    		for(set .@i,1; .@i<=10; set .@i,.@i+1) {
    			if(getequipisequiped(.@i)) {
    				set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";

    Change it to this, and it should work "not tested"

    setarray .@position$[0], "Accessory L","Accessory R","Shoes","Robe","Head Low","Head Mid","Head Top","Armor","Left hand","Right hand";

     

    • Upvote 1
  10. Add a new entry to your instance_db, you can use the one that i put here.

    //ID,Name,LimitTime,IdleTimeOut,EnterMap,EnterX,EnterY,Map2,...,Map255

    40,Dead Branch Room,3600,300,pvp_n_1-3,54,67

    NOTE: You need to change the ID,LimitTime,IdleTimeOut,EnterMap,EnterX,EnterY with what ever values you need.

    • Upvote 1
  11. There is no guide on this.

    You need to create your own script for 16.2. (like when you want to create a npc) you need to do it from scratch or buy it from people that had already code it.

    Rathena doesn't support 16.2. The last episode that they added was 16.1 and Rock Ridge.

    If you see that other private server have it is because they bought it or script it themselfs, if you want it you need to do it yourself or buy it.

×
×
  • Create New...