Jump to content

TMP4

Contributor
  • Posts

    1112
  • Joined

  • Last visited

  • Days Won

    20
  • Feedback

    100%

Posts posted by TMP4

  1. On 10/28/2021 at 10:44 PM, ReFresh said:

    I need to add some check in ride.quest?

    Actually yes, look for if pc.is_polymorphed() then syschat("You are polymorphed...") and add

                elseif pc.get_wear(0) >= 11901 and pc.get_wear(0) <= 11904 then
                    syschat("No wedding dress allowed.")
    Spoiler
    		when 71114.use or 71115.use or 71116.use or 71117.use or 71118.use or 71119.use or 71120.use or 71121.use 
    		or 71171.use or 71172.use or 71161.use or 71124.use or 71125.use or 71126.use or 71127.use or 71128.use 
    		or 71137.use or 71138.use or 71139.use or 71140.use or 71141.use or 71142.use 
    		or 71131.use or 71132.use or 71133.use or 71134.use or 71164.use or 71165.use or 71166.use 
    		begin
    			 if pc.is_polymorphed() then
    				syschat("Átváltozva nem használhatod!")
    			elseif pc.get_wear(0) >= 11901 and pc.get_wear(0) <= 11904 then
    				syschat("Nem viselhetsz esküvői ruhát!")
    			elseif false == pc.is_riding() then
    			 	if true == horse.is_summon() then
    					horse.unsummon()
    				end
    				 ride.Ride(item.vnum, 0)
    			 else
    				syschat("Először szállj le a mountról a ctrl+g billentyűvel!")
    			 end
    		end

     

  2. 1 minute ago, Draveniou1 said:

    if remove this d->   Then there will be other problems on the game.core server in some random situations.

    If you want to  it but after that you will soon encounter problems with many players online with game.core
     

    It's better to stay that way ---->  if (d) d->DelayedDisconnect(2); d->ChatPacket(CHAT_TYPE_COMMAND, "quit");

    You may misunderstood me:

    1. correct version:

    			case SCMD_QUIT:
    				if (d)
    					d->DelayedDisconnect(2);
    				break;

    2. correct but redundant version:

    			case SCMD_QUIT:
    				ch->ChatPacket(CHAT_TYPE_COMMAND, "quit");
    				if (d)
    					d->DelayedDisconnect(2);
    				break;

     

  3. 14 minutes ago, Draveniou1 said:

    It's a different fix that may temporarily help many people who have had this problem for many years........  It has also been tested with many online players and works perfectly without any problems
     

     

    The thing it works, and the thing it's right is a totally different story ?

    Please don't be mad ?

    apNQn79_460s.jpg

    At least remove the d->ChatPacket(CHAT_TYPE_COMMAND, "quit"); because that is incorrect and redundant, and is outside of the if as hachiwari said. (If you really want to keep it, place if before the if and change back the d->ChatPacket to ch->ChatPacket)

    • Lmao 3
  4. First of all you can't call it a fix, since you did not fixed the root of the error, just doing the disconnect in another way.
    (Let's say I broke my phone, if I buy a new phone then I did not fix my old phone)

    Secondly the "d->ChatPacket(CHAT_TYPE_COMMAND, "quit");" is redundant and not even correct with that d. It would be d->GetCharacter()->ChatPacket... but since we have ch we can use ch-->ChatPacket as it was. But again, it's redundant so better to remove, especially you forgot the braces ?

    • Good 2
  5. 20 minutes ago, GoldCash said:

    Dont work ?

    Give me your link in DM and I'll have a look.

    Edit: @GoldCash Your patchlist.txt is wrong, you have to remove the D:/Client/ from every line.

    Also when I first opened the link, it said website unavailable for like 5 second then Chrome refreshed. I'm sure there are some protection / pre-filter enabled in your webserver. I never used LiteSpeed so can't tell more.

  6. 6 minutes ago, GoldCash said:

    So i use domain name http://something/patcher and than i can see what in the web but patcher dont work

    Maybe your site have a redirect from http to https or something. In that case, use https link in the patcher.

  7. Small update, mostly convenience.

    2021.10.18: - Changed "localhost" to "127.0.0.1" in Ch3-4 CONFIG files (just to be uniform with Ch1-2).
                - Changed the test server numbers from 11-12 to 21-22 in serverinfo.py to avoid state conflict.
                - Changed folder "horse_event1" to "pony" in mob_proto (20119 & 20219) so they will work better.
                - Commented 2410 from metin2_map_skipia_dungeon_02/regen.txt since that group_group not exists.
                - Fixed metin2_map_skipia_dungeon_01/boss.txt (changed Yonghan with Mighty Ice Witch, 8 hours).
                - Applied two fix regarding the client position & playarea size:
                  1. https://metin2.dev/topic/27934-fixwindows-opening-at-the-wrong-position/
                  2. https://metin2.dev/topic/22740-fix-clients-height-taskbar-collision-after-vsupdate/
                - Added the old Tim extractor because Eternexus can't extract every file. (Eternexus_readme.txt)
    • Love 3
  8. 15 minutes ago, pad7rar said:

    How to install ~ MFC lib ~ if I already have Visual Studio installed, there is a method without re-installing VS19 ? And include it, I have nothing to change because in the interface.rc I don't have such a thing with asfex.h

    Type Visual Studio Installer in your windows's search box, then you can install it from there retrospectively.
    You need the "C++ MFC for latest v142 build tools".

    • Love 1
  9. 43 minutes ago, LikeWeed said:

    But.. why? original code is made by me

    Speaking to Jxxkub excuse that I've seen this modification too somewhere, but ofc this does not mean you just reposted it. 
    This forum have a strict rule about leaks/reposts, and while the rule needed, it evokes this attitude in some people.

    Anyway good code, keep it up?

  10. This is the hidden content, please

    Or Google Drive: 
    This is the hidden content, please

    Empire War Rework + Automation

    I find the original forked_road strange and a mess so I made my own version.
    It is written in lua-only, even the automation. I wanted to keep things simple.

    Quest available in English and Hungarian language.

    For the map, I used metin2_map_sungzi_milgyo.
    It should be there in every client but I made some modification in it
    (ex. no-pvp zones at spawn) so I attached it for you.

    You can set:

    • Minimum level to join
    • Maximum attender / empire
    • Required kill (point) to win
    • Enable-Disable looser reward

    How to automate?
    If you want to automate the Empire War then install events_automation.quest too.
    The Empire War will run every Friday 20:00. (You can change it in the quest).

    What is looser reward?
    The looser empires can stay in the end for the reward (enabled in automation).
    If someone kill other player, first there is a warning, second kill he will get ported out.
    I advice to keep looser reward on, then everyone will be encouraged to participate.

    What is the reward?
    By default it will load a regen (provided).
    It have tanakas, golden frogs and fire goblets.
    Feel free to edit or change it.

    Have fun,
    TMP4

     

    • Metin2 Dev 95
    • kekw 1
    • Dislove 2
    • Sad 1
    • Smile Tear 1
    • Think 1
    • Scream 1
    • Lmao 1
    • Good 26
    • muscle 1
    • Love 7
    • Love 64
  11. 9 minutes ago, Akaii said:

    First of all: Thanks for sharing.

    I downloaded the files and setup the VM exactly as showed in the video.
    The VM's network adapter is in bridge mode.
    Then I added the IP to the root/serverinfo.py and regenerated/replaced it.

    However I cannot connect to the server: "Error while connecting to the server"

    Any ideas where could be the problem? Thanks

    Did you set your IP? I have to ask because lots of people setting the IP what I got in the video, but you have to set your IP what you got from your DHCP server.

  12. Ymir did not program it because they did not needed it, however it's not that hard:

    	def AppendTimerBasedOnWearLastTime(self, metinSlot):
    		if 0 == metinSlot[0]:
    			if item.COSTUME_TYPE_BODY == item.GetItemSubType() or item.COSTUME_TYPE_HAIR == item.GetItemSubType():
    				defaultValue = 0
    				for i in xrange(item.LIMIT_MAX_NUM):
    					(limitType, defaultValue) = item.GetLimit(i)
    					defaultValue += app.GetGlobalTimeStamp()
    					if item.LIMIT_TIMER_BASED_ON_WEAR == limitType:
    						break
    
    				self.AppendMallItemLastTime(defaultValue)
    				
    			else:
    				self.AppendSpace(5)
    				self.AppendTextLine(localeInfo.CANNOT_USE, self.DISABLE_COLOR)
    		else:
    			endTime = app.GetGlobalTimeStamp() + metinSlot[0]
    			self.AppendMallItemLastTime(endTime)	

     

    • Metin2 Dev 1
  13. 21 minutes ago, AdiMit said:

    Sorry, I should have been more precise as to what I was trying to do. What I meant was running the server completely offline (as in when you don't have the access to the Internet).

    It is for that. You don't need Internet at all. You only need a router because it is a VM what needs to get a local IP address.

    If you don't have a router, then you can create a Host-only adapter in Virtualbox where you can turn on it's DHCP server and that will act like a router's DHCP server. Here is a tutorial: link (The host only adapters moved from settings to tools in newer Virtualbox version if you can't find it)

    But again, that only needed when you don't have any router. If you are in a wired connection you 99,99% have one and follow the video.

    • Love 1
  14. I usually use Google with a workaround: When a password reset email sent, an entry will be inserted to a database with the current timestamp and I only let the next email to be sent when the previous timestamps is at least 5 minute behind the current server time ? otherwise I notice the user to wait x time and try again. I only use mail for password reset tho but you can adapt this method to users like checking the ip and the ip's last timestamp.

    With this "trick" you can't really get blocked, especially if you just use it for password reset since the maximum email sent per day is (60/5)*24=288 and that should be enough for larger servers too. I think it only affects the user experience a bit, it’s still just below the limit.

    However I accept that paid solutions are better ?

  15. 46 minutes ago, narcisxb said:

    What VS version do you use to compile it?

    VS19 community.

    I put _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS=1; to the c++ preprocessors in order to use stdext::hash_map in VS19 because dump_proto is old and needs that.

    Quote from hash_map:

    #ifndef _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
    #error <hash_map> is deprecated and will be REMOVED. Please use <unordered_map>. You can define \
    _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS to acknowledge that you have received this warning.
    #endif // _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS

    I'm sure it is removed in VS22. 

    You can try to change every 

    #include <hash_map>

    to 

    #include <unordered_map>

    and every

    stdext::hash_map

    to 

    std::unordered_map

    in dump_proto's source if you are using VS22. Or you can try the boost/unordered_map.hpp too.
    No support for that from me tho.

    • Metin2 Dev 1
×
×
  • 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.