Jump to content

Emistry

Forum Moderator
  • Posts

    10015
  • Joined

  • Days Won

    396

Everything posted by Emistry

  1. OnInit: OnHour00: .rand_time_1 = rand(0, 11); .rand_time_2 = rand(12, 23); OnMinute00: if (gettime(DT_HOUR) == .rand_time_1 || gettime(DT_HOUR) == .rand_time_2) { // scripts. } end;
  2. just change the catalogue effect then. *searchstores <uses>,<effect>; Invokes the store search window, which allows to search for both vending and buying stores. Parameter uses indicates, how many searches can be started, before the window has to be reopened. Effect value affects, what happens, when a result item is double-clicked and can be one of the following: 0 = Shows the store's position on the mini-map and highlights the shop sign with yellow color, when the store is on same map as the invoking player. 1 = Directly opens the shop, regardless of distance. Example: // Item Universal_Catalog_Gold (10 uses, effect: open shop) searchstores 10,1;
  3. you have other NPC script that added the loadevent mapflag at payon map. all OnPCLoadMapEvent script should add extra map checking to avoid it trigger unnecessary event which come from other NPC scripts. It is a global event which will trigger all NPC that has this event label.
  4. prontera,155,3 script Sample 757,{ .@guild_id = getcharid(2); if (.@guild_id) { if (getguildname(.@guild_id) == "My_guild") { switch (select("Storage:Tool Dealer:Cashshop")) { case 1: openstorage; break; case 2: callshop "yourshop",1; break; case 3: callshop "yourshop",1; break; } } } end; }
  5. depend on what you're doing with the NPC to hide/unhide and only visible to your char, you can use this command. *cloakonnpc "<NPC object name>"{,<character ID>}; *cloakoffnpc "<NPC object name>"{,<character ID>}; These commands will make the NPC object specified display as cloaked/uncloaked, even though not actually disabled. The player can interact with a NPC cloaked (via NPC click, monster event..) but the NPC trigger area is disabled. If <character ID> is given then the NPC will only display to the specified player until he/she leaves the map, logs out, or the npc option is changed. If no <character ID> is specified it will display to the area.
  6. what is the merit of still using this command when we already have better option? https://divine-pride.net/database/search?q=Catalogue
  7. https://rathena.org/board/topic/78346-checking-quantity-of-items/?sortby=date
  8. getnameditem(7420, "Dummy's Char Name"); getnameditem(7420, <dummy_char_id>);
  9. - script Sample -1,{ OnInit: .card_id = 4001; end; OnPCLoginEvent: if (isequipped(.card_id)) { for (.@eqi = EQI_ACC_L; .@eqi < EQI_SHADOW_ACC_L; .@eqi++) { for (.@card = 0; .@card < 4; .@card++) { if (getequipcardid(.@eqi, .@card) == .card_id) { successremovecards .@eqi; break; } } } // TODO: script command to add item into storage. } end; } you can do something like this, but to add item into storage, that would need a custom source mod to implement it.
  10. conf/battle/client.conf#L40-L41 // Visible area size (how many squares away from a player they can see) area_size: 14 you can try increase this, you should be able to view the message however, if your server AOE skills range are calculated based on this setting above, then you probably have issue with these AOE skills hitting a wider range.
  11. function script F_KafGuildStor { if (Zeny < 200) { mes "You need 200 Zeny"; } else { switch(guildopenstorage()) { case GSTORAGE_OPEN: Zeny -= 200; mes "Successfully opened."; break; case GSTORAGE_STORAGE_ALREADY_OPEN: mes "Player storage is already open."; break; case GSTORAGE_ALREADY_OPEN: mes "Guild storage is already open."; break; case GSTORAGE_NO_GUILD: mes "Player is not in a guild."; break; case GSTORAGE_NO_STORAGE: mes "Guild hasn't invested in the Guild Storage Expansion skill (only if OFFICIAL_GUILD_STORAGE is enabled)."; break; case GSTORAGE_NO_PERMISSION: mes "Player doesn't have permission to use the guild storage."; break; } } close; } you can try something like this
  12. there exists a very very very old script of mine where you can do instance job change and max level maybe refer this recent topic that were still discuss about it https://rathena.org/board/topic/90158-rmodify-class-helper-by-emistry/
  13. you can use this to block the action/movement of player *setpcblock <type>,<state>{,<account ID>}; 'setpcblock' command prevents/allows the player from doing the given <type> of action according to the <state> during the player session (note: @reloadscript removes all <type> except PCBLOCK_IMMUNE). The <type> values are bit-masks, multiples of <type> can be added to change the player action. The action is blocked when the <state> is true, while false allows the action again. 'getpcblock' command return the bit-mask value of the currently enabled block flags. Available <type>: PCBLOCK_MOVE Prevent the player from moving. PCBLOCK_ATTACK Prevent the player from attacking. PCBLOCK_SKILL Prevent the player from using skills/itemskills. PCBLOCK_USEITEM Prevent the player from using usable items. PCBLOCK_CHAT Prevent the player from sending global/guild/party/whisper messages. PCBLOCK_IMMUNE Prevent the player from being hit by monsters. PCBLOCK_SITSTAND Prevent the player from sitting/standing. PCBLOCK_COMMANDS Prevent the player from using atcommands/charcommands. PCBLOCK_NPCCLICK Prevent the player from clicking/touching any NPC/shop/warp. PCBLOCK_EMOTION Prevent the player from using emotions. PCBLOCK_NPC Simulate NPC interaction. Useful for NPC with no mes window. Sum of PCBLOCK_MOVE|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_COMMANDS|PCBLOCK_NPCCLICK. PCBLOCK_ALL Sum of all the flags. // Make the attached player invulnerable to monster (same as @monsterignore) setpcblock PCBLOCK_IMMUNE, true; // Prevents the attached player from attacking and using skills setpcblock PCBLOCK_ATTACK|PCBLOCK_SKILL, true; // Re-enables attack, skills and item use setpcblock PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM, false;
  14. i dont think you could set more than 4 slots. client may have limitation itself if i recall correctly
  15. src/map/pc.cpp#L3843 case SP_SUBRACE: // bonus2 bSubRace,r,x; PC_BONUS_CHK_RACE(type2,SP_SUBRACE); if(sd->state.lr_flag != 2) sd->indexed_bonus.subrace[type2]+=val; + if (type2 == RC_DEMIHUMAN && sd->indexed_bonus.subrace[type2] > 80) + sd->indexed_bonus.subrace[type2] = min(80, sd->indexed_bonus.subrace[type2]); break; you can try something like this, max 80% item bonuses reduction from equipments
  16. https://github.com/rathena/rathena/wiki/Adding-a-Script refer the client side part, to add a new NPC
  17. use this *unitwalk <GID>,<x>,<y>{,"<event label>"}; *unitwalkto <GID>,<Target GID>{,"<event label>"}; This command will tell a <GID> to walk to a position, defined either as a set of coordinates or another object. The command returns a 1 for success and 0 upon failure. If coordinates are passed, the <GID> will walk to the given x,y coordinates on the unit's current map. While there is no way to move across an entire map with 1 command use, this could be used in a loop to move long distances. If an object ID is passed, the initial <GID> will walk to the <Target GID> (similar to walking to attack). This is based on the distance from <GID> to <Target ID>. This command uses a hard walk check, so it will calculate a walk path with obstacles. Sending a bad target ID will result in an error. An optional Event Label can be passed as well which will execute when the <GID> has reached the given coordinates or <Target GID>. Examples: // Makes player walk to the coordinates (150,150). unitwalk getcharid(3),150,150; // Performs a conditional check with the command and reports success or failure to the player. if (unitwalk(getcharid(3),150,150)) dispbottom "Walking you there..."; else dispbottom "That's too far away, man."; // Makes player walk to another character named "WalkToMe". unitwalkto getcharid(3),getcharid(3,"WalkToMe");
  18. alberta,167,177,3 script Simon 10079,{ .@npcname$ = "^FF0000[Simon]^000000"; switch (storage_password) { default: mes .@npcname$; mes "blabla"; break; case 1: mes .@npcname$; mes "Toete bitte je 500 Snake, Wormtail und Willows fuer mich."; set storage_password,2; break; case 2: mes .@npcname$; mes "Geh bitte die 500 Snake, Wormtail und Willows toeten."; break; case 3: mes .@npcname$; mes "blabla"; set storage_password,4; break; case 4: mes .@npcname$; mes "blabla"; break; } close; OnNPCKillEvent: if (storage_password == 2) { if (killedrid == 1025 || killedrid == 1010 || killedrid == 1024) { kill_count_variable++; dispbottom "Progress ["+kill_count_variable+"/500]"; if (kill_count_variable == 500) storage_password = 3; } end; }
  19. Items ----- You can refer to items by using HTML-like links to certain items: <ITEMLINK>Display Name<INFO>Item ID</INFO></ITEMLINK> Where <Display Name> is the name that will be displayed for your link and <Item ID> being the ID of the item you want to link to when clicked. In 2015 the tag name was changed to <ITEM> resulting in the following syntax: <ITEM>Display Name<INFO>Item ID</INFO></ITEM> The following sample will open a preview window for Red Potion: mes "Did you ever consume a <ITEMLINK>Red Potion<INFO>501</INFO></ITEMLINK>?"; // Or in 2015: mes "Did you ever consume a <ITEM>Red Potion<INFO>501</INFO></ITEM>?"; NOTE: Be aware that item links are rendered incorrectly in 2015+ clients at the moment. replace the item name display line using this format.
  20. you probably have some monsters that drop normal items which added at the card drop slot of mob_db, you should remove them. The NPC above will check if the items are added to the card drop sslot of any monster, and allow it to convert into point if yes.
  21. prontera,155,181,5 script Sample 757,{ announce "Sample message", bc_all; end; }
  22. your groups id are different than the value that stored in the variable $@LeagueBG1_id1
×
×
  • Create New...