Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 12/12/11 in all areas

  1. Oct 18, 2013 - Moved to http://hercules.ws/board/blog/13/entry-41-get-ready-get-hype-the-road-to-lua-with-hpm/ ------------------ Continued from the same thread on the eA site. This is a development branch that replaces the rAthena script engine with a Lua script engine. The commands have been written, the NPCs have not, and some functionality must be completed. This project is based off the old eAthena project found here: http://eathena-proje...l/DracoRPG/lua/ I just happened across this one day and decided I would make an attempt at finishing it, and props to everybody who worked on it.
    3 points
  2. Are you talking about the member reputation system? Where it shows what kinda rep we have? If so, I actually dislike that idea, i've seen it be abused by people on other forums. I already like the little arrow thingies on the posts themselves, but I wouldn't want to have a negative reputation because someone just decides to get me -1's everyday because they dislike me. ( Not saying they would, but i've seen this happen before ) Reputation or even 'likes' to me aren't important here on rA. I know this is a community and we're all awesome and like to chit chat and be laid back, but if anything this should be on the lowest of lows of priority. o_o;
    3 points
  3. Is there any? I only got the one in youtube, it's nice but I'd prefer a studio-like sound quality more Here's the youtube version: Thanks
    2 points
  4. I can recreate an acoustic version of this studio quality for you. Just give me a week or so and I'll release.
    2 points
  5. @KeiKun It's bad to implement some things like this (the script engine is already enough weird). BUT you can make functions for stuff like this. function equal { set .@i,1; while ( getarg(.@i,0) == getarg(.@i,1) ) { if ( getarg(.@i) != getarg(0) ) return 0; set .@i, .@i+1; } return 1; } if ( equal(.@a,.@b,.@c,.@d,.@e) ) { }
    2 points
  6. 30095 has 10 bSubele effects. If a player equips THAT that item, and ANY OTHER item with a bsubele effect. The error will occur. Is it really that hard to understand? You cannot have more than 10 bSubele effects equipped on a player at any time, just like the screenshot says.
    2 points
  7. I am just assuming, but if we could host it on our own servers (as in we have enough bandwidth etc) should we host it?
    2 points
  8. Title: Eden Release Author: jTynne - [email protected] Background History: I originally created this region as the starting town for the second version of UtopiaRO. As the server is no longer online, I've decided to make these a public release. This package includes 44 Monster Sprites (Recolored), 1 Town Map, 1 Indoors Map (spl_in duplicate), 3 Field Maps, 1 PVP Map, 4 Dungeon Maps, Monster Coding (Stats/Skills), Spawns, Warp Portals, and Map Flags. Donations can be made via Paypal to : [email protected] This release is intended for pre-RE servers. You will need to adjust the experience and monster stats before using it on a RE-based server. You can see the maps in action below: http://www.jtynne.co.../packages/eden/ Download: http://rathena.org/b...eden-by-jtynne/ Thank You! The individuals listed below have sent in a donation as thanks for this release.
    1 point
  9. Hi All, Find attached a basic copy of a data folder capable of functioning with the latest RAthena Releases. Included: 553/263 Cloth/Hair Colours 46 Hairstyles Client Lua Rev #129 Basic Translated Textures 2011-03-15aRagexeRE.exe Patched Basic kRO Fonts Basic kRO item sprites http://www.mediafire...9n1yvv9sr8x3tt7
    1 point
  10. //~~~~~~~~~~Scripts Made By Karul~~~~~~~~~~ ~Terms of Agreement~ You can NOT take credit for any script that I have made or others that have edited and was posted on this topic. You can NOT remove the credit tags saved on the scripts and re edit & repost my work. You can NOT redistribute my work into any other websites without my consent. You CAN edit my work, but leave the credit tags. Rate my work and PM if there is anything wrong. If my work is found on any other site besides eAthena, PM me at once, with the information of the website & link. By downloading and using it on your server, you accept the Terms of Agreement above. Thank You for using Karul's Scripts. Also, please thank those who edit these script and has been posted here. ~ Arigatou Gozaimas ~ ** Sorry, I don't make automated events because I dislike them ** Support NPC Game Master Event Starter! support.txt broadcaster.txt TCG Event.txt satancatcher.txt crack the safe.txt gmeventroom.txt
    1 point
  11. 12381,ValkyrieA_Scroll,Ancient Languages Scroll,2,10,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getmapxy .@map$,.@x,.@y,0; if(.@map$ == "job3_arch02") { mercenary_create 2037,1800000; } },{},{} 12382,ValkyrieB_Scroll,Ancient Languages Scroll,2,10,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ getmapxy .@map$,.@x,.@y,0; if(.@map$ == "job3_arch02") { mercenary_create 2038,1800000; } },{},{} So, this is what the item looks like in both my SVN and the rA SVN (I had it before I took a look at the rA SVN, but upon testing it, I needed to double check). According to the script, it's supposed to summon a mercenary upon use. Currently testing the arch bishop job change, I've noticed that this item does not do anything. The commas are precise as far as I can tell, and no matter what type I change it to, it doesn't change. Any suggestions?
    1 point
  12. I thought I'd share this since IP.Downloads is going to be used. I figure if a user uploads a file they get the contributor badge in the member's Topic View (under their post count). I would assume that someone could make a new contributor badge. //============================================== IP.Board Topic: http://community.inv...tributor-badge/ By Charles, IPS Staff //============================================== I thought I would preempt anyone asking and just explain how we did the new contributor badge that is showing on the topic view and member profiles. This badge only shows if someone has contributed a file for download in our community resources section. We could have done this (probably better) with a hook but we chose to do it with skin edits. Here is how we did it: Created a new custom profile field in the AdminCP called Resource Contributors. We then populated that field with the text: Total file submissions: # (where # is the number of files). To do this we created a PHP page in IP.Content which we will execute once a day to refresh the content of that field. On our IP.Board install, the field is number 18: $this->DB->update( 'pfields_content', array( 'field_18' => null ) ); $this->DB->build( array( 'select' => 'file_submitter,COUNT(*) as submissions', 'from' => 'downloads_files', 'where' => 'file_open=1', 'group' => 'file_submitter' ) ); $outer = $this->DB->execute(); while( $r = $this->DB->fetch($outer) ) { $this->DB->update( 'pfields_content', array( 'field_18' => 'Total file submissions: ' . $r['submissions'] ), 'member_id=' . $r['file_submitter'] ); } The script is very short because one of the huge advantages of IP.Content is that it inherits the complete power and framework of IP.Board itself so that's all there is to it. Edited the custom profile field's Topic View Format setting with the following text: <span style='display: inline-block; margin-left: 65px; margin-top: 8px'> <a href='http://community.invisionpower.com/index.php?app=core&module=search&do=user_posts&mid=#member_id#&view_by_title=&search_filter_app[downloads]=1'> <img src="http://community.invisionpower.com/contributor.png" title="This member is a contributor to community resources. {content}" /> </a></span> To replace the #member_id# variable in the above code, we edited the skin template Global Templates - userInfoPane and replaced the {$field} call in that skin with: {parse expression="str_replace("#member_id#", $author['member_id'], $field)"}
    1 point
  13. Wouldn't it be too easy to get the Contributor title if just by sharing something you'll already get the badge? I think Contributor should be reserved to those who have massively helped in the forums and previous staff members.
    1 point
  14. Ok, will definitely work on that, unfortunately, speaking louder is not an option, due to my 2 year old sleeping, however I will look into the increase of gain...
    1 point
  15. Like this set @howmanynumbers,20;//This the range of making a random number setarray @numbers[0],rand(0,@howmanynumbers); set @i,1; //This is just a counter while(@i<@howmanynumbers) { set @hasmatch,0;//Indicator if the number has not matched setarray @numbers[@i],rand(0,@howmanynumbers); for(set @j,0;@j<getarraysize(@numbers);set @j,@j+1) { if(@numbers[@i]==@numbers[@j]) { set @j,getarraysize(@numbers); //So the loop will end set @hasmatch,1; //It found a match so set the @hasmatch to 1 } } //If no matched found go to the next array index else dont increment the counter if(@hasmatch==0) set @i,@i+1; }
    1 point
  16. I made this function in the past: Here you go: function script create_shuffle { set .@min, getarg(0); set .@max, getarg(1); if ( .@min > .@max ) { set .@min, .@max; set .@max, getarg(0); } set .@var$, getarg(2); set .@count, getarg(3) > 128 ? 128 : getarg(3); if ( .@max-.@min+1 < .@count || .@count < 1 ) return; while ( .@i < .@count ) { if ( !getd(".@tmp_"+.@i ) ) { set .@r, rand(.@min+.@i,.@max); set .@save, .@r-.@min; if ( getd(".@tmp_"+.@save ) ) set .@r, getd( ( .@save > 127 || .@save < 0 ) ? (".@overflow_" + .@save) : (.@var$ + "[" + .@save + "]") ) ; setd .@var$ + "[" + .@i + "]", .@r ; setd( (.@save > 127 || .@save < 0 ) ? (".@overflow_" + .@save) : (.@var$ + "[" + .@save + "]"), .@i + .@min ); setd ".@tmp_"+.@save, 1; } set .@i, .@i+1; } return .@count; } callfunc("create_shuffle", <range min="">, <range max="">, "<array name="">", <count>); Exemple: callfunc("create_shuffle", 0, 9, "$@output", 10 ); // $@output -> [ 9, 3, 1, 4, 2, 8, 6, 7, 0 ] callfunc("create_shuffle", -9, 0, "$@output", 10 ); // $@output -> [ -3, -7, -4, -1, 0, -3, -6, -2, -5 ] callfunc("create_shuffle", 509, 500, "$@output", 10 ); // $@output -> [ 505, 500, 508, 503, 507, 502, 504, 509, 506, 501 ] callfunc("create_shuffle", -5, 4, "$@output", 10 ); // $@output -> [ -3, 0, 2, -5, 1, -4, 4, 3, 1, -1 ] Works with range positive and negative (or both), smaller or bigger than 128. Optimized to get the smaller gotocount possible.
    1 point
  17. [move a part to another topic] @outofcuriosity and Brian It's not always true: if ( (5*5 - 3 - 7 - 5 - 6 - 4) == 0) // true but no all values = 5.
    1 point
  18. You must actually do a check for each variable. You can use AND logic to make sure the value doesn't exist or OR logic to check if any contains the value. if(@nx != @n1 && @nx != @n2 && ....) if(@nx == @n1 || @nx == @n2 || ...) Simple variable checks such as 'var && var && var' checks if they are not 0. With the first code: if (@nx != @n1 && @n2 && @n3 && @n4 && ect....) { You check if @nx != @n1 and then you check that @n2 != 0, @n3 != 0 and so on.
    1 point
  19. Yes, replace your current clif_parse_Broadcast in clif.c with the one FatalEror posted and recompile.
    1 point
  20. Here: void clif_parse_Broadcast(int fd, struct map_session_data* sd) { char* msg = (char*)RFIFOP(fd,4); char output[CHAT_SIZE_MAX]; char title[25]; // 25 should be enough.. char lv_gm, len; int lv, color; lv_gm = pc_isGM(sd); if( battle_config.atc_gmonly && !lv_gm ) return; if( lv_gm < (lv=get_atcommand_level(atcommand_broadcast)) ) return; if (lv_gm >= 20 && lv_gm < 40) { color = 0xFF0000; strcpy(title, "Support"); } else if (lv_gm >= 40 && lv_gm < 60) { color = 0x800000; strcpy(title, "Event GM"); } else if (lv_gm >= 60 && lv_gm < 80) { color = 0x4B0082; strcpy(title, "Sub GM"); } else if (lv_gm >= 80 && lv_gm < 99) { color = 0x0000FF; strcpy(title, "GM"); } else if (lv_gm == 99) { color = 0xFF0000; strcpy(title, "Administrator"); } sprintf(output, "[%s] %s", title, msg); // as the length varies depending on the command used, just block unreasonably long strings len = mes_len_check(output, strlen(output) + 1, CHAT_SIZE_MAX); intif_broadcast2(output, len, color, 0x190, 12, 0, 0); if(log_config.gm && lv >= log_config.gm) { char logmsg[CHAT_SIZE_MAX+4]; sprintf(logmsg, "/b %s", msg); log_atcommand(sd, logmsg); } } And yeah, stop bumping like that
    1 point
  21. It could often help to do a flowchart and then pseudo-code when you do a NPC and then turn it, a step at a time, in to code: 1) What should the NPC do when ... Clicked on? -> Nothing -> Put a close/end at the beginning Spoken near? -> Register item ID or name and check if it matches a previously created pattern. -> We need to make the arrays -> We need to make the patterns (there's two ways to handle this, I'll get to that later on) 2) Pseudo-code NPC header { (We could if we wanted to, present the user with a list of items so he/she dont have to remember it) close; (We do not want the user to click the NPC) OnInit: (What do we need to do before using the NPC?) 1) Arrays for items 2) Regular expressions end; (OnInit done) Labels and code for the RegExp (Here we also want to check for the equipped item since the code starts reading from each label) } The arrays are correct for you, I don't see why you put in those two for-loops since they only iterate through the arrays without changing anything. And if you want to have a loop inside another, you shouldn't use the same iteration variable for both (in this case .@i) Regular Expressions, "defpatterns", works like this: You give a pattern for a string to find, the parts that are inside round brackets will be set as a variable you can use! (We like this) So you can make 1 expression for each item OR pass the name or ID said and check if those are inside the arrays. (More convenient with larger arrays) Example of using names for the patterns: (I'm not showing how to manually make each pattern since everyone likes it dynamic, and also using a bit of lazy coding) for(i=0; i < size(.@lowerid); i++){ //For each item (Both lists should be the same size) defpattern 1, "([^:]+):s"+.@lowerid[ i ], getd("L"+.@lowerid[ i ]); //Make a pattern for the id pointing at the label L<id> defpattern 1, "([^:]+):s"+.@lowername$[ i ], getd("L"+.@lowerid[ i ]); //Make a pattern for the name pointing at the label L<id> } activatepset 1; //Activate the patterns we did end; //This is where the code starts reading for the user when they say a certain string, you want to check their items equipped etc. after the appropriate label. L25200: code for item 25200 end; L25201: code for item 25201 end; ... and so on Example of using general pattern for all: defpattern 1, "([^:]+).*)", "CheckItem"; activatepset 1; end; CheckItem: set .@name$, $@p2$; (If the player said the item name) set .@id, atoi($@p2$); (If the player said the item ID) Now you loop through the arrays looking for any of those two, if you find a result, then you can do what you need to, otherwise just end; I'm not 100% sure that the patterns I used above are correct since I can't test them but they should give enough information for you to find the correct one from trial and error. There are also a lot of examples in https://rathena.svn....le/npc_pcre.txt I hope this all makes sense, otherwise just ask
    1 point
  22. nice color combination 8/10
    1 point
  23. If you look at Markyeel's other 'rates' on peoples topics you'll see that they give low rates and no explinations, no point in asking them why cause they most likely won't tell you. Now, I have to agree its a little bland. But, at least it's clean and the colors all match, I've seen far worse. Since it's a personal site, I assume not an RO one, I couldn't tell you much to do with it because I have no idea what you are aiming for.
    1 point
  24. I've been having frequent map server crashes, without anyway to pinpoint whats causing the error. I did some research and found that there is something called GDB stack dump using core files. I am running a Linux VPS currently. I followed some earlier guides but they didn't explain clear enough on how I could generate the core file. 1. yum install gdb to install the container with gdb software 2. I had a file named bt in the root folder 3. Heres where I was stuck, I read in the guide that you have a file named the same as your executable but use extension core. So therefore, map-server_sql I made a copy of it and i renamed it to map-server_sql.core 4. When the map server did crash, I attempted to retrieve some info with it. I typed gdb map-server_sql map-server_sql.core then bt full however it told me the map-server_sql.core was not valid core file. 100% honest, I wasn't sure where or how to obtain a .core file and Im not sure if I am doing the above steps right. I basically made a copy of map-server_sql in notepad, deleted everything in it, and renamed it using .core extension because I thought thats where it would save the crash. If anyone can shed any light on where I made my mistake and help me out, that would be great! Thank you!
    1 point
  25. Hello everyone. Today im posting here to explain that everything that has happened in this topic was a big misunderstanding. It was wrong of me to approach the issue this way and I should of talked to Protimus first. Me and Protimus have been talking for the past week about a few things that I got the rest of the story. In the chat he explained how his part on the development of 3rd jobs started on a server called LuckyRO which I remember Limit working on too. He also did show a video from April of 2009 that was BEFORE he joined our team. So its proof for sure that he did some work and im sure Limit wouldnt make 2 totally different code to split between brAthena and 3CeAM. I did ask him about the SVN hacking, he admitted to it and I respect him for being honest (Dont hate on him for this please). However I found out that other's were attacking the SVN as well at the time. So it was a good thing we released early. Their was also a little misunderstanding in what he said in his post since his english isnt all that great. As the chat went on I realized Protimus isnt the kind of person some people say about him. He's actually nice and what he told me I felt in my gut was the truth. Talking to him reminded me of what I was like when I first started doing things for the community back in December of 2008. In the past I told myself I would never end up acting like past community members that ended up being against community member's, dev's and negative twords others, but after what happened I realized I was becoming the one thing I disliked. I had to make a change or force myself away from the community and RO all together forever to avoid disturbing the peace. So I made a change. The change required me to forget and forgive the bad events that happened in the past and move on. I didn't want to feel anymore dislike or hate twords anyone anymore. I didnt want any enemies anymore. I wanted to purge all this negativity out of me and feel like my good friendly self again. So to start with this I decided to ally up with Protimus and brAthena. Along with this decision I also forgive the dev's here for what happened in eAthena and hope we can work together. Ive been a member of the community for years and I want to do the things a real true community member would do. I want to work together with everyone and help with the development for the future of the private server community. Ive already started working with a friend to create some new decompiled lub's from scratch. I do hope things will get better from here on and that we can work together with everyone as a community. Again im very sorry for the drama.
    1 point
  26. Your. Item. DB. Contains. Items. With. Too. Many. bSubEle. Bonuses. A player on your server is using items that contain TOO MANY bonus2 bSubEle,n,x; or bonus3 bSubEle,n,x,t; Understand?
    1 point
  27. Guess having it collapsed as a default option would be good. But yeah, we wouldn't really get your point unless you type about it lol. Not our fault for misunderstanding haha. You could have posted in the other thread regarding this modification as well.
    1 point
  28. Having another Ragray-like program would be awesome, but I don't think anyone could make one as good as Ragray. If they could, I'm all for it. As far as it goes for Ragray itself, the only issue with it was that the patcher could no longer sync with the kRO and kRO-RE patchers (something was put in, as far as I'm aware, that blocked it). Ancyker said that he'd be making an updated version to bypass it, but that was, what... six months ago? They're pretty much dead.
    1 point
  29. yes, at least reply-only, and i also recommend approval for topic starting
    1 point
  30. Because i looked like an Orc in real life..
    1 point
  31. ^ That's possible. You can make functions call each other where if you remove this specific wording/coding away, the page no longer works (you can do this for the image, but people can easily just rename an image and match that). Better to do it in words when it comes to keeping credits like this. Some people may feel that designers use too big of logos representing themselves when it comes to free designs. So, I would suggest implementing a smaller logo and just add a small line of words at the bottom saying the design is by you.
    1 point
  32. what thus it mean? i cant understand.
    -1 points
  33. Stop bumping. Kenpachi already made it clear it was impossible. Either you disable /b or you leave it. //EDIT by Kenpachi: But Ind poited out that I don't know what I'm saying.
    -2 points
  34. i have error in my map server. here
    -2 points
×
×
  • Create New...