Jump to content

Rumor

Banned
  • Posts

    914
  • Joined

  • Last visited

  • Days Won

    15
  • Feedback

    0%

Everything posted by Rumor

  1.   Yeah I'm aware that it's caused by Enigma. I've actually never heard of molebox . Anyway I was a little confused by what you're saying.. the newest version of Enigma WILL or WON'T have issues with 8?
  2. Are you sure? I don't want to pay for a product when the company refuses to answer multiple emails I've sent them so I haven't purchased it... otherwise I would have :/. And that is the latest cracked version I could find. Because in the final screenshot this is an example of your private client, which will be accessed by the admin only, to make edits to the archives.
  3. I've been using this method since August 1st, 2013 and it's been working great. Most cheats are automatically blocked, just make sure you check sites that post metin2 cheats frequently to make sure there aren't any new ones that actually work. Those ones will need to be manually added. I'll begin by listing the features of using this method: - DLL files can normally be renamed to .mix, .dll, or .flt and inserted into the client before launching and they would inject the dll into the client. With this protection those files are deleted on client launch, there's no way around this. - MSS32.dll is an important file for protecting against cheats, and it's being checked by the client to ensure it's not tampered with. - There are exploits out there (and possibly more to be found or more which aren't yet released publicly) which this protection method can help detour. It hides the revision of the binary from the Details tab in Windows Properties for this reason. If they don't know which version you're using it's a good start already to protect against exploiting the binary. - This will prevent cheats from loading whether the player sets them up to automatically inject them on startup or while the game is already on. - This DOES block m2Pythonloader and Kernel Detective. - This DOES block the new ProDamage hack by lalaker1 with randomized window classes as well as switchbotv3. - I don't know of any cheats that actually work with this setup active... - Works even on lower end computers without a problem. - It restricts debugging the client. Caveats: - About 25% of Windows 8 users can't run the client. I'm not entirely sure what the problem is but it appears to be an issue from Windows 8 (thanks again Microshit). The user is warned upon running the client of a "FATAL ERROR" in which the Index file located in the pack folder is missing. It isn't missing. So far, the only workaround known for this issue is to run the game using Razer Game Booster. I feel that it's worth it because it stops cheaters from playing. It's up to you if you want to lose some of your Windows 8 users. UPDATE 2/11/2014: If you purchase the latest version of the software it WILL work with Windows 8! - Virtual Box: Bug fixed loading virtual dll files under Windows 8 x64 - Virtual Box: Bug fixed running some virtual exe files on Windows 8 - It may be detected by antivirus software as a virus because it's encrypted, it has no way of knowing what the file is really doing or really contains. Currently it's only detected by 2/50 scanners on Virustotal.com and it's not a definitive sign of a virus, only a warning that the virus scanner can't read the file. [Hidden Content] - You can't run the command prompt while the game is open, nor can you have one open when attempting to launch the game. Setup Instructions: Open the file "prototype.py" in the root archive and find this: def RunApp(): musicInfo.LoadLastPlayFieldMusic() app.SetHairColorEnable(constInfo.HAIR_COLOR_ENABLE) app.SetArmorSpecularEnable(constInfo.ARMOR_SPECULAR_ENABLE) app.SetWeaponSpecularEnable(constInfo.WEAPON_SPECULAR_ENABLE) app.SetMouseHandler(mouseModule.mouseController) wndMgr.SetMouseHandler(mouseModule.mouseController) wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight())On a new line enter this: injectionprotection = os.listdir('.') injectionprotection.sort() for Data in injectionprotection: if Data.find('.mix') != -1 or Data.find('.m3d') != -1 or Data.find('.flt') != -1 or Data.find('.asi') != -1: os.remove(Data)Add the following to the imports: import osSave and close the file. Now we'll block the introLogin.py bug allowing users to run client extractors or python cheats on client launch. Open "intrologin.py" from the same archive and find this: self.__LoadLoginInfo("loginInfo.py")Replace the entire line with this, edit the message to your liking: if not os.path.exists('logininfo.py') and not os.path.isfile('logininfo.py'): self.__LoadLoginInfo("loginInfo.py") else: dbg.LogBox('Ah so you want to try to extract the client?n' 'Or maybe you want to run your favorite cheat?n' 'Not gonna happen...n' 'It seems I have already thought of this.n' 'I am ATLEAST one step ahead of you...n' '------------------------------------------------n' 'n' "TRY HARDER BRO") exception.Abort("Unsupported file, please delete it. (TRY HARDER BRO)") # Syserr.txt returnAdd the following to the imports: import osSave and close the file. Now you need Enigma protector. You can purchase it here: [Hidden Content] or download an older cracked version here: [Hidden Content] You will also need a plugin created by my friend Anfidya: [Hidden Content] Place the .dll file in the "Plugins" directory of your installation of The Enigma Protector. Here's the Enigma settings file already ready-to-go minus some minor changes you need to make: [Hidden Content] Now you will need to maintain two versions of your client, one for the public and one private one. Copy your client to another hard drive or directory on your computer. You should have two identical copies of the same game but you're going to do all your work on the private client from now on. You will keep your eix and epk archives in the pack folder of the private client and do your work there. You need to keep a client binary in your private client which isn't encrypted by Enigma so that you can create a new one whenever necessary. When you release a patch you will need to re-pack the binary even if you didn't change anything there or in Enigma. All it takes is a change of any of the archive files for the binary to need a re-encryption by Enigma. This is because the eIndex files are going to be hidden inside the binary. The miles folder can be used to inject cheats too, so we're going to hide that and all it's contents in the binary as well. The binary is protected from debuggers and people can't just unpack it with WinRAR or something to get files out of it. Despite Enigma offering messages displayed before client closing, I don't use them because they allow the client to stay open until the user clicks the OK button. This means they can just sit there with the cheat running and move the popup window. I've included my settings file for Enigma. You need to customize the Settings in the INPUT tab: - Modify the "file to protect" and "output protected file name" using the Browse buttons. - Modify the "Name" - Modify the "Version" (hint: don't put it the same as your binary version) You also have to edit the file name if you aren't going to call your client metin2.bin (note that on some newer binaries it has to begin with "metin2" or it doesn't work. I'm sure there's a way to edit this but it isn't so important. It's alright to show a message before termination, to assist the player with the reason why it won't work. This is only going to check during launch of the application and the file name can't be changed while the application is already running. You should go to "External Files" and delete my MSS32.dll file by clicking the red "X" and add your own MSS32.dll file to make sure it's the correct one. If you skip this step and your MSS32.dll doesn't match mine EXACTLY then the client will fail to run. Now you need to add some custom rules for cheat detection: You can see here I've already setup the miles folder for you. You need to click "pack" so that it's highlighted like in the image then click "Add" then "Add File(s)" and select all your .eix files as well as your Index file from the pack folder. An easy way to do this is set your Windows Explorer to detailed view and organize by File Type then use SHIFT + click to select a beginning and ending file. This next part is mostly preference, and to avoid letting anyone know which version you use for a binary. It adds customization to your client, it's a fancy thing that isn't too necessary but if you want to change this stuff go for it! An example of what that does: Now you just press "Protect". You need to copy your new protected bin to your Public Client and go delete the entire "miles" folder as well as the contents of the folder from your Public Client folder. Also go into the "pack" folder of your Public Client and delete "Index" and ALL of your ".eix" files (sort with detailed view again). In the end you should have a Public Client like this or very similar: Your Private Client should look something like this:
  4. M2 Download Center Download Here ( Internal ) This is useful for deleting an entire folder and all the contents within it, when your client is launched. It doesn't seem to add any issues when launching or leaving the game open nor does it cause problems if the files don't exist. The normal method using python in the Metin2 client would cause the client to not launch properly because it's missing the files it's trying to delete. This is why you need something called shutil. It will automatically delete an entire folder in your client as soon as the game runs. I used this to delete hshield from all my player's clients. First create a file in your root archive called shutil.py with this content: Now go into your prototype.py file and add this underneath all the other imports: import shutil import os Now find this: def RunApp(): musicInfo.LoadLastPlayFieldMusic() app.SetHairColorEnable(constInfo.HAIR_COLOR_ENABLE) app.SetArmorSpecularEnable(constInfo.ARMOR_SPECULAR_ENABLE) app.SetWeaponSpecularEnable(constInfo.WEAPON_SPECULAR_ENABLE) app.SetMouseHandler(mouseModule.mouseController) wndMgr.SetMouseHandler(mouseModule.mouseController) wndMgr.SetScreenSize(systemSetting.GetWidth(), systemSetting.GetHeight()) On another line add this: if os.path.exists('hshield'): shutil.rmtree('hshield') Change 'hshield' to whatever folder you wish to remove from the client. When the client is launched, the entire folder and all the sub-folders and files will be deleted. Like always, pay attention to the spacing in the python files. Use TAB to indent and keep it consistent. Here's a screenshot example:
  5. The hardware and network belongs to i3d.net and I was getting my support and paying my bill to SKDedicated. The guy who owns SKDedicated is now being hired directly at i3d.net.
  6. Yeah lol Thanks for the help
  7. M2 Download Center Download Here ( Internal ) This guide will walk you through each step of installing the necessary daemons for a Metin2 server on FreeBSD. Asking for help setting up Metin2 on the official FreeBSD forums is not permitted, I suggest if you have issues to ask in this forum only. You may not need to install cURL, it depends on whether or not you'll host your website on the same server and use things that require cURL (such as automatic paypal transactions). It's recommended to host your website on a separate web server and not share the IP with anyone then run it through CloudFlare. A guide will be posted soon in these forums on how to run your website through CloudFlare while preventing CloudFlare IP resolvers from functioning. However, if you do run your website on another server I would recommend hosting it in the same datacenter because you'll need to use Remote MYSQL to access your database. - For sake of simplicity I'll be using "ee editor" for this guide. Most new people don't like vi anyway. If you're already familiar with vi, feel free to use that to edit text inside files instead. - To transfer files to and from your server, use WinSCP. - To enter commands into your server, use PuTTy. Please note that when the system asks you for a password in PuTTy you won't see it as you type it on the screen, be precise! - Pressing the TAB key in PuTTy will auto-complete as much as possible in the directory you're in. Downloads Libs: [Hidden Content] 1. Updating Ports portsnap fetch extract portsnap update 2. Installing Python 2.7 cd /usr/ports/lang/python27 make -DBATCH install clean pro tip: Use the "-DBATCH" flag for a default installation of the port. Skip all those annoying prompts during installation. 3. Standard C++ Libraries fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/9.1-RELEASE/lib32.txz tar Jxpvf lib32.txz -C / rm lib32.txz Unrar "Libs.rar" and put the files in the "/usr/lib32" directory. 4. Compat7x Because Metin2 was originally meant to be run on FreeBSD 7, we need this so that it's compatible with FreeBSD 9. cd /usr/ports/misc/compat7x && make -DBATCH install clean pkg_add -r compat7x-amd64 5. Install & Configure MySQL 5.6 server cd /usr/ports/databases/mysql56-server make BUILD_OPTIMIZED=yes BUILD_STATIC=yes make WITH_XCHARSET=all install clean Now we make it start on each startup of the system. ee /etc/rc.conf Add a new line: mysql_enable="YES" Press ESC then save and close the file. service mysql-server start /usr/local/bin/mysqladmin -uroot password 'enterpassword' pro tip: "enterpassword" should be the password you choose, don't use "enterpassword" as your password. A long string of lower case and capital letters and numbers is the safest bet. Don't use words that can be found in a dictionary. Don't use passwords which are the same as other passwords of yours. You may not need to do this, but when I got an OVH server it messed up the installation of mysql (on 9.2). If you get an error about the mysql user account with the step above, just do this: pwd_mkdb -p /etc/master.passwd chown -R mysql /var/db/mysql && chgrp -R mysql /var/db/mysql Then repeat the step. 6. Adding your server files and Metin2 Database Extract your game.tar.gz containing all the Metin2 server files somewhere in your server. This is all you have to do to extract a .tar.gz file: tar -zxvf filename.tar.gz You should have your metin2 database inside of a tarball (.tar.gz file). For structure, it doesn't really matter as long as once you extract your tarball on your server it follows this file hierarchy: Now you should change the group and ownership of some files for your database: service mysql-server stop chown -R mysql /var/db/mysql && chgrp -R mysql /var/db/mysql service mysql-server start Setup an account for you to login to the database via Navicat and an account for your game cores to interact with your database using. For this example I'll use the username "rumor" for my account and "metin2" for the game core's account. Every password in this example will be "password" but please DO NOT use this as your password! If you have a static IP address and wish to restrict access to the database only to your IP, change the "%" sign to your IP. The "%" sign indicates that any IP address is allowed to connect to the database using the specified credentials. mysql -p Now enter the password you set with mysqladmin earlier... and you will see this prompt: mysql> This is where we set the actual permissions for the accounts up. GRANT ALL PRIVILEGES ON *.* TO 'rumor'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'metin2'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; quit pro tip: remember (or write down) this information because you will need it later. Setup your CONFIG files under each channel folder and the "auth" folder. All of these are found inside the Metin2 server files. PLAYER_SQL: localhost metin2 password player COMMON_SQL: localhost metin2 password common LOG_SQL: localhost metin2 password log The conf.txt file looks a little bit different and it's found in the "db" folder of your Metin2 server files. SQL_ACCOUNT = "localhost account metin2 password 0" SQL_PLAYER = "localhost player metin2 password 0" SQL_COMMON = "localhost common metin2 password 0" SQL_HOTBACKUP = "localhost hotbackup metin2 password 0" ~~~~ STOP HERE IF YOU'RE RUNNING YOUR WEB SERVER SOMEWHERE ELSE ~~~~ 7. Setting up web server for website and/or patcher Install nginx: cd /usr/ports/www/nginx make install clean Make sure these are selected with space bar: [X] HTTP_MODULE Enable HTTP module [X] HTTP_ADDITION_MODULE Enable http_addition module [X] HTTP_CACHE_MODULE Enable http_cache module [X] HTTP_GEOIP_MODULE Enable http_geoip module [X] HTTP_GZIP_STATIC_MODULE Enable http_gzip_static module [X] HTTP_IMAGE_FILTER_MODULE Enable http_image_filter module [x] HTTP_PERL_MODULE Enable http_perl module [X] HTTP_REALIP_MODULE Enable http_realip module [X] HTTP_REWRITE_MODULE Enable http_rewrite module [X] HTTP_STATUS_MODULE Enable http_stub_status module Press "Enter" when ready to continue. Install libtool cd /usr/ports/devel/libtool make install clean Install php5 cd /usr/ports/lang/php5 make config Make sure the following is selected with space bar then press "Enter": [X] FPM Build FPM version (experimental) Leave everything else default. then do this: make install clean ~~~~ If you need cURL support then do this, if not then skip this step: cd /usr/ports/lang/php5-extensions make config Make sure that the "CURL Support" is selected then press "Enter". Then do the installation and clean the directory: make -DBATCH install clean ~~~~ Time to configure your php.ini file... cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini Edit /usr/local/etc/php.ini in WinSCP using Notepad++. Firstly, set your "date.timezone" to the appropriate one. Choose from this list: [Hidden Content] Next, if you have something that needs to run large MYSQL queries you may run into some issues. Some website packages also can cause these problems. The issue is with memory usage. For security reasons there are limitations set on how much memory php is allowed to use. I suggest only modifying this IF you have problems loading memory-intensive pages. Just try to raise it a bit until it works, don't raise it to an excessively high number. I had to set mine to "512M" to make my queries work in my patcher. It can be set by just inputting numbers and they will be recognized as bytes, or you could use K, M, or G. memory_limit = 512M Installation of php-mysql5: cd /usr/ports/databases/php5-mysql make -DBATCH install clean If you've gotten this far, congratulations.. you're almost done! You need to create a folder for your website like this: mkdir /usr/local/www/nginx/domain.com Set the owner and permissions: chown www:www /usr/local/www/nginx/domain.com chmod 755 /usr/local/www/nginx/domain.com Customize this file to your needs and upload it to /usr/local/etc/nginx: If you're using cloudflare, uncomment the lines 38-57 by removing the "#". The reason for this is to ensure you get the real user IP in your logs rather than cloudflare's IP. If you want to allow directory listing.. ie: [url=[Hidden Content] to present a visitor with a list of files they can access/download then uncomment lines 63 and 73. You MUST change the domain name to your own! Now you need to enable startup of php-fpm and nginx whenever your server is booted: ee /etc/rc.conf Add these lines: php_fpm_enable="YES" nginx_enable="YES" Start your services: service php-fpm start service nginx start Upload your website files to /usr/local/www/nginx/domain.com
  8. Softlayer: Never had them, but they are well known to be a popular and trustworthy host. They are one of the big ones out there. A little pricey but probably because they offer such a good network and support. Leaseweb: I'd call these mid-range in price due to the hardware that come with them for the price. Never had them but have had several friends who've run Metin2 servers with them. This host is also pretty well known outside of the Metin2 community. From what friends have told me they have excellent support as well and are very fast with it. Worldstream: I'd say never use WorldStream, ever.. Their support in my experience has been quite rude and they charge 40 euros to install PAE which actually turned out to be a very simple task that requires a couple of commands being entered. When I or friends had them they had no DDoS protection, but most hosts don't.. and at the price they offer servers you can't really complain about that. They shut you down the moment they get DMCA complaints, even if they aren't proven. OVH/Kimsufi not based in Canada: This is a French company who may require you to send proof of identification if you live in certain countries (like USA). That's a downside for anyone trying to host a Metin2 server. I've had a French kimsufi server from a reseller in the UK before and it was pretty nice. This was back in 2010. I was paying 60GBP for a 24GB Xeon with a 1Gbps connection and two 1TB hard drives. Uptime was excellent, never had an issue. SKDedicated: This is the host I currently use. I'd say the response time to tickets is excellent and very polite. Despite having an unmanged server I'm never told "this is an unmanged server, we don't provide help." They always try their best to solve my problems and even check logs on their end to see what the result of them are. I got a deal from WebHostingTalk for my server. Xeon 3210, 8GB RAM, 2x 250GB HDD, 1Gbps dedicated port, 10TB traffic. It's 50 eur/month but an extra 2 eur/month because I pay with PayPal. Network seems to be perfectly reliable as well. The owner just recently got hired at the datacenter where he was renting rackspace from (i3d). All clients who had SKDedicated will be transferred to the i3d control panel and will still deal directly with the owner of SKDedicated for support requests. Voxility: This is a quite shady host, but that can work in a Metin2 server admin's favor sometimes.. and it has proven to work for Metin2 server admins recently. When they are sent DMCA complaints they don't budge. They do nothing about your server. They don't care if you run a Metin2 server or not and host plenty of them. Now the problem with Voxility (aside from outrageous setup fees and monthly fees) is that the support is rude, slow, and likes to ignore the customer. They also have been busted lying on multiple occasions. Xertonia: This host was owned by Paul aka Belius of Metin2United. He resold servers from Voxility using virtualization so that he could tailor servers towards people wanting to run Metin2 for a cheaper price than the full dedicated servers that Voxility offered. Paul is a completely untrustworthy person who did alot of bad things while having this company, not limited to using the servers to initiate DDoS attacks and stealing money from customers. He randomly shut it down and blamed Voxility for his actions. Even though the host is gone I wanted to review it so people know not to trust Paul if he makes another host. Tip: if a host comes out which is linked to "gamezunited", don't bother.. it's linked to Paul and therefore not worth it at all. WeServIt: This host tells you alot of things to get you to rent then doesn't actually do them. They claim that they won't shut you down no matter what, if someone complains about copyrights but the truth is that once the person sends a DMCA complaint it get's denied and all the person has to do is find local Netherlands copyright laws and this host will buckle at the knees easily. On the plus side they returned money after being told they explicitly lied about what they would do in this situation a few days earlier. This is another host that doesn't require the issuer of the DMCA request to actually prove they have the rights to send one.
  9. first of all that 4 inventory slots looks cool. second, I think the weapon costumes sounds interesting only for silly costumes but not to replace a weapon with another weapon skin. New school or old school, doesn't matter when it comes to costumes I think.
  10. The official language of the board is english and foreign language text must be accompanied by an english translation. [Hidden Content]
  11. Added Paint.NET, 3DS Max 7 with exporters and Photoshop DDS plugin
  12. [Hidden Content] Rain file release
  13. M2 Download Center Download Here ( Internal ) VHD Password Lost
  14. Oh okay I didn't know that Sent from my Nexus 5 using Tapatalk
  15. But why have it in multiple quests when you can have it all in one central place? That's a good idea with the char_log function.
  16. I didn't even know that 5.6 was out I guess Maybe I'll upgrade
  17. M2 Download Center Download Here ( Internal ) 0 second bonus change 95 stat points 100% Chance to add bonuses 1-4 100% Chance to get M1 @ 17 Shogun's backdoor fix Change equipment while running Disable dropping gold on the ground GM Rights not bound to IP Address Max level 250 More than 1 mount bonus at a time Damage fix for mount vnums: 20110-20206 Remove the need for Magic Mirrors No sales tax when selling to an NPC Fix Panda mount damage Make pet bonuses work everywhere Timebomb fix Remove 3x price multiplier for a player traveling to another kingdom's NPC Higher priv_empire rates possible Fix core crash from guild war command exploit Fix negative HP bug when teleporting with more than 32,000 HP Level 250 max Invisibility Bug Fix number_ex Bug Fix
  18. true, but with the check you're able to inform the player the reason why they can't open the clam instead of them thinking they are disconnected and haven't been dropped as a client yet.
  19. This thread will be updated from time to time with useful things for server administrators. - WinSCP, for transfer of files from your computer to a remote server. [Hidden Content] - PuTTy for SSH access to your server. [Hidden Content] - Navicat Premium for database management. [Hidden Content] - Notepad++ for code edits. [Hidden Content] - HxD for byte-patching binaries manually. [Hidden Content] - FileArchiver r3869 by Tim for unpacking and packing client archives using panama encryption. [Hidden Content] - EterNexus File Archiver for unpacking and packing client archives. [Hidden Content] - BlackYuko's DIF Patcher for byte-patching binaries. [Hidden Content] - dump_proto.exe for converting 2013 database proto txt files to client-side proto files. [Hidden Content] - Paint.NET for image editing. [Hidden Content] - Photoshop DDS plugin [Hidden Content] - VirtualBox [Hidden Content]
  20. M2 Download Center Download Here ( Internal )
  21. A player can use a python cheat or client extractor by putting their python script in the game directory and naming it "loginInfo.py". This will detour the player from doing so. 1. Unpack your root archive. 2. Edit the file "intrologin.py". 3. Find this line: self.__LoadLoginInfo("loginInfo.py")4. Replace the entire line with this: if not os.path.exists('logininfo.py') and not os.path.isfile('logininfo.py'): self.__LoadLoginInfo("loginInfo.py") else: dbg.LogBox('Ah so you want to try to extract the client?n' 'Or maybe you want to run your favorite cheat?n' 'Not gonna happen...n' 'It seems I have already thought of this.n' 'I am ATLEAST one step ahead of you...n' '------------------------------------------------n' 'n' "TRY HARDER BRO") exception.Abort("Unsupported file, please delete it. (TRY HARDER BRO)") # Syserr.txt returnYou can of-course change the message to whatever you like. "/n" denotes a line break. Here's what it looks like when someone tries to use this bug after you've added the protection:
  22. If they're using IE they don't deserve to see it
  23. M2 Download Center Download Here ( Internal )
  24. M2 Download Center Download Here ( Internal ) This is confirmed working on the 2089 core, but no others. It probably won't work with other cores. The first thing you need to do is hex edit your uncompressed game core (I use HxD or BlackYuko's patcher, found here: [Hidden Content]): 0014E762: 89 90 0014E763: C3 90 0014E764: 74 75 0014E765: 07 61 0014E766: 8B 90 0014E767: 50 90 0014E768: 24 90 0014E769: 85 90 0014E76A: D2 90 0014E76B: 74 90 0014E76C: 33 90 0014E7C7: 24 0F 0014E7C8: 04 B6 0014E7C9: E8 80 0014E7CA: 82 0A 0014E7CB: F5 05 0014E7CC: 17 00 00312349: 72 6C 0031234B: 6D 76 0031234C: 61 65 0031234D: 69 6C 0031234E: 6E 00 Next, add a new function to "quest_functions" in the "quest" folder: npc.get_level The quest: quest kill_pvp90 begin state start begin when login with pc.level >= 90 begin set_state(kill_pvp90) end end state kill_pvp90 begin when letter begin send_letter("Kill Players from Another Kingdom") end when button or info begin say("This is your test of strength!") say("You need to kill 1000 players from") say("another kingdom...") say(locale.ADMIN_COLOR.."The players you kill must be lvl 90-99.") wait() say("You will be rewarded even better") say("than the last PvP quest!") say_reward("Kill 1000 players from another kingdom!") say("") pc.setqf("state", 1000) q.set_counter("Kill More Players", 1000) set_state (kill) end end state kill begin when letter begin send_letter("Kill Players") end when button or info begin say_title("Kills:") say_reward( "You have ".." "..pc.getqf("state").." of 1000 kills remaining.") say("") end when kill begin if npc.is_pc() and npc.empire != pc.empire and npc.get_level()>= 90 and npc.get_level()<= 99 then local count = pc.getqf("state") - 1 if count <= 1000 then pc.setqf("state", count) q.set_counter("Kill More Players", -count) end if count == 0 then say_title("You've done it!") say("You have killed 1000 players!") say("As a reward you receive:") say_reward("1,000,000,000 Gold") say_reward("15 White Pearls") say_reward("15 Blue Pearls") say_reward("15 Blood Pearls") say_reward("10% Demi-Human") say("") say("Congratulations!") pc.change_money(1000000000) pc.give_item2(27992, 15) pc.give_item2(27993, 15) pc.give_item2(27994, 15) affect.add_collect(apply.ATTBONUS_HUMAN,10,60*60*24*365*60)--60years notice_all("".. pc.get_name() .." Has completed the lvl 90 PvP Quest!!") notice_all("They have killed 1000 players from another kingdom!") clear_letter() set_state(__COMPLETE__) end end end end state __COMPLETE__ begin end end You can specify which levels the enemy player must be for the player to receive credit for the kill. Kills are only counted if the killed player is from another kingdom. The kill count doesn't reset when the player logs out, using this quest.
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.