Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/14/13 in all areas

  1. They're free to do what they did for whatever reasons. Can we just please move on from this?
    5 points
  2. Here you go. Download the attached file. yggberry_recolors.rar
    4 points
  3. I made you a few re-colors. Download the attached file. skull_recolors.rar
    3 points
  4. Yes, there is a fork of a fork and yes, there has been A LOT of things that happened behind the scenes. There is no limitations on who can create a fork and who can't; whatever their reasons may be. But does this really all matter, as long as there is an emulator out there for the community to use? And like Yuki said, it's in the past now. There is no need to waste time in dealing with these things as they've already happened. It is definitely better to focus on the present and the future. The best that each project can do now is to improve their own project and hope for some collaboration between the two.
    2 points
  5. This is designed for the incompetent. The same information can be found in my nfo file. If you wish to keep a little pice of me with you. You can download it off of my public cloud. Spread me around like a cancer! Pour some sugar on me~ P.S. This will be updated, improved regularly. If I miss something please get in touch with me. Keep it up everyone, let's work together! ^_^V SVN rAthena GIT~ https://github.com/rathena/rathena SVN Downloader TortoiseSVN ~ http://tortoisesvn.net/downloads.html Codeplex ~ http://downloadsvn.codeplex.com/ SmartSVN ~ http://www.syntevo.c...n/download.html KRO Installer Miruku ~ http://miruku.rathena.org/ RateMyServer ~ http://ratemyserver....wnload_kROLinks RSU ~ http://nn.nachtwolke.com/dev/rsu/ Clients & Diff Patchers k3dT 2013 Clients - http://k3dt.eu/Ragexe/unpacked/ Weetools Clients ~ https://subversion.a...etools/clients/ Supportmii Clients ~ http://supportmii.com/ro1/Clients/ Earthlingz CleintSide ~ http://www.assembla....bversion/nodes/ ShinsDiffPatcher ~ https://subversion.a...insDiffPatcher/ rAthena's Online Diff Patcher ~ http://rathena.org/t...iff_patcher.php LUA/LUB & Data LUA/Data ~ http://svn6.assembla...svn/ClientSide/ LUB ~ http://code.google.c.../downloads/list Packet_dbs & Packet_lengths Packets ~ http://svn6.assembla...ntSide/Packets/ actRO, Browedit, GRF, Sprite, Client Tools Ratemyserver Tools ~ http://ratemyserver....e=download_tool Supportmii Tools ~ http://supportmii.com/ro1/tools/ Browedit ~ http://browedit.exca...com/?a=download Shins Programs WeeMapCache ~ https://subversion.a...nk/WeeMapCache/ WeeThumbnail ~ https://subversion.a...k/WeeThumbnail/ rAthena's Tools rA's Login Background Screen Generator ~ http://rathena.org/t...gin_background/ Game Server Patchers Thor ~ http://thor.aeomin.net/ Triad ~ http://www.nitroconc...d/index_eng.php Control Panels FluxCP ~ https://github.com/c.../fluxcp-renewal CeresCP ~ http://sourceforge.n.../cerescp/files/ Guides & Info Judas Bible ~ http://supportmii.co.../JudasBible.pdf rAthena Wiki ~ http://rathena.org/wiki/ Misc Helpful Links eAthena Board ~ http://eathena.ws/forum/ RMS Sprite Bible ~ http://ratemyserver....riot_bible_main Web Host Talk ~ http://www.webhostingtalk.com/ Codes / Scripts Paste Sites kPaste ~ http://rathena.kpaste.net/ uPaste ~ http://upaste.me Pastebin ~ http://pastebin.com/ Security / Client Protection Harmony ~ https://harmonize.it/ Setup.exe BlueGhost Setup.exe ~ http://rathena.org/b...up/#entry144124 OpenSetup ~ http://www.mediafire...abj2jau2wxbvoiu
    1 point
  6. 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
  7. Preamble I have written an achievement system I want to share with you. It is not the best way to solve achievement systems nor is it very efficient(though it might be more efficient than NPC scripting) and if you already have an achievement system(src or npc) and it's working for you, please don't change to mine. Mine is rather old(about half a year or more) and back then it was the first time I wrote something completly new for eAthena. What I did today was applying the system to rA and create a working diff. If you are willing to use this system then I beg you to report any bug found. Also, if there is enough demand, I might consider re-writing it from scratch, because I am overall unhappy with the system, but not really motivated to further work on it in greater detail. Also the code-style I used back then is totally going against the one I am using nowadays... Don't judge me! Functions There are pre-defined types of achievements in this system Monsterkill Achievements Itemfind Achievements (Only use this for Items NOT trade/drop/storage-able, or else it will result in abuse) Itemuse Achievements Explore Achievements Quest Achievements Special Achievements Let me explain them one after another: Monsterkill Achievements(0): Well, name says it mostly, but there is a bit more to it. You can define different types per achievement. The types are counting by ID(0), by size(1), by race(2), by element(3) or for all MvPs(4). And if player A has killed X monsters that meet the requirement, then he gets the achievement. Itemfind Achievements(1): Again, name says what it does. If you find certain items, you get the achievement. Make sure you only use it on non tradeable etc. items or it will be abused. It can also be filtered into types. They are the following: ID(0), Equip(1)[see item_db->equip), Type(2)[see item_db->type]. It will count if you drop it and pick it up again, so really, only use it on items not storageable, tradeable and dropable! Itemuse Achievements(2): Its porpuse is to count every item used. This achievement might be bugged, report anything you find fishy! It uses the same filtering as Itemfind, so please refer to that. Explore Achievements(3): When entering a map, the system checks whether the map is inside the database for explore achievements and if so, it sets the count. If the player visited all maps for one achievement, then he receives the achievement. Quest Achievements(4): When finishing certain quests, you are able to gain quest achievements. Simple as that! Special Achievements(5): This are achievements in the achievement database. But they are only applicable over @achieve from a GM or with the achieve script_command. This achievement has Event porpuses and is only added for a complete database for your website etc. Now comes the technical stuff... How to install the achievement system 1. Download the *.diff and the *.sql file(they are in the *.rar provided). 2. Import the *.sql into your rAthena database. 3. Apply the *.diff onto your rAthena server. 4. Check your ./conf/battle/exp.conf and ./conf/battle/misc.conf: Two new configs have been added: achievement_cutin_duration and achievement_exp_rate. Read the conf files for more information and change it to whatever you wish it to be. 5. Add the two new files ./src/map/achievement.c and ./src/map/achievement.h to your MAKEFILE or to your project solution and recompile! (^ Up to this point, I won't provide ANY support ^) How to add achievements Well, that is mainly why I would like to find another way of solving the achievement system. But currently it is like this: 1. Add your achievement to achievement_db. Here is a brief summary of the columns: If you chose 5 as type, you are nearly done, skip step 2. If you chose another type, please read on. 2. Go to the respective table of your chosen type: 0->mob_achievement 1->item_achievement 2->itemuse_achievement 3->explore_achievement 4->quest_achievement Now add an entry for your newly added achievement. The columns are rather similiar, but I'll explain in greater detail: mob_achievement: achievement_id: Set to ID assigned by achievement_db for your new achievement type: See description of Mobkill Achievements. There are numbers in brackets for each filtering type valueX: The value for what to filter. I.e. if you chose ID, then place an ID here. If you chose elements, place a number from the element enum here (see script_commands or src for reference) amountX: How many to kill itemfind_achievement: itemuse_achievement: achievement_id: Set to ID assigned by achievement_db for your new achievement type: See description of Itemfind Achievements. There are numbers in brackets for each filtering type valueX: The value for what to filter. I.e. if you chose ID, then place an ID here. amountX: How many to find/use explore_achievement: achievement_id: Set to ID assigned by achievement_db for your new achievement mapX: Name of the map. I.e. prontera quest_achievement: achievement_id: Set to ID assigned by achievement_db for your new achievement questX: ID of the quest 3. Last step is to reload the AchievementDB ingame via @reloadachievement or restart your server. Atcommands So, I added two atcommands working together with this System: @achieve <Achievement_ID> <Player_Name>. Give <Player_Name> Achievement with <Achievement_ID> as ID. IT DOES NOT CHECK WHETHER HE MEETS THE REQUIREMENTS! Built in for debugging and special achievements @reloadachievements. Reload the Achievement DBs. Helpfully if you added new achievements and don't want to restart the server. Scriptcommands *Achieve( <AchievementID>{, <Account_ID>}); Same as the Atcommand. If no account_id is given, use attached player. Does also not check if player meets requirements. Intended for special achievements *GetAchievementInfo(<AchievementID>, <flag>); Flag determines what to return: 0 = type, 1 = bexp, 2 = jexp, 3 = nameid, 4 = points, 5 = status 5 Only works with attached players and returns 1 if the player finished the achievement and 0 otherwise. *GetAchievementName(<AchievementID>); Returns the name of the achievement *GetAchievementCutin(<AchievementID>); Returns the name of the cutin of the achievement I think this is about all you need to know. Please report any bugs and post any suggestions. If you overwhelm me enough, I might rework it to be more user-friendly! Only post bugs and suggestions after you've read through the whole article. I will notive if you haven't. At last Download achievement.patch achievement.sql €dit: I really want to stress the following facts again: Read the whole article! Only use if you are unable to script/code a system that is suficient to suit your needs or this system matches your needs perfectly(well, w/e)! Report any found bug! €dit²: Forgot to mention. The last achievement is stored within the permanent playervariable "LastAchievement" and it stores the ID of the achievement. So you can check it via NPC script etc. Changelog: 1.0 FIrst version 1.1 Fixxed bug of not deleting the cutins properly [Thanks Dexter] 1.2 Fixxed cutin bug fully, fixxed typos in config
    1 point
  8. File Name: Spongebob Hat by Angel File Submitter: Angel File Submitted: 14 Feb 2013 File Category: Headgears Content Author: Angel Bob Sponja has come to Ragnarok ;D jajaja. Click here to download this file
    1 point
  9. now i noticed...you are using 3 condition checking for this.....LOL....i thought you are using only 1 part to check for 2 items...but you are using 3 condition checking to check for 2 items..or checking for 2 items...but display only 1 items..... which you did here.. i would rather do it like this.. mes "[^80B584Xyratra^000000]"; if ( countitem(909) < 20 ) mes "I still require "+( 20 - countitem(909) )+" more Jellopies from porings"; if ( countitem(935) < 20 ) mes "I still require "+( 20-countitem(935) )+" more Shells from chonchons."; or mes "[^80B584Xyratra^000000]"; .@item_1 = countitem(909); .@item_2 = countitem(935); if( .@item_1 < 20 || countitem(935) < 10 ){ mes "[ "+( ( .@item_1 < 20 )? ( 20 - .@item_1 ):.@item_1 )+" / 20 ] "+getitemname( 909 ); mes "[ "+( ( .@item_2 < 20 )? ( 20 - .@item_2 ):.@item_2 )+" / 10 ] "+getitemname( 909 ); } there are alot way to do it... well.. a separated condition checking would be better for your case... anything i missed ?
    1 point
  10. Aaaah, nevermind. This wont work. There is an error in my logic... sorry. T_T Try this: bonus bDelayRate, (isequipedcnt(2703) == 2) ? -30 : -30 / isequipedcnt(4403));
    1 point
  11. bonus bDelayRate, (getequipid(EQI_ACC_L) == 2703 && getequipid(EQI_ACC_R) == 2703) ? -30 : -30 / (getequipcardcnt(EQI_HEAD_TOP) + getequipcardcnt(EQI_HEAD_MID) + getequipcardcnt(EQI_HEAD_LOW)); .. should work
    1 point
  12. Use one of the free designs from the downloads section or buy one from those in the paid section.
    1 point
  13. change item type to 2 22001,Angeling_Taming_Item,Angeling Taming Item,2,1000,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ pet 1069; },{},{}
    1 point
  14. if ( countitem(501) < 5 && countitem(502) < 5 ) { should be if ( countitem(501) < 5 || countitem(502) < 5 ) { btw...you are checking on RED POTION while the NPC request for Apples ?
    1 point
  15. if ( countitem(501) < 5 && countitem(502) < 5 ) { mes "I still require "+ ( 20-countitem(512) ) +" more apples!"; close; } The brackets !
    1 point
  16. If you want to add more than the poring event you're right, like an all-in-one event manager But you must to delete the array on the 1st NPC, I suggest donpcevent and getvariableofnpc prontera,146,76,5 script Event Warper 909,{ set .@name$,"[Warper]"; if( select( "Enter", "Cancel " ) -1 ) { mes .@name$; mes "See ya"; close; } else if( .accessFTP == 0 ) { set .@Hour, gettime(3); set .@Minute, gettime(2); set .@FTPTime, gettime(3) + 4; if( gettime(3)%4 == 1 ) set .@FTPTime, .@FTPTime-1; if(gettime(3)%4 == 2) set .@FTPTime, .@FTPTime-2; if(gettime(3)%4 == 3) set .@FTPTime, .@FTPTime-3; mes .@name$; mes "Find the Poring is closed right now.."; mes "The next Event starts on "+ .@FTPTime +"."; mes "And right now it is "+ .@Hour +":"+ .@Minute +"."; close; } else if( .register_num >= 128 ) { // room FULL mes .@name$; mes "I'm sorry but this Event is FULL."; mes "Maximum users to enter is 128 players."; close; } for( set .@i, 0; .@i < .register_num; set .@i, .@i + 1 ) { if( .register_aid[.@i] == getcharid(3) ) { mes .@name$; mes "You got warped once! Try again next time!"; close; } } warp "pvp_y_1-5",0,0; set @FTPChance, 0; set .register_aid[ .register_num ], getcharid(3); set .register_num, .register_num + 1; end; OnReset: deletearray .register_aid; set .register_num, 0; end; } - script FTPoring -1,{ OnClock0000: OnClock0400: OnClock0800: OnClock1200: OnClock1653: OnClock2000: announce "Find the Poring is now started!",0; killmonsterall "pvp_y_1-5"; monster "pvp_y_1-5",0,0,"Drops",1113,1000,"FTPoring::OnMobDeath"; monster "pvp_y_1-5",0,0,"Marin",1242,1000,"FTPoring::OnMobDeath"; monster "pvp_y_1-5",0,0,"Santa Poring",1062,1000,"FTPoring::OnMobDeath"; monster "pvp_y_1-5",0,0,"Metaling",1613,1000,"FTPoring::OnMobDeath"; monster "pvp_y_1-5",0,0,"Stapo",1784,1000,"FTPoring::OnMobDeath"; monster "pvp_y_1-5",0,0,"Poring",1002,1,"FTPoring::OnWinMobDeath"; mapwarp "pvp_y_1-5","prontera",156,98; set getvariableofnpc( .accessFTP, "Event Warper" ),1; donpcevent "Event Warper::OnReset"; end; OnMobDeath: set @FTPChance,@FTPChance+1; if(@FTPChance>=3){ warp "prontera",156,98; dispbottom "You've run out of chances!"; end; } dispbottom "Wrong Monster! You have "+(3-@FTPChance)+" chance's left"; end; OnWinMobDeath: mapannounce "pvp_y_1-5","["+strcharinfo(0)+"] has found the poring! The Event is over!",0; GetItem( 20002, 3 ); mapwarp "pvp_y_1-5","prontera",156,98; killmonsterall "pvp_y_1-5"; set @FTPChance,0; set getvariableofnpc( .accessFTP, "Event Warper" ), 0; donpcevent "Event Warper::OnReset"; end; } set getvariableofnpc( .accessFTP, "Event Warper" ), 0; will put variable .accessFTP in the "Event Warper" to 0
    1 point
  17. I think you don't need to split the script. The NPC can warp player and hold an event. And you do more work Lol I test on ea then edit wait EDIT: announce "Find the Poring is now started!",0; monster "pvp_y_1-5",0,0,"Drops",1113,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Marin",1242,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Santa Poring",1062,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Metaling",1613,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Stapo",1784,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Poring",1002,1,"Event Warper::OnWinMobDeath"; set .accessFTP,1; mapwarp "pvp_y_1-5","prontera",156,98; killmonsterall "pvp_y_1-5"; should be announce "Find the Poring is now started!",0; killmonsterall "pvp_y_1-5"; monster "pvp_y_1-5",0,0,"Drops",1113,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Marin",1242,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Santa Poring",1062,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Metaling",1613,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Stapo",1784,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Poring",1002,1,"Event Warper::OnWinMobDeath"; set .accessFTP,1; mapwarp "pvp_y_1-5","prontera",156,98; Seriously I feel so noob today Lol
    1 point
  18. You are an eAthena user, try this prontera,146,76,5 script Event Warper 909,{ set .@name$,"[Warper]"; if( select( "Enter", "Cancel " ) -1 ) { mes .@name$; mes "See ya"; close; } else if( .accessFTP == 1 ) { set .@Hour, gettime(3); set .@Minute, gettime(2); set .@FTPTime, gettime(3) + 4; if( gettime(3)%4 == 1 ) set .@FTPTime, .@FTPTime-1; if(gettime(3)%4 == 2) set .@FTPTime, .@FTPTime-2; if(gettime(3)%4 == 3) set .@FTPTime, .@FTPTime-3; mes .@name$; mes "Find the Poring is closed right now.."; mes "The next Event starts on "+ .@FTPTime +"."; mes "And right now it is "+ .@Hour +":"+ .@Minute +"."; close; } else if( .register_num >= 128 ) { // room FULL mes .@name$; mes "I'm sorry but this Event is FULL."; mes "Maximum users to enter is 128 players."; close; } for( set .@i, 0; .@i < .register_num; set .@i, .@i + 1 ) { if( .register_aid[.@i] == getcharid(3) ) { mes .@name$; mes "You got warped once! Try again next time!"; close; } } warp "pvp_y_1-5",0,0; set @FTPChance, 0; set .register_aid[ .register_num ], getcharid(3); set .register_num, .register_num + 1; end; OnClock0000: OnClock0400: OnClock0800: OnClock1200: OnClock1653: OnClock2000: announce "Find the Poring is now started!",0; monster "pvp_y_1-5",0,0,"Drops",1113,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Marin",1242,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Santa Poring",1062,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Metaling",1613,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Stapo",1784,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Poring",1002,1,"Event Warper::OnWinMobDeath"; set .accessFTP,1; mapwarp "pvp_y_1-5","prontera",156,98; killmonsterall "pvp_y_1-5"; deletearray .register_aid; set .register_num, 0; end; OnMobDeath: set @FTPChance,@FTPChance+1; if(@FTPChance>=3){ warp "prontera",156,98; dispbottom "You've run out of chances!"; end; } dispbottom "Wrong Monster! You have "+(3-@FTPChance)+" chance's left"; end; OnWinMobDeath: mapannounce "pvp_y_1-5","["+strcharinfo(0)+"] has found the poring! The Event is over!",0; GetItem( 20002, 3 ); mapwarp "pvp_y_1-5","prontera",156,98; killmonsterall "pvp_y_1-5"; set @FTPChance,0; deletearray .register_aid; set .register_num, 0; set .accessFTP, 0; end; }
    1 point
  19. openstorage; should work desactivate sound (bgm and other) avoid crash - but doesn't solve the problem
    1 point
  20. Like this ? prontera,146,76,5 script Event Warper 909,{ set .@name$,"[Warper]"; if( select( "Enter", "Cancel " ) -1 ) { mes .@name$; mes "See ya."; close; } else if( .accessFTP == 0 ) { set .@Hour, gettime(3); set .@Minute, gettime(2); set .@FTPTime, gettime(3) + 4; set .@FTPTime, .@FTPTime- gettime(3)%4; mes .@name$; mes "Find the Poring is closed right now.."; mes "The next Event starts on "+ .@FTPTime +"."; mes "And right now it is "+ .@Hour +":"+ .@Minute +"."; close; } else if( .register_num >= 128 ) { // room FULL mes .@name$; mes "I'm sorry but this Event is FULL."; mes "Maximum users to enter is 128 players."; close; } for( .@i = 0; .@i < .register_num; .@i++ ) { if( .register_aid[.@i] == getcharid(3) ) { mes .@name$; mes "You got warped once! Try again next time!"; close; } } warp "pvp_y_1-5",0,0; @FTPChance = 0; .register_aid[ .register_num ] = getcharid(3); .register_num++; end; // debug // OnInit: OnClock0000: OnClock0400: OnClock0800: OnClock1200: OnClock1653: OnClock2000: announce "Find the Poring is now started!",0; monster "pvp_y_1-5",0,0,"Drops",1113,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Marin",1242,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Santa Poring",1062,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Metaling",1613,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Stapo",1784,1000,"Event Warper::OnMobDeath"; monster "pvp_y_1-5",0,0,"Poring",1002,1,"Event Warper::OnWinMobDeath"; set .accessFTP,1; deletearray .register_aid; .register_num = 0; mapwarp "pvp_y_1-5","prontera",156,98; killmonsterall "pvp_y_1-5"; end; OnMobDeath: set @FTPChance,@FTPChance+1; if(@FTPChance>=3){ warp "prontera",156,98; dispbottom "You've run out of chances!"; end; } dispbottom "Wrong Monster! You have "+(3-@FTPChance)+" chance's left"; end; OnWinMobDeath: mapannounce "pvp_y_1-5","["+strcharinfo(0)+"] has found the poring! The Event is over!",0; GetItem( 20002, 3 ); mapwarp "pvp_y_1-5","prontera",156,98; killmonsterall "pvp_y_1-5"; set @FTPChance,0; deletearray .register_aid; .register_num = .accessFTP = 0; end; } @FTPChance is reset when another event start and if the player can enter His account id is save in an array and he can't re-enter for the same event .register_aid[ .register_num ] = getcharid(3); For the set .@FTPTime, .@FTPTime- gettime(3)%4; instead of if (gettime(3) == 1) set @FTPTime, @FTPTime-1; if (gettime(3) == 2) set @FTPTime, @FTPTime-2; if (gettime(3) == 3) set @FTPTime, @FTPTime-3; if (gettime(3) == 5) set @FTPTime, @FTPTime-1; if (gettime(3) == 6) set @FTPTime, @FTPTime-2; if (gettime(3) == 7) set @FTPTime, @FTPTime-3; etc.. gettime(3)%4 is the remainder of gettime(3)/4 for example if gettime(3) == 1 then gettime(3)/4 == 0 and the remainder gettime(3)%4 is 1
    1 point
  21. (Okay... I have no idea where should I post this.) (after fu*ing 10+ hours, finally...) Special Thanks http://www.wipeoutgaming.info/ supply researching hosting to me Preview What is PayPal IPN (Instant Payment Notification) ? >> https://www.paypal.com/ipn What is PayPal IPN Converter ? This is a function will transform PayPal IPN message to what Ro server understanding so you can get paid news from PayPal and use it to do what you want (sample:send reward to donors automatically). Below is my consequent, include how to set IPN and simple converter . * 1. go to your hosting and look for this folder which is your phpmyadmin local file, I create a new folder named '' ipn '' 2. put this sample php ipn.php file into folder 3. if you put right place, you should be able to visit it and see this 4. open this php file and edit your account and password which you use for login phpmyadmin 5. login your phpmyadmin and create new database named 'ipn' 6. import this new table paypal_table.sql to this database 7. check is all okay by using sandbox >> https://developer.paypal.com/cgi-bin/devscr?cmd=_ipn-link-session send IPN 8. if IPN is okay, you should receive new date like this 9. after you sure all work well, go to and open ipn.php again change $ch = curl_init('https://www.sandbox.paypal.com/cgi-bin/webscr');to$ch = curl_init('https://www.paypal.com/cgi-bin/webscr');10. login your paypal and ''My Account'' >> ''History'' >> ''IPN History'' click ''turn on IPN'' and type 11. now when someone do something to you, PayPal should send IPN to you and your server will make it into database. and other thing, is npc sciprt problem. - refer : https://www.paypaltech.com/SG2/ refer : http://j.mp/X2DG6R refer : https://www.paypal.com/ipn
    1 point
  22. 1. Most probably you're looking for the specialeffect2 script command. 2. Nope, there is no command to do this. 3. atcommand "@storage"; should work. 4. I'd use getitem2 instead of that string building crap.
    1 point
  23. This is actually related to the act of the sprite. Open this sprite with Actor and go through the front angle frames and see. One of the frames are for sure positioned that way like mindstream mentioned.
    1 point
  24. Its just a guess but i think the scarf is misaligned in one of the act positions. you can try walking down and see if it jumps up during that.
    1 point
  25. 1. edit these 2 guild files like so: Index: npc/guild2/agit_main_se.txt =================================================================== --- npc/guild2/agit_main_se.txt (revision 17127) +++ npc/guild2/agit_main_se.txt (working copy) @@ -601,6 +601,7 @@ end; OnStartArena: + set breaker_points, breaker_points +1; set .@GID,getcharid(2); set .@region$, (compare(strnpcinfo(4),"arug"))?"Valfreyja":"Nithafjoll"; // Lower castle Economy Index: npc/guild/agit_main.txt =================================================================== --- npc/guild/agit_main.txt (revision 17127) +++ npc/guild/agit_main.txt (working copy) @@ -99,6 +99,7 @@ // The Emperium has been broken. OnAgitBreak: + set breaker_points, breaker_points +1; set .@GID,getcharid(2); // Show and log error if an unguilded player breaks the Emperium. (Should NEVER happen) if (.@GID <= 0) { 2. load this script: http://rathena.kpaste.net/934c?rawprontera,155,188,0 script Emp Break Ladder 910,{ switch(select("View Emp Break Ladder:Redeem points for TCG:More Info")) { case 1: query_sql "SELECT `char`.`name`, guild.`name`, CAST(`value` AS UNSIGNED) " + "FROM global_reg_value " + "LEFT JOIN `char` ON global_reg_value.char_id=`char`.char_id " + "LEFT JOIN `guild` ON `char`.guild_id=guild.guild_id " + "WHERE global_reg_value.`str`='breaker_points' " + "ORDER BY CAST(`value` AS UNSIGNED) DESC LIMIT 10", .@name$, .@guild$, .@points; mes "[Top 10 Emp Breakers]"; for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) { mes (.@i+1) +". ^0000FF"+ .@name$[.@i] +"^000000, "+ .@guild$[.@i] +" ("+ .@points[.@i] +((.@points[.@i]==1)?" pt":" pts")+")"; } break; case 2: mes "[Emp Break Ladder]"; mes "Total Emp Breaks: " + breaker_points; mes "Available Points: " + (breaker_points - breaker_tcg); if (breaker_points == 0) { mes "You have not broke the emp yet!"; } else if (breaker_points <= breaker_tcg) { mes "You've already exchanged all your points for TCG."; mes "Come back after you break the emp again!"; } else { set .@reward, breaker_points - breaker_tcg; if (select("Redeem points for "+.@reward+" TCG:Cancel") == 2) { mes "Come back if you change your mind."; } else if (checkweight(7227, .@reward) == 0) { mes "You are overweight or carrying too many items."; } else { getitem 7227, .@reward; set breaker_tcg, breaker_tcg + .@reward mes "Here are your "+.@reward+" TCG!"; } } break; case 3: mes "[Emp Break Ladder]"; mes "Each time you break the emp, you earn 1 point."; mes "Then, talk to me to redeem your point(s) for TCG."; break; } close; }
    1 point
  26. Those are official gravity models the map is trying to call. I highly recommend you update your data.grf as it seems it's missing them (Im surprised to why you are missing them). Try this patcher -> http://rathena.org/b...785-tk-patcher/
    1 point
  27. the npc CAN move outside the map with unitwarp + getnpcid prontera,155,187,5 script dsasda 100,{ .@map$ = strnpcinfo(4); npctalk "I am currently in "+ .@map$; sleep 1000; if ( .@map$ == "prontera" ) unitwarp getnpcid(0), "morocc",156,93; else if ( .@map$ == "morocc" ) unitwarp getnpcid(0), "prontera", 156,191; end; } move to script support btw
    1 point
  28. I never really understood how there could be so much political trouble in emulator projects. You don't even need to do many coding decisions as you already have a clear definition on how it should be (= like official servers). That devs are lazy, well that's a different story, an open source project always depends on how many people are willing to work for it. You can't really blame devs for doing nothing. Want more work done? Then join the project instead of doing the fixes just for your own server.
    1 point
  29. @Antares: We're a group of volunteers. We're not paid, and we're not machines. If you have the time and drive to contribute, you are welcome to do so. Otherwise your post is incredibly disrespectful.
    1 point
  30. Let it be the past, we are in the present and we don't need anymore drama around here. I see it that way, we've lost staff members in the past few weeks but also have won some new members.
    1 point
  31. It's my expectation that both projects can work independently, while contributing some commits towards each other and pursuing their own paths to excellence. It will take some work to build a workflow that allows pushing and pulling changes from one emulator development to another, but once the process is established, much work will be able to be shared across *athena projects.
    1 point
×
×
  • Create New...