Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/21/13 in Posts

  1. File Name: Item Binding File Submitter: Akinari File Submitted: 20 Jul 2013 File Category: Utilities Content Author: Akinari I made this while taking a short break from the normal rAthena work I do. It works with the item bound system added a little over a month ago. You need to have revision 17351 or newer for this to work. It's mostly focused around guild binding as that was the original intention of the script but I then decided to support the other types. The other types are good simply because this allows players to bind items and log these in a separate NPC table by default. You could also disable unbinding (just remove the option in the switch) and make it a better form of security for users. Features: Allows users to bind items to their account, character, or guild Multiple configuration options to choose what item types to allow Automatically builds a menu list based on your configuration Configuration: OnInit: //* Configuration *\\ //Price .bindprice = 0; .unbindprice = 100000; //What to allow to be bound - Add as necessary //1 = Equipment - 2 = Consumables - 4 = Etc .allowbind = 1; //Log binds via NPC? .logbinds = 1; //Other stuff .boundtypes$[1] = "account"; .boundtypes$[2] = "guild"; .boundtypes$[4] = "character"; end; Please report any issues and feature requests. Thanks for downloading. Click here to download this file
    3 points
  2. Now Available on GitHub! As some of you might have noticed already, rAthena now has an up-to-date repository on GitHub. We've added basic support for it in our repository, so you'll be able to choose between running a GIT- or SVN-based server. Why GIT? GIT's non-linear environment allows users to choose specific commits to merge, making updating less of a hassle for more-customized servers. Users can easily submit pull requests to add their own code to rAthena, following a review by our developers. GitHub also allows users to comment on commits and specific lines of code, and offers its own code viewer and Timeline for commits. How this affects you If you're happy with SVN (still hosted by SourceForge), this change will not affect you at all. All of our GIT commits will be automatically pushed into our SVN, so you'll be--at most--one minute behind on updates. We'll continue to reference changes with revision numbers. And even though we now have GIT Timeline, Trac will remain available for use. Thanks for reading!
    2 points
  3. E - Script Collection Last Update : September 10, 2013 Refine Function SQL Mission Board Monster Marching Vendor Control Advanced Stylist Coin Exchanger Doppelganger Race Of The Day Limited Items Multi Currency Shop Random News GM Online List Link Broken E-Inquiry DotA Runes Flower Counting Game Class Restriction Chain Quest Build Manager Misc Scripts : Freebies Script Card Trader Gold Room [ Pick Gold ] Gold Room [ Guild Tax ] Map Restriction [ GM Based ] Daily Reward Monthly Reward Monster Spawner Monster Summoner with Last Summoned Display Players Stats & Equipments 3rd Job Item Giver Exchanger [ Cashpoint to Coins ] Exchanger [ Poring Coin - Zeny ] Exchanger [ Points to Tickets ] Exchanger [ Item to Item ] Exchanger [ Item to Item ] Exchanger [ Multi Item to 1 Item ] Party Match Auto Ban Over Stats Users Soul Link Buff Kill Players gain Cash Points Party Members All Get Items [ Snippet ] Message Board Stalker Class Skill Reproduce NPC Multiple Selection Quest [ Template ] In-Game Item Rewarder In-Game Points Rewarder Invasion Event Custom Item Rate Status Point Seller [ Snippet ] Anti Bot Security Script Anti Bot Script [ Code / Question ] Item Combo Restriction [ LHZ Card ] Drop Item Upon Death PVP Switcher + Announcer [ Guild Master ] Rotating Waitingroom Messages +10 Refiner [ Specific Items ] Random Rate Item Exchanger MVP Invasion Premium Users [ Boost Rates ] Display Cutin Image upon Login Custom Randomed Box Items Kick GM during WOE Custom Crafting NPC Restrict Same IP [ Certain Map ] Coloured Items Exchanger Guild Master Changer Party Team PK Match Gambling Game IRC Channel Crafting NPC Guild Storage Restriction Stage Game [ Version 4 ] Monster Wiki Event [ Version 3 ] Special Thank you for my Tutor : Notes : I am a bit lazy to write all those Script Descriptions, i do believe that all of you able to get how this script works. Anyway, i will still doing my best to write the Updated Changelog or informations about the script as detail as possible. All the Scripts above are uploaded to Pastebin . Abide the Following Rule : Scripts Error / Not Working , you have to Explain it in Details. ( Add in Images / Modified Scripts ) Do not SPAM / BUMP in my Topic. Do not ask for Support stuffs for other Scripts in this Topic. Link Down , then drop [ @Emistry ] a message. I Reserved the Right for NOT Answering your Posts if you did not abide my Topic's Rules. Keep This In Your Mind : All the Scripts i distribute here are NOT FOR COMMERCIAL USES . DO NOT remove my Credits if you are using part of the scripts to modify your own. DO NOT re-release the scripts in any form / way. If you ♥ these Scripts , Click on to Vote this Topic up. Or you may also click on at above the Topic
    1 point
  4. Peopleperson49's Script Collection Please enjoy my work. If you have any suggestions or find any issues/bugs please let me know! If you like or download my work please click the "Vote this post up" button to the right of the post and check out my server Ragnarok Underground. My scripts are written as I would use it for my Ragnarok Underground server, you might need to configure them before use. My scripts are written to work with the rAthena emulator. When reporting and bug/error/suggestion in this topic please give the emulator version, version of the script your using, and the issue in detail! Super Magnifier Identifys all unidientified items a player is holding at once. I made this a long time ago for my server, but I added here for Nipsino after reading a post he left. Function_SuperMagnifier.txt Rock, Paper, Scissors Roulette This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. This script was recreated in this same way. It is very similar to the original in design. Allows the player to play roulette with a 5 chamber pistol. Only one bullet is loaded at a time. The script will continue to loop until somebody is shot. Version 2.0: rpsroulette.txt BlackJack Scratchcard Blackjack script that designed to work like a scratchcard. It is based on using eight decks or cards and both numbers and suits determine winning hands. Buster prize for scoring a 30 or 31, which can only be done if you already have a 20 or 21 adding one more element of gambling to it. Item data is included at the bottom of the script. Version 3.3: Scratchcard_BlackJack.txt Powerball Lottery This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. This script was recreated in this same way. It is very similar to the original in design. Powerball lottery picks 5 miniballs and 1 powerball. Different pay amount based on type of matches made. Version 1.7: lottery.txt Advanced Banker This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. This script was recreated in this same way. It is very similar to the original in design. Bank with varying account and interest based directly on balance. Also has trustfund which pays out only when the character reaches BaseLevel 150. Most of my scripts give trustfund bonuses and also 1% of any zeny spent goes toward the trustfund. Version 1.4: bank.txt Heads Or Tails This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. I remember making this one, but I'm not sure if I based it off of another script or not. Player starts by betting 500z and then flips a coin. If heads their money is disabled, if tails they loose all their money. Version 2.4: hot.txt Jackpot Leon This was one of my first scripts I ever made. I learned to script by breaking these type of scripts down and recreating them from scratch. This script was recreated in this same way. It is very similar to the original in design, however I'm not sure where to find that script anymore. The script picks a number between 1 and 100. The player pays 10,000z to make a guess. Each guess increases the size of the Jackpot by 9,000z until somebody wins. Version 2.3: jackpot.txt Double Dice Roll Very simple dice gambling game created for my custom Comodo casino package. You bet various amounts of zeny and roll two dice. The winner is the one with the highest total score. This was created from scratch as part of my casino package and had nothing to do with the rolladice script. Version 2.1: roll_a_dice.txt Saving Angel This script was written for my lovely wife after we were player and our whole party was wiped out in majos. It allows a character to resurrect another character anywhere in the server for a fee. Version 1.8: Saving_Angel.txt Magic 8 Ball Custom script that works just like using a magic 8 ball. Version 2.2: MagicEightball.txt Wishing Well Custom script that allows a player to throw zeny into the wishing well and make a wish. The wish is then sent to any online GM using @request. It is restricted to one use per day to help prevent annoying the crap out of the GM's! Version 1.7: WishingWell.txt Arch Bishop Job Quest This script was written for MelMel on rAthena.org. It is a compltely new version of the third job change quest for an Arch Bishop. I did not use any other scripts as a base. It allows a Priest/High Priest to gather items and then change jobs to an Arch Bishop. The Sub-scripts can be completed in any order and all work off of each other. Version 1.1: Job_AB.txt Guillotine Cross Job Quest This script was written to supplement the fact that the Guillotine Cross still has no official script release on rAthena.org. It is a compltely new version of the third job change quest for a Guillotine Cross. I did not use any other scripts as a base. It allows a Assassin/Assassin Cross to gather items and then change jobs to a Guillotine Cross. Version 1.2: Job_GC.txt Monster Of The Day Another Monster Of The Day script. I made this one from scratch to be very simple and work automatically. Uses almost the full list of monsters from the mob_branch. I included the dispbottom here when players login, but I actually perfer to use a login script with this in it. Version 1.4: MOTD.txt Security Manager Allows a player to set up a password to help protect their account. It uses a simple OnWhisperGlobal function. I nolonger support the use of the whisper system in my Security Manager script after version 1.3. I will still provide support for other issues that might be discovered in scripts prior to v1.4, but they will be fixed in a version that now uses bindatcmd. Version 1.5: Security_Manager.txt GM Headquarters Allows access to a part of the sec_in01 map that doesn't have any warps anyway. This is a nice areas to setup special NPC's or events. Whatever anybody wants to do with it. However the secutiry code is fun for everybody to try to crack. This script currently has shops that be used once a day as a reward for cracking code. It's my intent to eventually add a full warper script that can be used once a day also. Version 1.3: GMHeadquarters.txt Monster Hunter This script was written for vgrebirth on rAthena.org. It allows one party at a time to do the Monster Hunter event. If any member is killed the entire party looses and are warped out. If you kill all the mini-boss monsters the boss monster is spawned. Version 2.7: Monster_Hunter.txt
    1 point
  5. online demo: http://inoah.dly2005.com/roWeb/ i start a opensource project seems like make Ro client run on the web、mobile phones、and other flash platforms. but for now i'm just started with 2 days. and i hope i can keep it for a long time , and finally complete it. of course, the engine is not only for Ro, it's also can make rpg, arpg, mmorpg, slg, and TD games in the furture. for now i havn't an english website but only chinese, and my github is on https://github.com/noahzaozao/RoWeb/ my email is [email protected] if you have insteresting and suggestions you can contact me. i have upload an english version now it's ok.
    1 point
  6. OnClock<Hour><Minute> will be triggered when the clock eaches <Hour>:<Minute>. Examples: OnClock0110 will be triggered at 1:10 am, OnClock1910 will be triggered at 7.10 pm. OnHour<Hour> will be triggered when the clock reaches the hour <Hour>. Examples: OnHour01 will be triggered at 1 am, OnHour20 at 8 pm If you want to repeat something every 30 minutes the whole day, I would suggest you the following: OnInit: while( 1 ) { <Your code here> sleep 1800000; // 1000 (one second) * 60 (one minute) * 30 (thirty minutes) }Elsewise you would have to put many labels there...Edit: Yes, Capuche, you are right!
    1 point
  7. You're welcome! It didn't take too much time don't worry, and it's better for you to have the choice
    1 point
  8. Here the docs about colors
    1 point
  9. The battle.c function cell_pk_check have some bug, where is fixed and working version: bool cell_pk_check(struct block_list *t_bl, struct block_list *s_bl, int m) { if(t_bl->type == BL_PC && map[m].cell[s_bl->x+s_bl->y*map[m].xs].pk == true && map[m].cell[t_bl->x+t_bl->y*map[m].xs].pk == true) { int s_party = status_get_party_id(s_bl); int s_guild = status_get_guild_id(s_bl); if( s_party && s_party == status_get_party_id(t_bl) ) { if(map[m].flag.pvp_noparty) return true; else return false; } if( s_guild && s_guild == status_get_guild_id(t_bl) ) { if(map[m].flag.pvp_noguild && map[m].flag.gvg) return true; else return false; } return true; } return false; }
    1 point
  10. Hi Sir Bynner, yes I know that I just need to replace the gm sprite, but I cant find the filename cause its written in Korean, lol. I need the path and the filename. Thanks. the location was already on the files that i post. once you download it just open the rar files and it will brings you to the location that you are looking for.
    1 point
  11. here are the path: Female Path: /data/sprite/Àΰ£Á·/¸öÅë/¿© Male Path: /data/sprite/Àΰ£Á·/¸öÅë/³² ¿î¿µÀÚ_³².spr <= <ale sprite ¿î¿µÀÚ_¿©.spr <= Female sprite
    1 point
  12. You can <em>easily</em> write your own NPC <img data-cke-saved-src="http://rathena.org/board/public/style_emoticons/default/tongue.png" src="http://rathena.org/board/public/style_emoticons/default/tongue.png" class="bbc_emoticon" title=":P" /><pre class="_prettyXprint _lang-auto _linenums:0">prontera,156,163,4 script Server News 844,{ mes "[server News]"; mes "1. xx/xx/xxxx: Broadcast npc already fixed now you can blah blah blah."; next; mes "[server News]"; mes "2. xx/xx/xxxx: New custom items/quest has been implemented."; next; mes "[server News]"; mes "3. Some more news..."; next; mes "[server News]"; mes "That's all!"; close; }</pre> Edit: I don't know why the bbcode tags sometimes won't work as intended. When I posted, I only use italic + code tag, and the result is shown like the above...
    1 point
  13. Alright ! well I made one for fun but it's less efficient than source mod - script guild_announce -1,{ OnWhisperGlobal: .@guild_id = getcharid(2); if ( getguildmasterid( .@guild_id ) != getcharid(0) ) end; if ( @accountid_member == 0 ) @total_guild_member = query_sql( "select `account_id`, `char_id` from `guild_member` where `guild_id` = "+ .@guild_id, @accountid_member, @charid_member ); .@mes$ = @whispervar0$; .@name$ = strcharinfo(0); while( .@i < @total_guild_member ) { if ( isloggedin( @accountid_member[.@i], @charid_member[.@i] ) ) { attachrid @accountid_member[.@i]; announce "[ "+ .@name$ +" ]: "+ .@mes$, bc_self; } .@i++; } } The guild leader need to whisper the npc guild_announce and put his message. The npc display the announce to all guild member online without delay EDIT : fix a mistake
    1 point
  14. http://www.eathena.ws/board/index.php?showtopic=241741
    1 point
  15. -<TAB>script<TAB>PVPLADDEROPTIONS<TAB>-1,{ http://rathena.org/board/topic/82874-pvp-warper-w-dota-sound-and-ladder-global/?p=200249 Seems like he can't understand the easiest part.
    1 point
  16. like this? prontera,148,189,5 script Map Warper 456,{ function t; @stoptrick = 0; if ( #allow_use_warper > gettimetick(2) ) {// can use the warper mes "you can use the warp for "+ t( #allow_use_warper - gettimetick(2) ); next; } else { if ( #allow_use_warper && #allow_use_warper < gettimetick(2) ) { #allow_use_warper = 0; } if ( BaseLevel < .level_required ) { mes "you must be level "+ .level_required +" to go further."; close; } else if ( #delay_special_warp > gettimetick(2) ) { mes "I'm sorry you can't use this warper. you must wait "+ t( #delay_special_warp - gettimetick(2) ); close; } else if ( countitem( .item_required ) == 0 ) { mes "you need a "+ getitemname( .item_required ); close; } } mes "Where would you want to go?"; next; switch( select( "map_01:map_02:map_03" ) ) { case 1: if ( @stoptrick ) { mes "I'm sorry you can't use this warper. you must wait "+ t( #delay_special_warp - gettimetick(2) ); close; } warp .special_map1$,0,0; // your warp map break; case 2: if ( @stoptrick ) { mes "I'm sorry you can't use this warper. you must wait "+ t( #delay_special_warp - gettimetick(2) ); close; } warp .special_map2$,0,0; // your warp map break; case 3: if ( @stoptrick ) { mes "I'm sorry you can't use this warper. you must wait "+ t( #delay_special_warp - gettimetick(2) ); close; } warp .special_map3$,0,0; // your warp map break; } if ( !#allow_use_warper ) { #allow_use_warper = gettimetick(2) + .timer_allow; #delay_special_warp = gettimetick(2) + 86400 * 7; // 1 week of delay delitem .item_required, 1; } if ( @timer_alreadyon == 0 ) { .@timer = ( #allow_use_warper - gettimetick(2) ) * 1000; addtimer .@timer, strnpcinfo(3) +"::OnEndofTime"; @timer_alreadyon = 1; } end; OnEndofTime: #allow_use_warper = @timer_alreadyon = 0; .@map$ = strcharinfo(3); if ( .@map$ == .special_map1$ || .@map$ == .special_map2$ || .@map$ == .special_map3$ ) { warp "prontera",0,0; message strcharinfo(0), "end of time"; } else @stoptrick = 1; end; OnPCLoginEvent: callsub L_check; end; L_check: if ( #allow_use_warper > gettimetick(2) ) { addtimer ( #allow_use_warper - gettimetick(2) )* 1000, strnpcinfo(3) +"::OnEndofTime"; @timer_alreadyon = 1; } else if ( #allow_use_warper ) #allow_use_warper = 0; return; function t { function s; set .@left, getarg(0); if ( .@left <= 0 ) return getarg(0); set .@day, .@left / 86400; set .@hour, .@left % 86400 / 3600; set .@min, .@left % 3600 / 60; set .@sec, .@left % 60; return ( ( .@day ? .@day +" day"+ s( .@day ) : "" ) + ( .@hour ? .@hour +" hour"+ s( .@hour ) : "" ) + ( .@min ? .@min +" min"+ s( .@min ) : "" ) + ( .@sec ? .@sec +" sec"+ s( .@sec,1 ) : "" ) ); function s { return ( ( getarg(0) > 1 ? "s" : "" ) + ( getarg(1,0) ? "" : " " ) ); } } OnInit: .item_required = 607; .timer_allow = 3600 * 2; // allow to warp 2h .level_required = 255; .special_map1$ = "geffen"; .special_map2$ = "alberta"; .special_map3$ = "payon"; /* // case of reload script - enable if you want .@count = query_sql( "select `account_id` from `char` where `online` = 1", .@account_id ); while( .@i < .@count ) { attachrid .@account_id[.@i]; callsub L_check; .@i++; } */ }
    1 point
  17. Or if you want -> http://rathena.org/board/topic/66721-inds-handy-guild-commands-ea-ra-port/
    1 point
  18. Quest Experience Update r17424 / be95412 contains a major fix for all quests implemented prior to the Renewal update. The problem rAthena's directory structure, supporting both Renewal and Pre-Renewal, was designed relatively recently; before its implementation, all Renewal updates were applied directly on top of the old scripts. r15060, in particular, overwrote all of the Pre-Renewal quest entries by dividing quest experience by ten -- which, aside from breaking Pre-Renewal support, also resulted in countless errors in EXP rewards, since most Renewal quests do not follow such a formula. Updated files Correct Pre-Renewal and Renewal EXP rewards were applied to 25 files: Local quests: Alberta, Ayothaya, Einbroch/Einbech, Hugel, Lighthalzen, Louyang, Morroc, Moscovia, Nameless Island, Prontera, Rachel, Veins, Episode 13.1, Episode 13.2 Other quests: Airship, Eye of Hellion, Kiel Hyre, Wandering Minstrel, Juperos, Brisingamen Seal, Megingard Seal, The Sign, Party Relay Mini-games: Hugel Monster Races, Turbo Track Both Renewal and Pre-Renewal server owners are strongly encouraged to apply this update.
    1 point
  19. or - script hibicus -1,{ function MobReward; OnInit:// setting // <mob id>, <itemid or variable>,<amount>, <itemid or variable>,<amount>... MobReward( 1002, 501,1, "#CASHPOINTS",5, 502,3 ); MobReward( 1003, 501,1, "#CASHPOINTS",5, 505,5, "#random_variable",1 ); MobReward( 1004, 501,1, "#CASHPOINTS",5 ); end; OnNPCKillEvent: .@mob_id = killedrid; if ( !compare( .concat_mobid$, .@mob_id +"" ) ) end;// not in the list .@party_id = getcharid(1); .@aid[.@count] = .@self_aid = getcharid(3);// killer index 0 .@count++; if ( .@party_id ) { .@map_killer$ = strcharinfo(3); getpartymember .@party_id,0; getpartymember .@party_id,1; getpartymember .@party_id,2; while( .@i < $@partymembercount ) { if ( isloggedin( $@partymemberaid[.@i],$@partymembercid[.@i] ) && .@self_aid != $@partymemberaid[.@i] ) {// don't count killer if ( readparam( 5,$@partymembername$[.@i] ) && !getmapxy( .@map$, .@x, .@y, 0,$@partymembername$[.@i] ) && .@map$ == .@map_killer$ ) {// hp > 0 and same map .@aid[.@count] = $@partymemberaid[.@i]; .@count++;// count players online in party } } .@i++; } } .@ratio = 1000/.@count; for ( .@i = 0; .@i < .@count; .@i++ ) { .@size = getd( ".size_item_id_"+ .@mob_id ); if ( .@size ) {// give item reward for ( .@j = 0; .@j < .@size; .@j += 2 ) { .@itemid = getd( ".item_id_"+ .@mob_id +"["+ .@j +"]" ); .@amount = getd( ".amount_item_id_"+ .@mob_id +"["+ .@j +"]" ); if ( getd( ".@i_"+ .@itemid ) < .@amount ) {// amount already given .@amount2 = .@amount - getd( ".@i_"+ .@itemid );// rest .@r = ( .@i == .@count -1 ) ? .@amount2 : ( ( .@amount* .@ratio / 1000 ) > 0 ? ( .@amount * .@ratio / 1000 ) : rand( 0,.@amount2 ) ); if ( .@r ) { setd ".@i_"+ .@itemid, getd( ".@i_"+ .@itemid ) + .@r; getitem .@itemid, .@r, .@aid[.@i]; } } } } .@size = getd( ".size_variable_"+ .@mob_id ); if ( .@size ) {// give variable reward if ( .@aid[.@i] != .@self_aid ) attachrid .@aid[.@i]; for ( .@j = 0; .@j < .@size; .@j += 2 ) { .@var$ = getd( ".variable_"+ .@mob_id +"$["+ .@j +"]" ); .@amount = getd( ".amount_variable_"+ .@mob_id +"["+ .@j +"]" ); if ( getd( ".@v_"+ .@var$ ) < .@amount ) { .@amount2 = .@amount - getd( ".@v_"+ .@var$ ); .@r = ( .@i == .@count -1 ) ? .@amount2 : ( ( .@amount* .@ratio / 1000 ) > 0 ? ( .@amount * .@ratio / 1000 ) : rand( 0,.@amount2 ) ); if ( .@r ) { setd ".@v_"+ .@var$, getd( ".@v_"+ .@var$ ) + .@r; setd .@var$, getd( .@var$ ) + .@r; dispbottom "You got "+ .@r +" "+ .@var$ +". Total: "+ getd( .@var$ ) +" "+ .@var$; } } } } } end; function MobReward {// split item/variable rewards to avoid attachrid if none variable reward .@argcount = getargcount(); .@mob_id = getarg(0); if ( .@argcount < 3 || (.@argcount+1)%2 ) debugmes strnpcinfo(3) +": not enough argument for monster "+ .@mob_id +".. skipping"; else if ( compare( .concat_mobid$, .@mob_id +"" ) ) debugmes strnpcinfo(3) +": mob id "+ .@mob_id +" give already a reward.. skipping"; else { .concat_mobid$ = .concat_mobid$ +"|"+ .@mob_id; for ( .@i = 1; .@i < .@argcount; .@i += 2 ) { if ( atoi( getarg(.@i) +"" ) ) {// is item setd ".item_id_"+ .@mob_id +"["+ .@size_item +"]", getarg(.@i); setd ".amount_item_id_"+ .@mob_id +"["+ .@size_item +"]", getarg(.@i+1); .@size_item++; } else {// is var setd ".variable_"+ .@mob_id +"$["+ .@size_var +"]", getarg(.@i); setd ".amount_variable_"+ .@mob_id +"["+ .@size_var +"]", getarg(.@i+1); .@size_var++; } } setd ".size_item_id_"+ .@mob_id, .@size_item;// size item for this monster setd ".size_variable_"+ .@mob_id, .@size_var; } } }
    1 point
  20. try http://pastebin.com/raw.php?i=5FL1ktcy
    1 point
  21. You're welcome I forget to talk about three known problems related to PHP GD (it sucks !). I show you this problems in only one monster : The Bloody Knight ! Do you see the fire ? There is a white rectangle around. this problems occurs on RGBA images in Sprite files when you try to merge them with the main image. Check the shield, there is a white border around it. When rotating an image it's possible to have this problem : the image border is merging with the transparent background (which is white) and cause this bug. I replace the transparent background by a transparent white background to avoid getting a magenta border (or other flashy border). Check the shield again, poor quality ! Due to image rotation + image scale. The problem n°1 just occurred in some monsters (effects), I don't think there is one hat or character using RGBA frames for now in RO. The problem n°2 and 3 can occurred in all monsters/characters, depend of the scale and rotation. To conclude, PHP GD sucks, I have noone of this problems in javascript (<3).
    1 point
  22. A long time since the last post (vacation, home relocation, waiting internet access). A lot of things were changed in the CORE to have a better organized code, I will not talk a lot about it since it's not finished yet, but it's sure now, roBrowser never be so stable. I will just detail the visual change. Intro Window A new button comes: "start", simply to run the tool without needed to send a client file (and so switching to remote GRF). The idea change too, instead of reading the GRFs, it's now reading the entire client (select all your files and give it to him), so I can select what I want to use (client, data.ini, grfs) and extract informations I need to run the tool. Packetver Auto-Detection Now roBrowser should be able to support packets from 2004 to (near)today and send the appropriate packets to the server. It can detect packetver from two techniques: If you drag drop your client, roBrowser get the packetver from the compiled date of your executable (PE Header). Guessing packetver from the packets received from servers. I didn't see an error for now since I connected on pservers. Configuration File A configuration file appeared in roBrowser, for now there is not much parameters but I will expend it in future. It's currently possible to set the : packetver ( YYYYMMDD / "auto", "client", "server"). remote host (default: http://grf.robrowser.com/). grf_list ( default: "data.ini", or json representation). clientinfo file (sclientinfo ? clientinfo ? other ? json representation ?). set specific configs for each servers in clientinfo if using json representation. UI I modify the chararacters on char-select UI, the selected player is moving (same animation that after the player get hit). I still need to check the window size for the char-select to know if need to write the mapname or not... Still in progress, I continue to write UI for the game, it's the most boring part... I added some checks on map loader, since an old update, if there was an error the loading just stop. So right now, if there is an error with a texture not found, model error, or other, the loading just skip and continue. Log System I extended the log system to be clean with differents colors for each informations, it's just easier to catch information and errors, all packets (and their structures) are accessibles throw the log and it's possible to know if they have a callback or not. And now ? Currently working on finishing to organize the code, after still a lot to do with all the UI and packets to interract with but the structure is here. Planning a release on september if I find time before my next vacations. Bonus Do you remember some posts back, I show some screenshots of a GRF Viewer using roBrowser's Core ? Here a video I made some months ago : Note: the models are a little slow to load : the reason because of a "no-cache" option that reload all scripts (network connection) each time you try to load a RSM. Without this options, it's instant loading. It will of course be available with roBrowser's source code (I would like to post it in my old GRF Viewer topic, but it's archived and I can't update it...).
    1 point
  23. rAthena Renewal battle support and major battle/skill system overhaul! ATTENTION! There have been several bugfixes since Renewal battle support was initially introduced with r17402. Please make sure to stay up to date with the latest SVN build for any potential fixes or changes. r17406 - Corrected Renewal EDP to exclude Grimtooth and Venom Knife r17413 - Corrected Renewal Final Strike to remove Ninja Soul and Hiding status on use r17417 - EDP incorrectly doubling weapon ATK bonus r17418 - Status ATK not being forced to an element r17420 - Reductions weren't being applied properly to damage dealt from players I tried to be as thorough as possible, there was just some bugs I had not ran into because I hadn't ran into them myself, and when we released the patch out to testing it wasn't reported. We are trying to fix them ASAP. Please make sure to stay up to date on the latest SVN for any potential bugfixes and report any issues you may run into! Overview: r17402 brings exactly what you've been waiting for all this time, a comprehensive and painstakingly accurate Renewal skill and battle system. After many sleepless nights and sacrifices to various foul gods, and lots and lots of moral support, we are proud to say this was worth the wait. Battle.c, the heart of the rAthena combat calculation engine, has been massively refactored and brought into line with official calculation methods and "quirks". And all skills, we're proud to say, are in place and functional and above all, accurate for both pre-renewal and renewal modes. No more placeholders! I'll keep this overview brief. If you're interested in a complete technical breakdown of all the renewal formulas and the methods how damage is calculated on official servers, keep on reading for exact formulas and gameplay behavior changes. Changes: Renewal EDP is fully implemented and functioning according to official behaviors All skills updated to their official Renewal formulas and behaviors, notable examples including Soul Breaker, Acid Demonstration, and Spiral Pierce Countless skill fixes and undocumented official behaviors "documented" and implemented for both Renewal and Pre-Renewal modes Battle.c rewritten for easier maintenance and modification Renewal skill database updated and verified If you have any source modifications, you may experience some issues updating. We highly highly recommend starting from a clean SVN copy before applying any source modifications. Those of you with stock installations should be fine with an SVN pull and a recompile. This update isn't just for renewal support either, many skills and behaviors have been corrected for pre-renewal as well. We definitely recommend upgrading to this even if you're running a purely pre-renewal server for a more accurate gameplay experience. Many many thanks go to Baalberith who did most of the initial refactoring work, and to Akinari who beat me over the head to make sure I finished this xP! Gory technical details General * Forced neutral behavior documented and implemented. Weapon element does affect the following skills, but final damage is treated neutral for resistances. End result is endows do boost skill damage as expected given elemental weaknesses or resistances, but forced neutral skills will always miss on Ghost 3/4 mobs as the damage is "forced" back to neutral type after bonuses are applied but before resistances. * The following skills are considered "forced neutral" Merchant "Cart Revolution" Creator "Acid Demonstration" Genetic "Cart Cannon" (damage is forced to element of cannon ball, either neutral or holy or ghost) * Weapon calculation engine has been rewritten to better emulate official behaviors and "quirks", the following changes have been documented and implemented: Double attack takes priority over criticals when determining which effect activates VITDEF (status or sDEF) is applied on every hit on multi-hit skills, rather than a flat reduction on the final damage total Skills such as Spiral Pierce that differ when used by monsters modified to match official calculation methods * Weapon element behavior adjusted to match official behavior, endows override any innate weapon element, including elemental arrows * Renewal - weapon element only applies bonus damage to "weapon" ATK, ATK from status and equipment is considered neutral and ATK from mastery skills are considered non-elemental * Renewal - MATK on offhand equipped items does stack and apply towards total MATK calculated for skills and spells. This means classes that can dual wield will be able to get +MATK from both weapons, unlike physical where offhand ATK is ignored for skills. Archer * Renewal - Owl's Eye still gives +1 HIT per skill level but the HIT bonus does not show up in the status window anymore Hunter * Renewal - Claymore, freeze trap and landmine adjusted to apply full damage to "plant" type mobs (monsters that only take 1 damage on every hit) Thief * Double attack gives a hidden +1 HIT per skill level on attacks that activate the double attack effect * Envenom gives a flat +15 ATK per skill level when used, it is considered a mastery type damage and has no element Rogue * Renewal - Owl's Eye still gives +1 HIT per skill level but the HIT bonus does not show up in the status window anymore Merchant * Cart Revolution adjusted to match "forced neutral" behavior Assassin Cross * Advanced Katar Mastery modified. is treaded similar to a +%ATK card rather than a weapon mastery * Renewal - Soul Breaker formula for Renewal implemented ((ATK + MATK) * (3 + (.5 * skill level)) - (eDEF + sDEF + eMDEF + sMDEF) * Renewal - Soul Breaker no longer misses, it will always do full damage regardless of target's FLEE * Renewal - Soul Breaker no longer gains DEF piercing or ignore DEF effect from weapons such as Combat Knife and Ice Pick * Renewal - Enchant Deadly Poison for Renewal implemented Weapon ATK multiplied by (1 + (EDP level * .8)) Equipment ATK multiplied by (1 + (EDP level * .6)) * Renewal - EDP adds half modifiers (base damage/2) but otherwise functions as above with the following skills: Sonic Blow Soul Breaker Counter Slash Cross Impact * Renewal - EDP no longer affects the following skills: Grimtooth Venom Knife * Renewal - EDP now affects the following skills: Meteor Assault Soul Breaker * EDP still does not affect Venom Splasher in both Renewal and Pre-Renewal modes Creator * Renewal - Acid Demonstration formula for Renewal implemented 7 * ((ATK + MATK) / skill level) * VIT / 100 ) * Acid Demonstration adjusted to match "forced neutral" behavior on official For example, Acid Demonstration used on a water-type mob with a wind endowed weapon will do bonus damage, but will miss on a Ghost 3/4 monster regardless of endow. Swordsman * Magnum break bonus damage gives +20% ATK fire damage on physical attack (so 100% ATK normal + 20% ATK fire) Lord Knight * Renewal - Spiral Pierce formula for Renewal implemented (ATK + (weapon weight / 2)) * (100 + (50 * skill level))% * Renewal - Mastery skills such as spear mastery no longer add any bonus damage to Spiral Pierce * Renewal - Spiral Pierce no longer ignores DEF Ninja * Renewal - Final Strike formula for Renewal implemented base damage = current hp + ((ATK * current hp * skill lvl) / max hp) final damage = base damage + ((mirror image count + 1) / 5 * base damage) - (eDEF + sDEF) * Final Strike will MISS on plant-type mobs (mobs that only take 1 damage per hit from all sources) * Mirror Image cast over itself will override and reset current Mirror Image count Genetic * Cart Cannon "forced element" behavior implemented, damage is "forced" to the element of the cannon ball. Ex. Cart Cannon fitted with a standard cannon ball and a fire elemental weapon will do bonus damage against earth targets, and a Cart Cannon fitted with a holy cannon ball will do bonus damage against shadow, but total damage is forced back to element of cannon ball and resistances applied against it. Neutral cannon balls will miss on Ghost 3/4 but holy/ghost/shadow will not. Gunslinger * Gunslinger Mine skill formula and behavior matched to official Fixed 50 * skill level damage, ignores DEF and is affected by +% ATK weapon cards only Warlock * Tetra Vortex behavior modified to match official First 4 spirit spheres are used for calculating element of each hit, but if 5 are present all 5 are consumed Taekwon Kid * Renewal - Mild wind applies element bonus to status ATK as well as weapon ATK, unlike endows
    1 point
  24. amatsu,116,146,3 script Seyra 90,{ set .@n$, "[Seyra]"; setarray .@rwd[0],2115,1,2357,1,2421,1,2524,1; // Rewards: <item id>,<item amount> query_sql ("SELECT `last_ip` FROM `login` WHERE `account_id`=" + getcharid(3) + "", .@lip$); if ( getd("$" + .@lip$ + "_NG") > 0 || #NewbieGift > 0) { mes .@n$; mes "I'm sorry, the rewards are exclusively for new players."; close; } mes .@n$; mes "Welcome! Here are some free gifts"; mes "for newcomers:"; for ( set .@i, 0; .@i < getarraysize(.@rwd); set .@i, .@i + 2 ) mes .@rwd[.@i+1] + " x " + getitemname(.@rwd[.@i]); close2; set #NewbieGift, 1; setd "$" + .@lip$ + "_NG", getd("$" + .@lip$ + "_NG") + 1; for ( set .@i, 0; .@i < getarraysize(.@rwd); set .@i, .@i + 2 ) getitem .@rwd[.@i], .@rwd[.@i+1]; end; OnInit: waitingroom "Newbie Gift!",0; end; }
    1 point
  25. prontera,150,150,0 script Vote Trader 123,{ mes "You have ^000088"+ #CASHPOINTS +"^000000 Vote Points."; mes "1 Vote Point is equal to 1 TCG."; mes "Do you want to trade your Vote Points into TCG?"; menu "No!",-,"Yes!",Cash2TCG; next; mes "Ok, just let me know."; close; Cash2TCG: next; mes "How many Vote Points would you like to trade?"; input .@vps; next; if ( .@vps < 1) goto Zero; if ( .@vps > 30000) goto Toomany; if((countitem(7227)+.@vps) >= 30000) goto Toomany; if ( #CASHPOINTS < .@vps) goto Tooless; mes "Here you go!"; set #CASHPOINTS,(#CASHPOINTS-.@vps); getitem 7227,.@vps; next; mes "Here's your TCG."; close; Toomany: next; mes "You cannot hold more than 30,000 TCG."; close; Tooless: next; mes "Insufficient Vote Points."; close; Zero: next; mes "0 means cancel!"; close; }
    1 point
×
×
  • Create New...