Leaderboard


Popular Content

Showing content with the highest reputation since 07/25/2019 in all areas

  1. 6 points
    It has been a decade since I joined *athena community since 2009. Time flies so fast.
  2. 5 points
    "By using the beast's chakra with its tail, the host begins its transformation. They begin the red chakra aura, which gives them increased strength, speed and healing. " Credits - Renato Manara & SM et al *If anyone get interested, we are recruiting
  3. 5 points
    June Digest 2019 The following digest covers the month of June 2019. Staff Changes: None. Development Highlights:ο»Ώο»Ώ CORE: Fixed dissapearing items when cart is full (8ed3d058) Corrected a potential crash from equip switch (8cfee2c8) Corrected Enchant Arms for older clients (754274bc) Corrected Weapon Forging inventory search (052a4fd1) Corrected the value returned by getmapflag script command for MF_RESTRICTED (f8ea43eb) Corrected PK Mapflag assignment (a548f20c) Sense - show 0 for negatives (19835b63) Implemented instance_live_info script command to retrieve some data of running instances (c1975d7e) DATABASE: Removed the duplicate item ID from item_db.txt (5c1ef394) Updated item_db.txt (aae31a19) SCRIPT: Corrected the map name for announcing the entrance in the Morse cave instance (3cb23fd5) Fixed an issue with a cooldown after killing Wounded Morroc (34971e57) Implemented the Paramarket shops (a16f0ebb) OTHERS: Added the skeleton for the yaml converter (c2899d75) Added missing gitignores for csv2yaml (a4bbb932) Add SnakeDrak as author (46d04269) Fixed csv2yaml for guild skill tree (232b3885) Clean-up doc script commands (7cc8c964) List of Contributors: @aleos89, @attackjom, @Atemo, @Daegaladh, @flamefury, @functor-x, @jenkijo, @Lemongrass3110, @LiamKarlMitchell, @Normynator, @Tokeiburu July Digest 2019 The following digest covers the month of July 2019 Staff Changes: Noneο»Ώ Development Highlights:ο»Ώο»Ώ CORE: Implemented convertpcinfo script command (5fae7c26) Fixed a clone issue (912d97e4) Corrected autospell stacking (32525bad) Pet Fix Client after 20180704 (87b85819) Prevent moving/dropping the pet egg if it's hatched (454163c4) Fixed invalid item errors in achievements (8bb6b119) Fixed STR affecting mob damage in pre-renewal (2ca417b6) Cleaned up Joint Beat behavior (cb2c553f, 6d199ca7, 5702dc3c) Fixed Achievement Level progression (ac46920e) Fixed CZ_STANDING_RESURRECTION check (17f32a17) Fixed typo with wrong password length (d9db877d) Corrected Strip duration (4ea1b254) Corrected RENEWAL_ASPD macro processing (d476934c) Corrected pre-renewal Heal formula (3caf6687) Corrected a compile warning on GCC 8 (3dd388ac) Properly free function script counter (8050f7c8) Removed leftover variable (90d603d1) DATABASE: Corrected Magnum Break delay (fc2c6e02) SCRIPT: Fixed quest cooldown display bug for Quest Board NPC (bf52c52a) OTHERS: Fixed pet evolution upgrade script (e6eaa9fe) Made mob sprite column unique (d80e111e) Updated README.md (68e98a87) Small doc/script_commands.txt correction (0b1184e4) List of Contributors: @4144, @admkakaroto, @aleos89, @Asheraf, @Badarosk0, @cahya1992, @cydh, @daisyanne1380, @Everade, @gengstergile, @Indigo000, @laziem, @mazvi, @mrjnumber1, @naffej, @Normynator, @Playtester, @RadianFord, @rfperuch, @sader1992, @SeravySensei, @Stingor, @teededung, @Tokeiburu Show your support to rAthena by submitting your Issue or Pull Reqο»Ώuο»Ώeο»Ώstο»Ώο»Ώο»Ώο»Ώο»Ώsο»Ώο»Ώ!ο»Ώ ο»Ώο»Ώ
  4. 4 points

    Version 1.0.0

    125 downloads

    Illusion items Enchanter conversion. Note that this is converted from multiple servers, so stats and rates can vary. Stats and rates are taken from wikis/devs. Credits: kRO, iRO, Shining-moon RO, NovaRO and Divine-Pride.

    Free

  5. 3 points
    Name: @reload atcommand Creator: Me (@Cretino) Version: 0.1 (Initial version [Cretino]) Contributors: Q: 'What features have '@reload atcommand'?' R: Q: 'How to use these features?' R: Q: 'How Can I enable 'Reload Fast Mode'?' R: I've tested and is working well, but can have bugs. I'm accepting suggestions. If you found any bug, report in topic or send me a private message. I'll solve the problem as quickly as possible. I think is it. Note: Sorry for my English. Diff file: @reload_by_cretino_v0.1_rathena.diff
  6. 3 points
    View File Sader Attendance Requirement this patch make the player must have a variable true to claim his attendance reward the variable is #Attendance_YYYYMMDD ofc the variable change each day this will allow you to create a script to make for example a quest that the player must do every day to claim the attendance like for example the player must kill 500 monster before he can claim his attendance or must gather items or must be x level or must player x amount of time in the day so he can claim the reward of all the above the file include an information script file that have 2 function , one to set the variable and one to get the variable value (if you want to use them , just add them to your rathena/npc/other/Global_Functions.txt) it also include 2 example quests for you to get some inspiration to create your own script TODO: create function for gepard Submitter sader1992 Submitted 07/27/2019 Category Source Modifications Video Content Author sader1992  
  7. 3 points
    New release soonish. Features: Discord addon & Player Guide (command /pib)
  8. 3 points
    vampire.txt Line 4246: "If you want refine your equipment, then go to the Illusion Echanter."; "If you want refine your equipment, then go to the Illusion E"n"chanter."; ======================================================== Line 663,929,1222,1242,2811,2851,3468: ^0000FFafer dawn^000000."; ^0000FFaf"t"er dawn^000000."; ======================================================== Line 3301:: Oh, oome on! You know I've been"; Oh, 'c'ome on! You know I've been"; ======================================================= Line 3510: You two get along aw well as I remember."); You two get along a's' well as I remember."); ======================================================= Line 3350: "Be honet, though. "Be hone's't, though.
  9. 3 points

    Version 1.0.0

    117 downloads

    this patch make the player must have a variable true to claim his attendance reward the variable is #Attendance_YYYYMMDD ofc the variable change each day this will allow you to create a script to make for example a quest that the player must do every day to claim the attendance like for example the player must kill 500 monster before he can claim his attendance or must gather items or must be x level or must player x amount of time in the day so he can claim the reward of all the above the file include an information script file that have 2 function , one to set the variable and one to get the variable value (if you want to use them , just add them to your rathena/npc/other/Global_Functions.txt) it also include 2 example quests for you to get some inspiration to create your own script TODO: create function for gepard

    Free

  10. 2 points
    After hopping from server to server, I found that most servers had the same bugs that most people would suggest to be fixed after the server officially opened. I started to compile a list and post my list on the forums before the start of every server I played on. Being young at the time, 18 or 19, I thought maybe I could make a server, not knowing how much work really went into it. The seed was planted, though, and it stayed buried for a long time until about four years ago. I had just got done playing on a 1x server on renewal. It was fun and challenging in a few ways I didn't expect, mainly on the tedious spectrum and being used to autoloot. Unfortunately, the server died. A player from that server showed me how to set up my own instance of RO on my own computer and I could modify it to my liking but it needed a name. I wanted to make a good server, as most of us do, but I was no longer cocky. I knew being an admin was hard but I wanted to strive for something better than okay, something... decent. And thus the name was born. That preamble out of the way, I decided to just roll with what I was most comfortable with. Pre-renewal with some, pretty standard, tweaks and most of the usual suspects fixed. I taught myself script, so I'm pretty bad at it and most likely make redundant scripts but I've been able to get away with doing what I need to and, if I can't, I beg on these forums. It had to have BG and everybody loved eAmod BG, so I looked up the scripts for that and tried to get it to work. It needed some tweaks but I managed and, as far as I can test with one person running ten clients, it seemed to work properly with some play testing. Then I turned my eye to some normal features I felt were lacking: Pets, picking up loot, new content, etc. It was around this point I started modifying the src. I'm no where near even half decent at src modification but I've been able to put together how to get an idea of what is happening. It's allowed me to really make some decent modifications. I brought back pets fighting (not sure if that's enabled in renewal now), added arealoot with some bothering of Playtester, and started tweaking some renewal content. I've managed to get what I feel are some decent tweaks to New World, Dicastes, Mora, Old Glast Heim and Dewata. I implemented the pre-renewal Brasilis with some minor modifications. I've implemented all renewal cards, excluding maybe four or so. The amount of random tweaks I've made to this server I feel really make it stand out but I'm too worried, anxious and just scared to release it. I came close one time but then maintaining a website, finding the correct server to host it on and just the pressure of being an official admin was too much and I canceled. My changelog is pretty detailed and I've been adamant about making sure I write down every change or fix I make to the server. If you'd like to discuss, especially my unfinished ideas, I'm glad to hear feedback. Here's the link: https://pastebin.com/YCf0vnXp
  11. 2 points
    The topic has been removed because of rAthena staff double standards and hypocrisy things. (rA staff blame me that I made a money on this topic while it's not and never was) All that I did for the last 2.5 years with around ~1k answers from my side is help for free for newbies here, but to rA staff, my topic is a pain in the ass. Sorry guys, but the topic can't be maintained on such a community anymore because of its admins. Bye
  12. 2 points
    I think is it you want: new_item_enchanter_v1.1.txt You can go to line '364' to configure it and see more for changes.
  13. 2 points
    I updated the pull on my repository as a gesture since many people are still interested in it. Have fun PS. I have no intention of supporting any of this. You are still on your own.
  14. 2 points
    A mod that makes NPC able to open Buyingstore First diff for rAthena Git Hash: 584fcac4 (20180726) Possible for older rAthena version or emulator
  15. 2 points
    View File Illusion Items Enchanter Illusion items Enchanter conversion. Note that this is converted from multiple servers, so stats and rates can vary. Stats and rates are taken from wikis/devs. Credits: kRO, iRO, Shining-moon RO, NovaRO and Divine-Pride. Submitter NotKappa Submitted 07/24/2019 Category Utilities Video Content Author NotKappa  
  16. 2 points
    In order to help @Normynator's project and those who need support, I've made a quick video guide to help you all with "Adding a custom logo" functionality. Also, a FAQ topic was created on discord and we will be adding guides so we can cover all the issues. Please, tell us if you have any question or issue. Norm's projects discord: https://discord.gg/r3rvGXR Adding custom logo guide.mp4
  17. 2 points
    izlude,144,121,3 script JohnDoe NPC::JohnDoe 1_M_MERCHANT,{ mes "[JohnDoe]"; mes "Do you need some Novice Potions?"; switch(select("Yes, please.:I don't need them for now, thank you.")){ clear; case 1: [email protected]$ = "" + gettime(DT_YYYYMMDD); if(#JOHNDOE_DAILY$ == [email protected]$){ mes "you already got the Novice Potions for today"; mes "try again in the next day"; end; } mes "Here, take these."; getitem 569,250; #JOHNDOE_DAILY$ = [email protected]$; mes "Good luck!."; end; case 2: mes "Okay, good luck!"; end; } }
  18. 2 points
  19. 2 points
    Need the latest kRO Install folder for your private server? Look no further! ----> Download <---- Latest: 2018-08-13 Installation: Official kRO Updated: 25/02/2019 Download Link: http://bit.ly/latestkro Package contains RSU RO Patcher Lite for kRO and kRO RE by [Ai4rei] This package is maintained by [Akkarin] This ZIP archive is 3.14GB in size and includes all BGMs plus the latest RSU ([2018-10-23] Release 2.4.23.800) Simply download, extract, play! A fan of this topic? Hit the rep button
  20. 2 points
    for initial you can go for 2gb RAM, just monitor your RAM usage then you can upgrade server RAM manually. For Digital ocean, if you decided to put fluxcp there, you need to be aware that DO block SMTP port until 60 days usage.
  21. 2 points
    Heya, This is possible, but it usually means the solution/algoritm you're trying to use is the wrong one to start with. That aside, you can use something similar to: duplicate "prontera", 154, 182, 4, "SourceNPC", "DuplicatedNPC", 77; And you'll have to do the changes below: diff --git a/src/map/npc.hpp b/src/map/npc.hpp index 0ce0c96a0..ffde62587 100644 --- a/src/map/npc.hpp +++ b/src/map/npc.hpp @@ -1219,6 +1219,7 @@ void do_clear_npc(void); void do_final_npc(void); void do_init_npc(void); void npc_event_do_oninit(void); +const char* npc_parse_duplicate(char* w1, char* w2, char* w3, char* w4, const char* start, const char* buffer, const char* filepath); int npc_event_do(const char* name); int npc_event_do_id(const char* name, int rid); diff --git a/src/map/script.cpp b/src/map/script.cpp index 604274ecd..9da5d4690 100644 --- a/src/map/script.cpp +++ b/src/map/script.cpp @@ -24548,6 +24548,38 @@ BUILDIN_FUNC(preg_match) { #endif } +BUILDIN_FUNC(duplicate) +{ + const char *map = script_getstr(st,2); + int x = script_getnum(st,3); + int y = script_getnum(st,4); + int dir = script_getnum(st,5); + const char *duplicate_name = script_getstr(st,6); + const char *npc_name = script_getstr(st,7); + char w1[2048], w2[2048], w3[2048], w4[2048], p[2048]; + int view_id = script_getnum(st,8); + struct npc_data* nd = map_id2nd(st->oid); + + if (!nd) { + return SCRIPT_CMD_FAILURE; + } + + sprintf(w1, "%s,%d,%d,%d", map, x, y, dir); + sprintf(w2, "duplicate(%s)", duplicate_name); + sprintf(w3, "%s", npc_name); + + if (script_hasdata(st,9) && script_hasdata(st,10)) { + sprintf(w4, "%d,%d,%d", view_id, script_getnum(st,9), script_getnum(st,10)); + } + else { + sprintf(w4, "%d", view_id); + } + + sprintf(p, "%s\t%s\t%s\t%s", w1, w2, w3, w4); + npc_parse_duplicate(w1,w2,w3,w4, p, p, nd->path); + return SCRIPT_CMD_SUCCESS; +} + /// script command definitions /// for an explanation on args, see add_buildin_func struct script_function buildin_func[] = { @@ -25170,6 +25202,8 @@ struct script_function buildin_func[] = { BUILDIN_DEF(achievement_condition,"i"), BUILDIN_DEF(getvariableofinstance,"ri"), BUILDIN_DEF(convertpcinfo,"vi"), + + BUILDIN_DEF(duplicate,"siiissi??"), #include "../custom/script_def.inc" {NULL,NULL,NULL},
  22. 2 points
    Just an idea: Tracking positions when using fly wings
  23. 2 points
    View File Hairstyle H20 Hairstyle H20 ~Fix all official hairstyle 31 human male 31 human female 10 doram male 10 doram female ~ No more Black & White Spot ~More organized palette ~ Compressed all color that needs to be change into 8 colors only Before After ~has been set to Shared head palettes type2 nemo patch sample: Head_1.pal ~ Adapt 34 hair palette of @KamiShi Submitter AshiHanna Submitted 08/01/2019 Category Hairstyles Content Author Gravity, AshiHanna  
  24. 2 points
    these are the only areas you should be touching : the part with 2 names swrdsmn/sm is for folder and prefix the single ones are for the job name you want to change... those are a bit spread out though for rb class ^ it will ask you to change inf name aswell ^ohh and JOB SPRITE is linked to this one too , dont mistaken it for a prefix
  25. 2 points
    Heya, These are ground unit skills. You'll want to skip the BL_PC check and then adjust the skill ratios to battle.cpp: diff --git a/src/map/battle.cpp b/src/map/battle.cpp index de8167f4a..904a672d8 100644 --- a/src/map/battle.cpp +++ b/src/map/battle.cpp @@ -4354,6 +4354,13 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list * if (sd && pc_checkskill(sd, SU_SPIRITOFLIFE)) skillratio += skillratio * status_get_hp(src) / status_get_max_hp(src); break; + case SG_SUN_WARM: + case SG_MOON_WARM: + case SG_STAR_WARM: + if (tsd) { + skillratio += -50; + } + break; } return skillratio; } diff --git a/src/map/skill.cpp b/src/map/skill.cpp index 3b7b4ba86..7656a247f 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -13795,7 +13795,7 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, t_t do { if( bl->type == BL_PC ) status_zap(bl, 0, 15); // sp damage to players - else // mobs + if( status_charge(ss, 0, 2) ) { // costs 2 SP per hit if( !skill_attack(BF_WEAPON,ss,&unit->bl,bl,sg->skill_id,sg->skill_lv,tick+(t_tick)count*sg->interval,0) ) status_charge(ss, 0, 8); //costs additional 8 SP if miss
  26. 2 points
    View File - Grand Arena PvP - [FREE RELEASE | DO NOT OWN DO NOT SELL ] Please do not own / do not sell If you need assistance kindly message me here or contact me via my facebook accounts https://www.facebook.com/JRDV8 https://www.facebook.com/profile.php?id=100011583280160 Special Thanks to @GodKnows Jhomz for prodiving me all the files necessary Hello again @Syouji i hope this will be good thanks haha i remember my epic upload last time thanks for letting me know about the details. Submitter DaemonSpade Submitted 07/29/2019 Category Maps & 3D Resources Video Content Author DaemonSpade  
  27. 2 points
    //===== rAthena Script ======================================= //= saders @petstats command //===== By: ================================================== //= Sader1992 //= Free!! //https://rathena.org/board/profile/30766-sader1992/ //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //https://github.com/sader1992/sader_scripts //===== Description: ========================================= //==== @petstats command //============================================================ ACMD_FUNC(petstats) { struct pet_data *pd = sd->pd; nullpo_retr(-1, sd); char output[CHAT_SIZE_MAX], petname[100], mobname[100], infostring1[100], infostring2[100]; int i; struct { const char* format; int value; } output_table[] = { { NULL, 0 }, { NULL, 0 }, { "Pet ID - %d", 0 }, { "Pet Level - %d", 0 }, { "Pet Loyalty - %d", 0 }, { "Pet equip - %d", 0 }, { "Pet Hungry - %d", 0 }, { NULL, 0 }, { NULL, 0 }, { "Mob ID - %d", 0 }, { "Egg ID - %d", 0 }, { "Food ID - %d", 0 }, { "Equip ID - %d", 0 }, }; pd = sd->pd; if (!pd) { clif_displaymessage(fd, msg_txt(sd, 184)); // Sorry, but you have no pet. return -1; } std::shared_ptr<s_pet_db> pet_db_ptr = pd->get_pet_db(); memset(infostring1, '\0', sizeof(infostring1)); memset(output, '\0', sizeof(output)); memset(petname, '\0', sizeof(petname)); memset(infostring2, '\0', sizeof(infostring2)); memset(mobname, '\0', sizeof(mobname)); sprintf(infostring2, "- Pet Information -"); output_table[0].format = infostring2; sprintf(petname, "Pet Name - %s", pd->pet.name); output_table[1].format = petname; output_table[2].value = pd->pet.pet_id; output_table[3].value = pd->pet.level; output_table[4].value = pd->pet.intimate; output_table[5].value = pd->pet.equip; output_table[6].value = pd->pet.hungry; sprintf(infostring1, "- Database Information -"); output_table[7].format = infostring1; // sprintf(mobname, "Mob Name - %s", pet_db_ptr->); output_table[8].format = mobname; output_table[9].value = pet_db_ptr->class_; output_table[10].value = pet_db_ptr->EggID; output_table[11].value = pet_db_ptr->FoodID; output_table[12].value = pet_db_ptr->AcceID; for (i = 0; i<13; i++) { sprintf(output, output_table[i].format, output_table[i].value); clif_displaymessage(fd, output); } return 0; } atcommand.inc ACMD_DEF(petstats), atcommand_def.inc or alternatively you can use on npc scripts. - script petinfo -1,{ OnInit: bindatcmd "petinfo",strnpcinfo(0)+"::OnPetInfo"; end; OnPetInfo: [email protected] = getpetinfo(PETINFO_ID); [email protected] = getpetinfo(PETINFO_CLASS); [email protected]$ = getpetinfo(PETINFO_NAME); [email protected] = getpetinfo(PETINFO_HUNGRY); [email protected] = getpetinfo(PETINFO_INTIMATE); [email protected] = getpetinfo(PETINFO_FOODID); [email protected]$ = getmonsterinfo([email protected],MOB_NAME); if ([email protected] == 0) { dispbottom "You do not have a pet.",0xff0000; dispbottom "@petinfo failed.",0xff0000; end; } dispbottom " ===== Pet information =====",0x00ff00; dispbottom "Original Name: "[email protected]$+" - Name: "[email protected]$,0x00ff00; dispbottom "Hungry: "[email protected]+" - Intimacy "[email protected],0x00ff00; dispbottom "Pet Food: "+F_ItemL2([email protected]),0x00ff00; end; } the result
  28. 2 points
    Heya, You can't do that (not without major changes anyway). I presume the goal here is to run a script in the source (which is a bad idea), but the easy solution here would simply be to set your variables as temporary global variables and then run an event label: In the source, you would use something like: #include "mapreg.h" #include "npc.h" [...] mapreg_setreg(reference_uid(add_str("[email protected]"), 0), MG_SAFETYWALL); mapreg_setreg(reference_uid(add_str("[email protected]"), 0), skill_id); mapreg_setregstr(reference_uid(add_str("[email protected]$"), 0), "a string"); npc_event_do_id("MyScript::OnCalled", sd->bl.id); And in the script: function script myfunction { announce "arg1: " + getarg(0) + ", arg2: " + getarg(1) + ", arg3: " + getarg(2); return; } - script MyScript -1,{ end; OnCalled: callfunc("myfunction", [email protected], [email protected], [email protected]$); end; } It would be much easier to do the code in the source directly instead though.
  29. 2 points
    View File Geffen Magic Tournament Enchanter Geffen Magic Tournament armors and accessories enchanter. Note: Magic Reflector and Revised Encyclopedia are disabled from enchanting since I'm not sure if they can be enchanted or not. Also increase healing received by 5~10% for armor is disabled since I'm not sure what's the random option for that. Credits: kRO, iRO, NovaRO and Divine-pride Submitter NotKappa Submitted 07/26/2019 Category Utilities Video Content Author NotKappa  
  30. 2 points

    Version 1.0.0

    61 downloads

    Geffen Magic Tournament armors and accessories enchanter. Note: Magic Reflector and Revised Encyclopedia are disabled from enchanting since I'm not sure if they can be enchanted or not. Also increase healing received by 5~10% for armor is disabled since I'm not sure what's the random option for that. Credits: kRO, iRO, NovaRO and Divine-pride

    Free

  31. 2 points
    Source edit. Do-able since this would work the same way as the KS protection system they have in place.
  32. 2 points

    Version 1.0.0

    56 downloads

    Simple theme for Thor patcher. Free for use

    Free

  33. 2 points
    Hii! Some time ago I finally finished the second version that I had promised of this map in the section of Projects and Concepts in Progress: This is also my second map ever finished x3 The first version was made in September of 2018, but one of these is a slightly revisited version of that older one, and the second one has certain parts of the public area changed :3 Note: I'm using some of the screenies from that post to avoid uploading unnecessarily, since the map looks the same essentially β˜†β˜…β˜†Previewsβ˜†β˜…β˜† Path to the Gods ver. This is the first version with some fixes. This area looks more "simple" than the second one, as the idea is that this place is "sacred", unlike the second one. Path to Glory ver. This is the second version. This is more like a true colosseum, with banners and even an ornated place from where the royalty or rulers can oversee the battle below. - The areas for the public are walkable, in case someone wants to add NPCs as spectators or wants to use those areas otherwise. - The fighting areas of both versions are almost exactly the same except for one tiny detail, but the difference is mostly aesthetic. - Oh and I really enjoyed working on this map! I took so long to showcase it because I was working on other maps, projects and irl, and I wanted it to be perfect, and because I had said that it was going to have these two versions. - There will definitely be a third version of this map that will vary much, much more from these two (and it will definitely not take one year to appear x.x). I hope you like it!
  34. 1 point
    boa tarde quanto esta o valor do shield?
  35. 1 point
    prontera,155,181,5 script Sample 4_F_KAFRA1,{ if (!quest_random) { quest_random = rand(1, 3); mes "You have been assigned with a new quest."; next; } switch(quest_random) { case 1: setarray [email protected], 4001, 1; setarray [email protected], 512; setarray [email protected], 100; break; case 2: setarray [email protected], 4002, 1; setarray [email protected], 501, 502, 503; setarray [email protected], 3, 1, 2; break; case 3: setarray [email protected], 4003, 1; setarray [email protected], 512, 503; setarray [email protected], 300, 100; break; default: mes "invalid quest."; close; } mes "Quest Requirement(s):"; [email protected] = getarraysize([email protected]); for ([email protected] = 0; [email protected] < [email protected]; [email protected]++) { mes " > "[email protected][[email protected]]+"x "+getitemname([email protected][[email protected]]); if (countitem([email protected][[email protected]]) < [email protected][[email protected]]) [email protected]++; } if ([email protected]) { next; if (select("Submit Quest", "Cancel") == 1) { for ([email protected] = 0; [email protected] < [email protected]; [email protected]++) delitem [email protected][[email protected]], [email protected][[email protected]]; getitem [email protected][0], [email protected][1]; quest_random = 0; } } close; } try
  36. 1 point
    @Gerzzie what they are looking for is this type of modification or is it what I understand...
  37. 1 point
    I am interested in the subject as well. I believe it is possible.
  38. 1 point
  39. 1 point
    You go to db / [re or pre] / item_db Take the last ID value, probably 30xxx, make a separation to arrange: // ------ My itens 30xxx + = 1, your items
  40. 1 point
    Reminds me of Arc, some shooter from the 80s or something
  41. 1 point
    Put the file rapa_flaο»Ώg.gr2ο»Ώ in your data/model/3dmob/ folder... Than you modify jobname.lua/lub wich is located inside \data\luafiles514\lua files\datainfo\ at this line [jobtbl.JT_GUILD_FLAG] = "rapa_flaο»Ώg.gr2ο»Ώ"ο»Ώ, <- the gr2 file would have the orignal flag name which I forgot but you got the point... Hope you get it ;]
  42. 1 point
    Haruka Mayumi is a name i came up for my daughter. Lmao. Kanji's from Spring and Flower.. Because my daughter was birth during spring and my wife loves flowers.
  43. 1 point

    Version 1.0.8

    1,150 downloads

    Extended Battleground [eAmod BG] Made in Git Hash: '91169d7ebccccaf5008076383c89ff3a6c514a9e' Repository (db/npc/clientside): https://github.com/xEasycore/ExtendedBG Description Battleground System from eAmod compatibilized with rA c++. Features - Temporal guild System (Fake Guild) - Queue System (@joinbg) - Guild Skills usable in Battleground - Guild Skills separated cooldown - Anti AFK system - Enable/Disable BG Announces Commands @joinbg: queue join @leavebg: queue leave @order: sends a message to your team @leader: change team leader @reportafk: kick an AFK player @listenbg: enable/disable display bg announces Admin Commands @bgstart: enable BG queue @bgstop: disable BG queue @bgmode: change actual BG arena (own creation) @bgsize: change min/max players for an Arena (own creation) Arenas availables - Capture the Flag - Team DeathMatch - Conquest - Rush - Triple Inferno - Eye of the Storm - Domination - Feel free to Donate if you want to support me Note: This release is not stable, use it at your own risk.

    Free

  44. 1 point
    roCORD for rAthena Hey everyone, I am currently working on a Discord bot which allows interaction between a Discord server and an in game channel. Support for Version 1 is now dropped! Version 2 can be found under this link -> https://github.com/Normynator/roCORD/tree/development Documentation about installation and configuration can be found here -> https://github.com/Normynator/roCORD/tree/development/docs More updates on Version 2 will follow.
  45. 1 point
    BotKiller 6 BotKiller 6 is a powerfull antibot system based on Scripts, useful to detect Bots without modify your server executables nor install external libraries. Features ​BK6 support external modules, giving flexibility and security to your server. BK6 was integrated with a new multi-language system that support multiple languages at the same time, the users can change the default language whispering to npc:lang BK6 give you enough time to find a safe place before initiate the interrogatory, during that time the player will glow to visually alert to other players about this process. During the interrogatory, the player will see the remaining time to respond in real time. BK6 rewards player when their effectiveness is OK responding the antibot (AGI,DEX,Zeny,Exp) BK6 will try to bypass recently interrogated players and definitely will ignore chatting or vending players. The Administrators are allowed to send a manual interrogatory to anyone in any moment. The players are allowed to send a manual interrogatory to any other common player, excepting players chatting, vending or in locked places (whisp to npc:bkconfig to configure BK6 safe zones) BK6 now uses "real time" in prison, the countdown only works when the guy remains logged in the jail. When the countdown is over, the player have to respond a new interrogatory to be sure is a human. if failed, the countdown is restarted and the Bot player is kicked from the server. BK6 store logs that helps administrators to detect Bots Players and apply other sanctions. Installation:Download​ the script: bk6.rar (6.17) Additional Languages:Portuguese: BK6_PT.txt (by Pedro Brito) Modify "script_athena.conf" setting this values to the check_* parameters.check_cmdcount: 655360 check_gotocount: 655360 Create this folders in your server root:npc/custom/bk npc/custom/bk/lang npc/custom/bk/mods Copy this scripts in the following paths:npc/custom/bk/LangManagement.txt npc/custom/bk/VarSystem.txt npc/custom/bk/BotKiller6.txt npc/custom/bk/lang/BK6_EN.txt npc/custom/bk/lang/BK6_ES.txt npc/custom/bk/mods/BK6_Asc2Num.txt npc/custom/bk/mods/BK6_Asc2Word.txt npc/custom/bk/mods/BK6_Fakename.txt npc/custom/bk/mods/BK6_Img2Num.txt npc/custom/bk/mods/BK6_SMath.txt npc/custom/bk/mods/BK6_Lie2Me.txt npc/custom/bk/mods/BK6_WordNum.txt To use Img2Num Module, use this client patch: BK6_Img2Num.rar Edit npc/scripts_custom.conf adding the following lines: // Unlimited Variable System npc: npc/custom/bk/VarSystem.txt // Multi-Language System npc: npc/custom/bk/LangManagement.txt // Translations npc: npc/custom/bk/lang/BK6_EN.txt // English Dialogs npc: npc/custom/bk/lang/BK6_ES.txt // Spanish Dialogs // Remember to copy and declare here any additional language // BotKiller Main Script npc: npc/custom/bk/BotKiller6.txt // BotKiller Modules npc: npc/custom/bk/mods/BK6_Asc2Num.txt npc: npc/custom/bk/mods/BK6_Asc2Word.txt npc: npc/custom/bk/mods/BK6_Fakename.txt npc: npc/custom/bk/mods/BK6_Img2Num.txt npc: npc/custom/bk/mods/BK6_Lie2Me.txt npc: npc/custom/bk/mods/BK6_SMath.txt npc: npc/custom/bk/mods/BK6_WordNum.txt Run your server and whisp to npc:bkconfig to configure BotKiller 6.* Note: BotKiller 6 doesn't work on TXT based servers, please don't request it * Some Demos: Basic Demo: Modules: Lie2Me Module: Asc2Number Module: Img2Num Module: Simple Math Module: Asc2Word Module: Word Num Module: Testing GM Commands trying to ByPass BotKiller 6: History: 2011-05-01: 6.0 - New version, a friendly Police in Midgard! 2012-01-18: 6.1 - Using the new version of Unlimited Variable System! 2012-01-19: 6.11 - Fixed some problems in the jail! 2012-01-19: 6.12 - Fixed another wierd function in the jail! 2012-01-28: 6.13 - npc:bk don't show player selector when found only 1' 2012-01-28: 6.13 - removed some useless variables in functions
  46. 1 point
    Hi guys! Maybe someone translate it and pull to our git Recently, there are requests for missing NPCs and I decided to help the project a bit with updating the NPCs like this issue: Issue: 3916, Issue: 3681, Issue: 3772, Issue: 3498 Not all scripts are complited yet, but i will update it when I find more information/test it in kRo. Missed shop with hats prt_in,117,79,5 shop μž₯λ‚œκ°μƒμΈ#prt 715,2239:-1,2201:-1,2243:-1,2212:-1,2242:-1,2241:-1 Character Position Change Coupon seller prt_in,211,173,3 script 슬둯 이동 μΉ΄λ“œ 판맀#slo 4_F_01,{ // 885 mes "[νŒλ§€μ›]"; mes "μ•ˆλ…•ν•˜μ„Έμš”."; mes "<ITEM>[슬둯 이동 μΉ΄λ“œ]<INFO>12786</INFO></ITEM>λ₯Ό νŒλ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€."; mes "^4d4dffμΉ΄λ“œλ₯Ό μ‚¬μš©ν•œ μΊλ¦­ν„°μ˜ 슬둯 μœ„μΉ˜λ₯Ό λ³€κ²½^000000ν•  수 μžˆμŠ΅λ‹ˆλ‹€."; next; mes "[νŒλ§€μ›]"; mes "맀 μ£Ό ν•œμ • μˆ˜λŸ‰μœΌλ‘œ νŒλ§€ν•˜κ³  μžˆμœΌλ―€λ‘œ, 아무것도 보이지 μ•ŠλŠ”λ‹€λ©΄"; mes "λ¬Όν’ˆμ΄ λͺ¨λ‘ μ†Œμ§„ 된 κ²ƒμ΄λ‹ˆ λ‹€μŒμ— λ‹€μ‹œ μ™€μ£Όμ„Έμš”."; close2; callshop "change_slot#slo"; end; OnClock0000: if (gettime(DT_DAYOFWEEK) == 1) npcshopupdate "change_slot#slo",12786,0,9999; end; } - marketshop change_slot#slo FAKE_NPC,12786:100000:9999 Emperium seller prt_in,212,169,3 script κΈΈλ“œ 사무직원 4_M_04,{ // 1890 if (gettime(DT_DAYOFWEEK) >= 1 && gettime(DT_DAYOFWEEK) <= 6 && gettime(DT_HOUR) >= 18 && gettime(DT_HOUR) <= 23) { mes "[κΈΈλ“œ 사무직원]"; mes "κΈΈλ“œ μ‚¬λ¬΄μ†Œμ— 였늘 ν•˜λ£¨ 배포될 μ— νŽ λ¦¬μ›€μ΄ λ„μ°©ν–ˆμŠ΅λ‹ˆλ‹€. ꡬ맀λ₯Ό μ›ν•˜μ‹œλ©΄ μ›ν•˜λŠ” 만큼 λ‹΄μ•„μ£Όμ„Έμš”~"; next; mes "[κΈΈλ“œ 사무직원]"; mes "μ˜€λŠ˜μ€ 왠지 μ— νŽ λ¦¬μ›€μ„ μ°ΎλŠ”λΆ„λ“€μ΄ λ§Žμ„ 것 κ°™κ΅°μš”. κ·Έλƒ₯ 개인적인 κΈ°λΆ„μž…λ‹ˆλ‹€."; close2; callshop "emp_seller#slo"; end; } mes "[κΈΈλ“œ 사무직원]"; mes "저희 κΈΈλ“œ μ‚¬λ¬΄μ†Œμ—μ„œλŠ” λͺ¨ν—˜κ°€λ‹˜λ“€μ˜ μ›ν™œν•œ λͺ¨μž„을 적극 μ§€μ§€ν•©λ‹ˆλ‹€"; next; mes "[κΈΈλ“œ 사무직원]"; mes "κ·Έ μΌν™˜μœΌλ‘œ ^0000ffμ›”μš”μΌ~ν† μš”μΌ^000000"; mes "맀일 100개 ν•œμ •μˆ˜λŸ‰μ˜ <ITEM>μ— νŽ λ¦¬μ›€<INFO>714</INFO></ITEM>을"; mes "μ˜€ν›„ ^0000ff18:00~23:59^000000 κΉŒμ§€ νŒλ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€."; next; mes "[κΈΈλ“œ 사무직원]"; mes "μ΄μ™Έμ˜ μ‹œκ°„μ—λŠ” 저희 κΈΈλ“œμ‚¬λ¬΄μ†Œλ„ μ— νŽ λ¦¬μ›€ μˆ˜κΈ‰μ„ μœ„ν•΄μ„œ λ›°μ–΄λ‹€λ…€μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— 판맀λ₯Ό ν•˜μ§€ μ•ŠμœΌλ‹ˆ μ°Έκ³ ν•˜μ‹­μ‹œμ˜€."; close; OnClock0000: if (gettime(DT_DAYOFWEEK) == 1) npcshopupdate "emp_seller#slo",714,0,100; end; } - marketshop emp_seller#slo FAKE_NPC,714:1000000:100 // Need to check item price Wedding shop dealer (changed coordinate & added ring for sell) link prt_in,211,169,0 shop Wedding Shop Dealer#prt 71,744:-1,745:-1,2338:-1,2206:-1,7170:-1 changed to: prt_in,285,169,0 shop Wedding Shop Dealer#prt 71,744:-1,745:-1,2338:-1,2206:-1,7170:-1,2613:-1 Family relationship guide - in progress prt_in,285,167,3 script 인지와 λ°˜μ§€κ°μΈ#we 4_DR_F_01,{ // 1936 mes "[에밀리]"; mes "μ•ˆλ…•ν•˜μ‹­λ‹ˆκΉŒ, μ„ μƒλ‹˜. 무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?"; next; switch(select("μ—¬κΈ°μ„  뭘 ν•˜λ‚˜μš”??:인지 κ΅¬μž…:λ°˜μ§€μ— 이름을 μƒˆκ²¨ μ£Όμ„Έμš”.")) { case 1: mes "[λ””νƒˆλ¦¬]"; mes "μ–΄λ–€ 것에 λŒ€ν•œ μ•ˆλ‚΄κ°€ ν•„μš”ν•˜μ‹­λ‹ˆκΉŒ?"; next; switch(select("인지:λ°˜μ§€μ— 각인:μ•ˆλ‚΄λŠ” ν•„μš” μ—†μ–΄μš”.")) { case 1: mes "[λ””νƒˆλ¦¬]"; mes "μ΄κ³³μ—μ„œλŠ” 인지가 λΆ€μ°©λœ 혼인 μ„œμ•½μ„œμ™€ 독립 μΈμ¦μ„œλ₯Ό λ°œκΈ‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "^0000cdκ²°ν˜Όμ‹μ—λŠ” 혼인 μ„œμ•½μ„œ^000000κ°€, ^0000cdμ„ΈλŒ€ λΆ„λ¦¬μ—λŠ” 독립 μΈμ¦μ„œ^000000λ₯Ό μ†Œμ§€ν•˜κ³  μžˆμ–΄μ•Ό 민원이 μ§„ν–‰λ©λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "ν•„μš”ν•˜μ‹  μ¦μ„œλ₯Ό ν™•μΈν•˜μ‹  후에 μ €μ—κ²Œ 신청을 ν•˜μ‹œλ©΄ 인지가 λΆ€μ°©λœ μ¦μ„œλ₯Ό λ“œλ¦½λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "μ–΄λ–€ 것에 λŒ€ν•œ μ•ˆλ‚΄κ°€ ν•„μš”ν•˜μ‹­λ‹ˆκΉŒ?"; close; case 2: mes "[λ””νƒˆλ¦¬]"; mes "κ²°ν˜Όμ‹μ„ 마치고 μ •μ‹μœΌλ‘œ λΆ€λΆ€κ°€ λ˜μ‹  뢄듀이 λ‚˜λˆ  끼신 ^0000cd결혼 λ°˜μ§€^000000λ₯Ό 가지고 μ˜€μ‹œλ©΄ ^0000cdμ†Œμ •μ˜ λΉ„μš©λ§Œ^000000을 λ°›κ³  ^0000cdλ°°μš°μžλΆ„μ˜ 이름^000000을 μƒˆκ²¨λ“œλ¦½λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "평생을 간직할 μ†Œμ€‘ν•œ 좔얡이 λ˜μ‹€ κ²λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "μ–΄λ–€ 것에 λŒ€ν•œ μ•ˆλ‚΄κ°€ ν•„μš”ν•˜μ‹­λ‹ˆκΉŒ?"; close; case 3: mes "[λ””νƒˆλ¦¬]"; mes "도움이 ν•„μš”ν•˜λ©΄ μ–Έμ œλ“ μ§€ μ°Ύμ•„ μ£Όμ‹œκΈΈ λ°”λžλ‹ˆλ‹€."; close; } case 2: mes "[λ””νƒˆλ¦¬]"; mes "μ–΄λ–€ μΈμ§€μ˜ ꡬ맀λ₯Ό λ„μ™€λ“œλ¦΄κΉŒμš”?"; next; switch(select("혼인 μ„œμ•½μ„œ:독립 μΈμ¦μ„œ")) { case 1: mes "[λ””νƒˆλ¦¬]"; mes "μ£„μ†‘ν•˜μ§€λ§Œ μ†Œμ§€ν•˜μ‹  κΈˆμ•‘μ΄ λΆ€μ‘±ν•©λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "인지가 λΆ€μ°©λœ 혼인 μ„œμ•½μ„œμ˜ 가격은 ^0000cd1,500,000μ œλ‹ˆ^000000μž…λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "μ†Œμ§€κΈˆμ„ ν™•μΈν•˜μ‹  ν›„ λ‹€μ‹œ μ΄μš©ν•΄ μ£Όμ‹­μ‹œμ˜€."; close; case 2: mes "[λ””νƒˆλ¦¬]"; mes "μ£„μ†‘ν•˜μ§€λ§Œ 독립 μΈμ¦μ„œλŠ” μžλ…€λΆ„μ΄ μžˆλŠ” ^0000cdλΆ€λͺ¨^000000μ΄κ±°λ‚˜ 독립 λŒ€μƒμžμΈ ^0000cd베이비^000000인 κ²½μš°μ—λ§Œ κ΅¬μž…ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€."; close; } case 3: mes "[λ””νƒˆλ¦¬]"; mes "μ£„μ†‘ν•©λ‹ˆλ‹€. κ²°ν˜Όλ°˜μ§€μ— 이름을 μƒˆκ²¨λ“œλ¦¬λŠ” μ„œλΉ„μŠ€λŠ” ^0000cd기혼자λ₯Ό λŒ€μƒ^000000으둜 ν•©λ‹ˆλ‹€."; close; } } Written Oath Of Marriage prt_in,285,167,3 script 인지와 λ°˜μ§€κ°μΈ#we 4_DR_F_01,{ // 1936 mes "[에밀리]"; mes "μ•ˆλ…•ν•˜μ‹­λ‹ˆκΉŒ, μ„ μƒλ‹˜. 무엇을 λ„μ™€λ“œλ¦΄κΉŒμš”?"; next; switch(select("μ—¬κΈ°μ„  뭘 ν•˜λ‚˜μš”??:인지 κ΅¬μž…:λ°˜μ§€μ— 이름을 μƒˆκ²¨ μ£Όμ„Έμš”.")) { case 1: mes "[λ””νƒˆλ¦¬]"; mes "μ–΄λ–€ 것에 λŒ€ν•œ μ•ˆλ‚΄κ°€ ν•„μš”ν•˜μ‹­λ‹ˆκΉŒ?"; next; switch(select("인지:λ°˜μ§€μ— 각인:μ•ˆλ‚΄λŠ” ν•„μš” μ—†μ–΄μš”.")) { case 1: mes "[λ””νƒˆλ¦¬]"; mes "μ΄κ³³μ—μ„œλŠ” 인지가 λΆ€μ°©λœ 혼인 μ„œμ•½μ„œμ™€ 독립 μΈμ¦μ„œλ₯Ό λ°œκΈ‰ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "^0000cdκ²°ν˜Όμ‹μ—λŠ” 혼인 μ„œμ•½μ„œ^000000κ°€, ^0000cdμ„ΈλŒ€ λΆ„λ¦¬μ—λŠ” 독립 μΈμ¦μ„œ^000000λ₯Ό μ†Œμ§€ν•˜κ³  μžˆμ–΄μ•Ό 민원이 μ§„ν–‰λ©λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "ν•„μš”ν•˜μ‹  μ¦μ„œλ₯Ό ν™•μΈν•˜μ‹  후에 μ €μ—κ²Œ 신청을 ν•˜μ‹œλ©΄ 인지가 λΆ€μ°©λœ μ¦μ„œλ₯Ό λ“œλ¦½λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "μ–΄λ–€ 것에 λŒ€ν•œ μ•ˆλ‚΄κ°€ ν•„μš”ν•˜μ‹­λ‹ˆκΉŒ?"; close; case 2: mes "[λ””νƒˆλ¦¬]"; mes "κ²°ν˜Όμ‹μ„ 마치고 μ •μ‹μœΌλ‘œ λΆ€λΆ€κ°€ λ˜μ‹  뢄듀이 λ‚˜λˆ  끼신 ^0000cd결혼 λ°˜μ§€^000000λ₯Ό 가지고 μ˜€μ‹œλ©΄ ^0000cdμ†Œμ •μ˜ λΉ„μš©λ§Œ^000000을 λ°›κ³  ^0000cdλ°°μš°μžλΆ„μ˜ 이름^000000을 μƒˆκ²¨λ“œλ¦½λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "평생을 간직할 μ†Œμ€‘ν•œ 좔얡이 λ˜μ‹€ κ²λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "μ–΄λ–€ 것에 λŒ€ν•œ μ•ˆλ‚΄κ°€ ν•„μš”ν•˜μ‹­λ‹ˆκΉŒ?"; close; case 3: mes "[λ””νƒˆλ¦¬]"; mes "도움이 ν•„μš”ν•˜λ©΄ μ–Έμ œλ“ μ§€ μ°Ύμ•„ μ£Όμ‹œκΈΈ λ°”λžλ‹ˆλ‹€."; close; } case 2: mes "[λ””νƒˆλ¦¬]"; mes "μ–΄λ–€ μΈμ§€μ˜ ꡬ맀λ₯Ό λ„μ™€λ“œλ¦΄κΉŒμš”?"; next; switch(select("혼인 μ„œμ•½μ„œ:독립 μΈμ¦μ„œ")) { case 1: mes "[λ””νƒˆλ¦¬]"; mes "μ£„μ†‘ν•˜μ§€λ§Œ μ†Œμ§€ν•˜μ‹  κΈˆμ•‘μ΄ λΆ€μ‘±ν•©λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "인지가 λΆ€μ°©λœ 혼인 μ„œμ•½μ„œμ˜ 가격은 ^0000cd1,500,000μ œλ‹ˆ^000000μž…λ‹ˆλ‹€."; next; mes "[λ””νƒˆλ¦¬]"; mes "μ†Œμ§€κΈˆμ„ ν™•μΈν•˜μ‹  ν›„ λ‹€μ‹œ μ΄μš©ν•΄ μ£Όμ‹­μ‹œμ˜€."; close; case 2: mes "[λ””νƒˆλ¦¬]"; mes "μ£„μ†‘ν•˜μ§€λ§Œ 독립 μΈμ¦μ„œλŠ” μžλ…€λΆ„μ΄ μžˆλŠ” ^0000cdλΆ€λͺ¨^000000μ΄κ±°λ‚˜ 독립 λŒ€μƒμžμΈ ^0000cd베이비^000000인 κ²½μš°μ—λ§Œ κ΅¬μž…ν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€."; close; } case 3: mes "[λ””νƒˆλ¦¬]"; mes "μ£„μ†‘ν•©λ‹ˆλ‹€. κ²°ν˜Όλ°˜μ§€μ— 이름을 μƒˆκ²¨λ“œλ¦¬λŠ” μ„œλΉ„μŠ€λŠ” ^0000cd기혼자λ₯Ό λŒ€μƒ^000000으둜 ν•©λ‹ˆλ‹€."; close; } } Divirce information prt_in,285,165,5 script 이혼 μ•ˆλ‚΄#wedd 1_M_SIGNART,{ // 1935 mes "[λ…ΈνŠΌ]"; mes "κ²°ν˜Όλ„ μ•ˆ ν•œ μ‚¬λžŒμ΄ μ΄ν˜Όμ— λ¨Όμ € 관심을 가지면 μ–΄λ–‘ν•˜λ‚˜μš”?"; close; } Insurance heart changer, item: κ³„μ•½μ˜ 심μž₯ its working like Life Insurance but it is etc item and no need to use it, item disappears when the character dies and its duration time is unlimited. prt_in,82,108,5 script 심μž₯ 상인#life01 4_M_NFDEADMAN2,5,5,{ // 884 mes "[심μž₯ 상인]"; mes "μ•ˆλ…•ν•˜μ‹ κ°€! 심μž₯을 λ°° λ°–μœΌλ‘œ 내놓고, λŒ€λ₯™ 곳곳을 λˆ„λΉ„λ©° μœ„ν—˜μ²œλ§Œν•œ μŠ€λ¦΄μ„ λ§Œλ½ν•˜μ‹œλŠ” λͺ¨ν—˜κ°€!"; next; mes "[심μž₯ 상인]"; mes "ν˜Ήμ‹œ 가지고 μžˆλŠ” <ITEM>["+getitemname(12209)+"]<INFO>12209</INFO></ITEM>λ₯Ό 더 쒋은 물건으둜 λ°”κΏ€ 생각 μ—†μ–΄? 이λ₯Όν…Œλ©΄... <ITEM>["+getitemname(6413)+"]<INFO>6413</INFO></ITEM> 같은 걸둜. μ–΄λ•Œ?"; next; switch(select("그게 λ­”λ°μš”?:κ΅ν™˜ν•΄ μ£Όμ„Έμš”!:관심 μ—†μ–΄μš”.")) { case 1: mes "[심μž₯ 상인]"; mes "<ITEM>["+getitemname(12209)+"]<INFO>12209</INFO></ITEM>λŠ” λ„ˆν¬ μ‚° μžλ“€μ΄ μ‚¬μš© ν›„ 30λΆ„κ°„ 1νšŒμ— ν•œν•΄ μ‚¬λ§μ‹œ κ²½ν—˜μΉ˜ κ°μ†Œλ₯Ό 받지 μ•Šκ²Œ ν•΄μ£ΌλŠ” λ¬Όκ±΄μ΄μ—ˆμ§€."; next; mes "[심μž₯ 상인]"; mes "ν•˜μ§€λ§Œ λ§Žμ€ μ‚¬λžŒλ“€μ΄ μ‹œκ°„μ— λŒ€ν•œ 뢀뢄을 μ•„μ‰¬μ›Œ ν•˜λ”λΌ? κ·Έλž˜μ„œ λ‚΄κ°€ κ·Έκ±Έ 보고 <ITEM>["+getitemname(6413)+"]<INFO>6413</INFO></ITEM>을 μ€€λΉ„ν–ˆμ§€."; next; mes "[심μž₯ 상인]"; mes "이 <ITEM>["+getitemname(6413)+"]<INFO>6413</INFO></ITEM>은 ^EE0000μ‹œκ°„μ— 상관 없이 μ†Œμ§€ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλ„^000000 1νšŒμ— ν•œν•΄ μ‚¬λ§μ‹œ κ²½ν—˜μΉ˜ κ°μ†Œλ₯Ό 받지 μ•Šκ²Œ ν•΄μ£ΌλŠ” 물건이야. λ¬Όλ‘  사망 후에 κ³„μ•½μ˜ 심μž₯은 μ‚¬λΌμ§€μ§€λ§Œ 말이야."; next; select("μ™œ λ°”κΏ” μ£Όμ‹œλ‚˜μš”?"); mes "[심μž₯ 상인]"; mes "그런게 κΆκΈˆν•΄? λ‚˜λŠ” 상인이야. μ£½μ–΄μ„œλ„ μ‚΄μ•„μ„œλ„ 물건을 사고 νŒŒλŠ” 것이 μˆ™λͺ…이지. 돈이 될 일이 μƒκ²ΌλŠ”λ° 이런 기회λ₯Ό λ‚΄κ°€ λ†“μΉ˜κ² μ–΄? λ‚˜λŠ” λˆμ„ 벌고, μ‚° μžλ“€μ€ 죽음의 κ³ ν†΅μ—μ„œ μ‘°κΈˆμ΄λΌλ„ λ²—μ–΄λ‚˜κ³ . 쒋은 κ±°λž˜μž–μ•„?"; next; mes "[심μž₯ 상인]"; mes "μ΄μ―€μ—μ„œ κΆκΈˆν•œ κ±° μžˆμ§€? κ΅ν™˜ λΉ„μœ¨ 말이야. <ITEM>["+getitemname(12209)+"]<INFO>12209</INFO></ITEM> 5μž₯λ‹Ή <ITEM>["+getitemname(6413)+"]<INFO>6413</INFO></ITEM> 1개둜 λ°”κΏ” μ€„κ²Œ."; next; mes "[심μž₯ 상인]"; mes "μ–΄λ•Œ? 손해 λ³΄λŠ” 쑰건은 μ•„λ‹ˆμž–μ•„? ꡳ이 μ‹œκ°„μ— μ‹ κ²½ μ“Έ ν•„μš” μžˆμ–΄? μ•„μ°”μ§œλ¦Ών•œ λͺ¨ν—˜μ„ μ¦κΈ°λŠ” λͺ¨ν—˜κ°€λΌλ©΄ ν•„μˆ˜λ‘œ κ°–μΆ°μ•Ό ν•˜λŠ” 물건 이지. μ•”~"; close; case 2: mes "[심μž₯ 상인]"; mes "그래, 그래. 잘 μƒκ°ν–ˆμ–΄. 이왕 가지고 μžˆλŠ” κ±Έ 더 쒋은 물건으둜 κ΅ν™˜ν•˜λŠ” 것이 낫지. μ•ˆκ·Έλž˜?"; next; mes "[심μž₯ 상인]"; mes "^0000cdκΈ°μ‘΄ μ¦μ„œ 5μž₯으둜 κ³„μ•½μ˜ 심μž₯ 1개둜^000000 λ°”κΏ€ 수 μžˆμ–΄."; next; mes "[심μž₯ 상인]"; mes "λ‹€λ§Œ ^EE0000[λΉ„λ§€ν’ˆ]생λͺ…λ³΄ν—˜ μ¦μ„œλŠ” κ΅ν™˜ λŒ€μƒμ—μ„œ μ œμ™Έ^000000λ˜λ‹ˆκΉŒ κ·Έκ±Έ 가지고 μ™€μ„œ λ°”κΏ” 달라고 해도 μ†Œμš© μ—†μ–΄."; next; mes "[심μž₯ 상인]"; mes "그럼 이제 κ΅ν™˜ν•΄ 볼까?"; next; switch(select("κ΅ν™˜ν•΄ μ£Όμ„Έμš”!:κ΅ν™˜ μ•ˆν• λž˜μš”.")) { case 1: mes "[심μž₯ 상인]"; mes "λͺ‡ μž₯ κ΅ν™˜ν•˜κ³  μ‹Άμ–΄? ^0000cdν•œ λ²ˆμ— μ΅œλŒ€ 10μž₯κΉŒμ§€ κ΅ν™˜ κ°€λŠ₯^000000ν•œλ°."; next; input [email protected]; if ([email protected] == 0) { mes "[심μž₯ 상인]"; mes "음? λ³„λ‘œ 관심 μ—†λ‚˜? 이거 정말 쒋은 물건인데, 정말 쒋은데. 그치만 μ‚΄ μ‚¬λžŒμ΄ μ‹«λ‹€λ©΄ λ‚˜λ„ κ°•μš”λŠ” μ•ˆν•΄."; close; } else if ([email protected] > 10) { mes "[심μž₯ 상인]"; mes "^0000cdν•œ λ²ˆμ— μ΅œλŒ€ 10μž₯^000000κΉŒμ§€ λ°”κΏ€ 수 μžˆλŒ”μž–μ•„. μˆ˜λŸ‰μ„ λ‹€μ‹œ 확인해 봐."; close; } else { if (countitem(12209) < ([email protected]*5)) { mes "[심μž₯ 상인]"; mes "음, μ €κΈ°... λ„€κ°€ 가진 생λͺ…λ³΄ν—˜ μ¦μ„œκ°€ λΆ€μ‘±ν•œλ°? <ITEM>[생λͺ…λ³΄ν—˜ μ¦μ„œ]<INFO>12209</INFO></ITEM> 5μž₯λ‹Ή <ITEM>[κ³„μ•½μ˜ 심μž₯]<INFO>6413</INFO></ITEM> 1κ°œμ•Ό. μˆ˜λŸ‰μ„ 확인해 봐."; close; } mes "[심μž₯ 상인]"; mes "자, 이걸둜 λ„€κ°€ 가지고 있던 ^0000cd생λͺ…λ³΄ν—˜ μ¦μ„œ^000000λ₯Ό ^EE0000κ³„μ•½μ˜ 심μž₯^000000으둜 κ΅ν™˜ν–ˆλ‹€!! 쒋은 κ±°λž˜μ˜€μ§€, 그치? λ‹€μŒμ— μ¦μ„œκ°€ 생기면 또 μ°Ύμ•„ 였라고!"; delitem 12209,[email protected]*5; getitem 6413,[email protected]; close; } case 2: mes "[심μž₯ 상인]"; mes "이거 정말 쒋은 쑰건인데! λͺ¨ν—˜κ°€, λ„ˆμ²˜λŸΌ 이 μœ„ν—˜μ²œλ§Œν•œ κ³³μ—μ„œ λͺ¨ν—˜μ„ 즐기렀면 λ°˜λ“œμ‹œ ν•„μš”ν•œ 물건이라고!"; next; mes "[심μž₯ 상인]"; mes "λ‚˜μ€‘μ—λΌλ„ 관심이 생기면 κΌ­ κ΅ν™˜ν•˜λŸ¬ μ˜€κΈ°μ•Ό. μ•Œμ•˜μ§€?"; close; } case 3: mes "[심μž₯ 상인]"; mes "이거 정말 쒋은 쑰건인데! λͺ¨ν—˜κ°€, λ„ˆμ²˜λŸΌ 이 μœ„ν—˜μ²œλ§Œν•œ κ³³μ—μ„œ λͺ¨ν—˜μ„ 즐기렀면 λ°˜λ“œμ‹œ ν•„μš”ν•œ 물건이라고!"; next; mes "[심μž₯ 상인]"; mes "λ‚˜μ€‘μ—λΌλ„ 관심이 생기면 κΌ­ κ΅ν™˜ν•˜λŸ¬ μ˜€κΈ°μ•Ό. μ•Œμ•˜μ§€?"; close; } OnTouch: npctalk "쒋은 κ±Έ 가지고 μžˆκ΅¬λ‚˜. 가지고 μžˆλŠ” 생λͺ…λ³΄ν—˜ μ¦μ„œλ₯Ό μƒˆλ‘œμš΄ 걸둜 λ°”κΏ” μ€„κΉŒ?", "", bc_self; end; } need to modify src code: add to itemdb.hpp ITEMID_INSURANCE_HEART = 6413, // Custom name pc.cpp int pc_dead(struct map_session_data *sd,struct block_list *src) line 7917 change from if (base_penalty || job_penalty) pc_lostexp(sd, base_penalty, job_penalty); to if (base_penalty || job_penalty) { short item_position = pc_search_inventory(sd, ITEMID_INSURANCE_HEART); if (item_position < 0) pc_lostexp(sd, base_penalty, job_penalty); else pc_delitem(sd, item_position, 1, 0, 1, LOG_TYPE_CONSUME); } Pet coupons changer // Need to change coupons check function Issue: 3498 prontera,210,209,5 script 펫 κ΅ν™˜μƒμΈ#wanderman 4_M_JPNOJI,{ mes "[펫 κ΅ν™˜μƒμΈ]"; mes "μž₯μ‚¬λž€ 건 정말 μ‰¬μš΄μΌμ΄ μ•„λ‹ˆμ•Ό."; mes "λ‚˜λŠ” λ©€λ―Έκ°€ μ‹¬ν•œλ° μ΄λ²ˆμ—λŠ” μ˜€λŠ” 길에 ν’λž‘κΉŒμ§€ λ§Œλ‚¬μ§€ λ­”κ°€!"; next; mes "[펫 κ΅ν™˜μƒμΈ]"; mes "μ•„μ°”ν•œ κ²½ν—˜μ΄μ—ˆμ§€. 덕뢄에 μ•„μ§κΉŒμ§€λ„ 속이 쒋지 μ•Šμ•„. ν¬μœΌβ€¦β€¦"; next; mes "[펫 κ΅ν™˜μƒμΈ]"; mes "κ·Έ 보닀 μžλ„€ 큐펫이 ν•„μš”ν•΄μ„œ 온 겐가?"; mes "티켓은 가지고 μžˆκ² μ§€?"; next; switch(select("μ†Œμœ ν•œ 티켓을 검사:μ·¨μ†Œ")) { case 1: // custom simple dialogs and function setarray [email protected][0],6116, 6117, 6118, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 7550, 7551, 7552, 7581, 7588, 7775; setarray [email protected][0],9055, 9056, 9030, 9054, 9042, 9046, 9052, 9048, 9045, 9047, 9050, 9051, 9043, 9041, 9049, 9044, 9053, 9040, 9001, 9002, 9003, 9004, 9005, 9014, 9009, 9012, 9013, 9006, 9007, 9022, 9023, 9021, 9015, 9019, 9010, 9016, 9020, 9011, 9008, 9017, 9024, 9018, 9025, 9029, 9028, 9026, 9027, 9037, 9036, 9098, 9034, 9032, 9031; getinventorylist; // Need to change funktion to check for what coupons player have for([email protected] = 0;[email protected] < @inventorylist_count;[email protected]++){ if (compare(getitemname(@inventorylist_id[[email protected]])," Pet ")) { [email protected]$ = [email protected]$ + getitemname(@inventorylist_id[[email protected]])+":"; [email protected]_id[[email protected]] = @inventorylist_id[[email protected]]; [email protected]++; } } if ([email protected]) { mes "[펫 κ΅ν™˜μƒμΈ]"; mes "λ‚΄κ°€ μ›ν•˜λŠ” 물건은 μ—†λŠ” 것 κ°™λ„€."; close; } mes "[펫 κ΅ν™˜μƒμΈ]"; mes "What coupon you want to change?"; next; [email protected] = select([email protected]$ + "Cancel") - 1; if ([email protected]_id[[email protected]] == 0) { mes "[펫 κ΅ν™˜μƒμΈ]"; mes "Good luck!"; close; } mes "[펫 κ΅ν™˜μƒμΈ]"; mes "Great!"; mes getitemname([email protected][inarray([email protected][0], [email protected]_id[[email protected]])]); mes "Are you shure to want this pet?"; next; if (select("Yes:No") == 2) close; mes "[펫 κ΅ν™˜μƒμΈ]"; mes "Here your pet~"; if (countitem([email protected]_id[[email protected]]) < 1) close; delitem [email protected][inarray([email protected][0], [email protected]_id[[email protected]])],1; getitem [email protected][inarray([email protected][0], [email protected]_id[[email protected]])],1; close; case 2: mes "[펫 κ΅ν™˜μƒμΈ]"; mes "λ°”λ‹€ κ±΄λ„ˆ μ–˜κΈ°λΌλ„ λ“£κ³  싢은 λͺ¨μ–‘μ΄λ„€λ§Œ 속이 영 쒋지 μ•Šκ΅¬λ¨Ό."; close; } } Sorry if i post it in wrong section >_<"
  47. 1 point
    Ola, tambem nΓ£o entendi aonde colocar dnum2itemresnametable.txt idnum2itemdisplaynametable.txt idnum2itemdesctable.txt
  48. 1 point

    EXPIRED

    Status Updated, goal reached. Changes in https://github.com/rathena/FluxCP/pull/201. Thank you for supporting This is the first step and the gist are Item random option info in every items (it has any) in player's inventory, cart, storage, and guild storage Also, item random option info added in /logdata/picks and all "rA Logs" pages have search feature now In addition, added Egg renamed info, so for pet that was renamed will be append with 'Beloved' title This update is packed with bonus to make Vending & Buyingstore listing all items and searching of course the options info is added here
  49. 1 point
    Hello I'm requesting to see if someone can help me out and put an announcer on this npc that will announcer the player's name that buys a donation from this npc saying the following: "@playername Thanks For Donating and Supporing BishopRO!" donate.txt
  50. 1 point

    Version 1.1.0

    2,276 downloads

    Heya, This tool is an action file editor, it edits Act and Spr files. You will find similarities with ActOR in its design, but it should be much more enjoyable to edit animations ;]. Special thanks to Nebraskka for testing this software in its early days. All the suggestions and feedbacks made this software much better. How to install Download the zip archive provided from the download link at the bottom of this description or directly from there : http://www.mediafire.com/file/uoymx2vni249mlu Install the application with Act Editor Installer.exe; if you are missing a .NET Framework you will be prompted to download it. Once you are done, you can start the program from the link on your desktop. Key features The software has many, many features available. It would take too long to describe each one of them, so I've only focussed on the more impotant ones. You can undo and redo everything, scripts included. You can edit and add sounds easily. Powerful and easy to use palette editor. Sprite types have been abstracted - you don't have to worry or care about that. Animation speed can be changed easily. Most components have a drag and drop feature. Advanced scripting engine (C# language). The scripts can also be used to customize the software menus. Error checking when saving the act/spr to avoid invalid files. The sprite version will be automatically downgraded if RLE compression is not available. Frame interpolation (inbetweening/tweening) is possible via the Animation menu. Prompts you with an image converter dialog if the added image is invalid. Allows advanced edition for actions and frames via their respective menus. You can load files from GRFs directly (and save in the GRFs directly as well). Technical stuff Requires .Net Framework 3.5 (SP1) Client Profile to run (3.5 or more will work as well). When prompted with an error, use the "Copy exception" button to copy the debugging info. I will need this to fix the issue you're encountering. The editor's primary window The interface is really straightforward and similar to ActOR. I'll only focus on new elements! Rendering mode : This option changes the behavior of how layers are rendered. If you use 'Editor', you'll clearly see all the pixels when zooming in. If you use 'Ingame', it will use a linear scaling instead, which is closer to what the client does. References : These allow you to know where your item will be positionned (the yellow marker is the anchor, see below). Color mask : To edit the color of a layer, simply click on the color rectangle. You can also drag and drop the colors between different layers to quickly modify many of them. Common shortcuts : You can manipulate layers by using common shortcuts. More can be found from the Edit menu. These below are only the primary ones. Ctrl-A : Select all layers. Ctrl-C : Copy the selected layers. Ctrl-V : Paste the copied layers. Ctrl-X : Cut the selected layers. Alt-C : Copy current action. Alt-V : Paste current action. Advanced action and frame editions These expose all the available methods of the editor. You can remove a range of frames or copy a frame 10 times very quickly and easily. This dialog is found in Action/Frame > Advanced edit... Anchors You can edit anchors from the editor directly. Anchors are points that connect frames together, from different act files. Here's an example without and with anchors : This is mostly useful when you're using reference sprites (on the right panel). Clicking on the anchor button will let you choose where to attach the sprite (this is set semi-automatically for you though). You can edit those from the Anchors menu, but it is recommended to start from a pre-existing act to avoid doing this tedious process. Palette editor The palette editor allows you to quickly recolor sprites with an intuitive interface. Only indexed images can be edited (it's a palette editor after all) and three modes are available. The gradient mode changes an existing gradient to another color while keeping the original saturation and brightness of the colors - this makes the gradients blend in better. If there are no gradient (usually because it's a custom sprite), there's always the Adjust color mode. This one changes all color from a specified range to another one (Photoshop has a similar feature, which does work better). You can click on the image (on the left) to automatically select the palette indexes. These will be highlighted for a few seconds to show you what you're about to edit. Interpolation (tweening) This script can be accessed via Animation > Interpolate frames. This process fills the images between two frames by detecting the changes applied to the layers. Here's a simple example of how it can be used : Script engine The script engine can be accessed via Scripts > Script Runner. This is a big feature of Act Editor, it allows you to automate all your work with the act and much more. Click on the Help button for guides and available methods (don't hesitate to try out a script; if an error occurs the act will be reversed to its previous state). The documentation doesn't cover all of the available options and methods for obvious reasons (the .net framework is huge). Doc example : The language used by the script engine is C#. If you're not familiar with it, simply check out the script samples (Scripts > Open scripts folder)! I won't go into details here, questions can be asked in the support thread regarding addiotional features and methods. If you believe your script should be added in the program, send it to me and I'll probably add it. Customizable The settings dialog allows you to modify all colors in the editor easily. You'll also find the sound resources (GRFs and folders) that can be set up in the Sound tab. The Shell integration tab can associate the .act files with the software to edit them more easily. Don't hesitate to give me a feedbacks or suggestions!

    Free

  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up