Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/08/14 in all areas

  1. Here is my tutorial about remote development with netbeans. I'll make more tutorials in the future if you want that just give me a good theme to talk about. Watch in 1440p
    8 points
  2. i think compiling from ports takes ages... its faster to install it via package manager: pkg_add -r xorg pkg_add -r kde4 thanks anyway
    4 points
  3. [Hidden Content] All Official Packs with official archiver to creat your own key and packs
    3 points
  4. M2 Download Center Download Here ( Internal ) Hi, As requested by some users i have you a VM with FreeBSD 9.2 32bit, novaline source and pre installed Ports so you can compile the game. It was like 10 minutes of work to enter the commands so no thanks needed. Link: HerpDerp Login: root Pw: dev To compile the game: cd /usr/src/novaline/Srcs/Server/game/src gmake clean gmake -j20 If there are any Problems or questsions you can add me in Skype(l337-5p34k) or Message me here i'll always give you support. Kind regards TheGame €: There are no Serverfiles on this VM because i dont have test serverfiles. If someone have Serverfiles for me i'll implement them and upload an updated version of this VM. €: Updated Link: Thanks to Da'Real Pain
    2 points
  5. M2 Download Center Download Here ( Internal ) Hope music isnt too loud
    2 points
  6. Hello today i want show you, how to install Gnome2 Desktop system on FreeBSD. This easy way to control your Metin2 server, you can develop your c++ apps, metin2 source with Gui Based Compiler, you can install apps, you can surf on internet, you can download torrent, you can control your web,mail servers etc.. I like it alot this system. You may also like. Gnome Installation Docs here, if you want Gnome2 you can look here : I prefer gnome cuz, Kde plasma use much ram (if you have effects).. Maybe you want connect to desktop, you cant with SSH How to connect Desktop on BSD Machine? pkg_add -r -v vnc or pkg_add -r -v tightvnc when installation done, go /root/.vnc/ and edit "xstartup" file then write this : #!/bin/sh xrdb $HOME/.Xresources xsetroot -solid grey xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & /usr/local/bin/gnome-session & #if you dont want start Gnome on VNC you can edit /usr/local/bin/gnome-session & to startkde or kde full path.. Now you can start vncserver! mehti@www:~ # vncserver -depth 24 -geometry 2560x1600 #2560x1600 is res of session all done, now you can connect to your server desktop! -------------------------------------------------------------------------------------------------------------------------------------------- #if you dont have vnc viewer you can download here : Installer for Windows (64-bit) (2,367,488 bytes) Installer for Windows (32-bit) (2,105,344 bytes) Download TightVNC Java Viewer (Version 2.7.2) TightVNC Java Viewer works on any system where Java is supported. It requires Java SE version 1.6 or later. TightVNC Java Viewer JAR in a ZIP archive (720,395 bytes) -- Screenshot
    2 points
  7. Hello and welcome to the first guide for beginners (and even those who have more experience but still need some small hints and ideas). This series of guides will be about "how can I edit the source code?". While this thread is nothing you'd visit when you're starting to edit the source code for your first time, It'll help you greatly when you want to customize your source code or - as I did in vanilla - make more options for people using your core. If there's further interesting, I'll create more guides like these and even some who help people with the basic editing of the source code. At first we need our source code. It'd be working of course! All we need to edit are two files: config.h and config.cpp In this guide you'll learn how to declare a extern variable which will depend on your CONFIG-setting and can be used everywhere. At first we need to think about a new variable. Let's just start with something easy. We'll create a new gold-limit for players! That'll depend on your CONFIG so if you don't want to have such high gold limits, you can tune it down as you want. So. We've got an idea now what we want to do. Let's start with the real guide. declaring our new variable so we can use it as a new limit! You simply need to open config.cpp and there you'll find a lot of code. As you can see there are many variables declared: ...and so on. At this point we can figure out how we declare our variable: We want to have it globally so the whole script can use it. That's why we declare our variable here at this point. Since it's in no function it'll be used as a global variable. Let's think.. What should we write? For this step we need to know the data types in c++. I won't go in that deep so you'll have to look on your own since it's really easy to find what datatypes can store which sizes. For your gold limit we'll use unsigned long long. long long can store very huge numbers while unsigned lets you store even higher numbers AND since no one shouldn't be able to have - gold it's the best to keep it over 0. So our line should look like this: long long yang_max; Now we should declare a standard value for our yang maximum. Why? Because if we don't edit the variable by using CONFIG (e. g. if you just don't want to set your yang limit by your CONFIG file) it'd turn out to be 0 (so: If we don't declare a specific number for long long the compile will use 0). So we set a new limit: long long yang_max: 2000000000; Next we'll edit the config.h file. There we just scroll down and add our new variable. We can just put it where the other variables (for example extern bool bXTrapEnabled;) are. But this time we won't give it a standard value and we'll add something at the beginning: extern long long yang_max; The extern will allow other scripts to use this variable. At this point we'd simply use the variable anywhere! editing the variable by using the CONFIG-file But we want to let people edit the variable by using the CONFIG-file. So back to config.cpp There we scroll down and wait! What do we have here? There are other CONFIG-options listed (e. g. TOKEN("max_level") and TOKEN("pk_protect_level"), if you don't find them just search for one of them). So maybe we'd just simply add one of these procedures for our variable, hm? Okay, let's try it. We copy the whole TOKEN-statement from "max_level" and paste it just under it. This should be there twice now. Let's edit this so we can use it for our own variable. At first we change the TOKEN. It's the thing the gamefile will look for when it processes your CONFIG-file. We change it to: TOKEN("max_yang") or whatever you want so the gamefile will fire up the following code when it reads yang_max in your CONFIG-file (now matter of lower- or uppercases). Next we change the variable name. In this case they're putting the value you specify in your CONFIG-file into the variable "gPlayerMaxLevel". But we don't want this! We want it to be in yang_max, our variable! So change it everywhere. It'd look now like this: So now let's analyze the rest of the code so we can finish our work. In the first line (str_to_number(yang_max, value_string) the value you specify in your CONFIG-file will be written into your variable "yang_max". The second code line uses the MINMAX-function. This trims the value up or down to a specified value. So in this case, "yang_max" can't be lower than 1 (if it is, it'd be set to 1) and not higher than PLAYER_MAX_LEVEL_CONST which is a global constant. Since we don't want to have our limits like this we need to adjust at least the MAX-value. Let's change it! So in this scenario the yang_limit could only be a number between 1 and 9.999.999.999 I set ULL after our huge number so the compiler won't generate a warning and read it properly as unsigned long long. You can play with these numbers but make sure you don't go higher than your variable can store, so pay attention to your data type!!! Now we need to edit the last line. You may look up for the fprintf-command and you'll find out about the mysterious %d. But I'll tell it to you: %d represents the value of an integer variable you give to the function at a later time (in this case yang_max will be used). But wait! We don't just use a normal integer variable. We have unsigned long long (or to be exactly: unsigned long long int). So we need to adjust it: fprintf(stderr, "PLAYER_MAX_LEVEL: %ulldn", yang_max); %ulld stands for "unsigned long long digit". If we don't adjust this statement, the core will immediately crash when accessing this instruction. So be careful and pay attention to the warnings you get! Ad last, PLAYER_MAX_LEVEL isn't an appropriate name. fprintf prints out a message so the user can read that his CONFIG-option will be used properly. You can change it to YANG_MAX. Our command will now look like this: fprintf(stderr, "YANG_MAX: %ulldn", yang_max); And now we're finished with our config.cpp using our variable in other scripts Welcome to the last part of this guide. It's much shorter than the other parts, so you may be happy now! We're almost done. At this point we need to open the source-code we want to change. In this example we just want to use it in another source file, let's say we use it in char_battle.cpp. You can - of course - use your variable in every file, but in this example I'll just add it there. So let's open char_battle.cpp At first we need to make sure our config.h (that's where we defined our variable to be extern, you remember?) is included in this files so we can use our variable. Have a look at the first lines, there are many #include-statements. We'll look for our config.h and here we got it: In line 3. If it's not there, you need to add it! Just add the line at the end of the #include-section: #include "config.h" Next we can jump to the end of the include-section. At this point we simply tell the script to use our extern variable globally in this file (you can use the following statement only in the functions you'll use your variable too, but in this example I'll just make it global so you can use the variable everywhere in the script). So we simply add the following line under the #include-section: extern long long yang_max; Since it's extern it'll look for externally declared variables and there it is: In our config.h which uses the variable modified in config.cpp! Now we can simply use it everywhere. We can replace limitations with our new variable or even use it in another way. Try to experiment with it. I hope you enjoy the first part of the guide-series. If you want me to keep up with this, just leave a comment below. Oh, and if you have any questions, feel free to ask.
    2 points
  8. M2 Download Center Download Here ( Internal ) here is the the official locale ymir.. its not the latest but it can help [Hidden Content]
    2 points
  9. M2 Download Center Download Here ( Internal )
    1 point
  10. M2 Download Center Download Here ( Block Drop Hack | Binary Check Name ) Download Here ( Quest Functions - Get IP | Get Version | Disconnect | Delayed DC ) Hi everyone, It's finally time to open a topic for the small tutorials, it's better than flooding the board with one sentence topics. 1. Binary name check: Sure, it's possible to do it on client-side, but if we can do it on server-side, theres no reason to do it on client-side. 1. Search for this function in game/input.cpp: void CInputProcessor::Version(LPCHARACTER ch, const char* c_pData) 2. Replace the entire function with this: if (!ch) { return; } TPacketCGClientVersion * p = (TPacketCGClientVersion *) c_pData; // If the file name is not metin2client.exe and the GM level is not equal with GM_IMPLEMENTOR kick the player if (strcmp(p->filename, "metin2client.exe") && ch->GetGMLevel() != GM_IMPLEMENTOR) { // immediately close the connection with the player sys_err("%s[%d] has been disconnected: %s", ch->GetName(), ch->GetPlayerID(), p->filename); ch->GetDesc()->SetPhase(PHASE_CLOSE); return; } sys_log(0, "VERSION: %s %s %s", ch->GetName(), p->timestamp, p->filename); ch->GetDesc()->SetClientVersion(p->timestamp); 2. Block the drop hacks: This issue is surely known by everybody, the server gets overloaded when dropping too many items in short time. 1. Open game/char_item.cpp and search for this: if (pkItemToDrop->AddToGround(GetMapIndex(), pxPos)) 2. Add this under that: // Clear the variable, it looks the player does not dropped any item in the past second. if (thecore_pulse() > LastDropTime + 25) CountDrops = 0; // It looks the player dropped min. 4 items in the past 1 second if (thecore_pulse() < LastDropTime + 25 && CountDrops >= 4) { // Set it to 0 CountDrops = 0; sys_err("%s[%d] has been disconnected because of drophack using", GetName(), GetPlayerID()); // Disconnect the player GetDesc()->SetPhase(PHASE_CLOSE); return false; } 3. Search for this still in game/char_item.cpp: LogManager::instance().ItemLog(this, pkItemToDrop, "DROP", szHint); 4. Add this under that: LastDropTime = thecore_pulse(); CountDrops++; 5. Open game/char.h and add these: int LastDropTime; int CountDrops; 6. Open game/char.cpp and search for this: void CHARACTER::Initialize() 7. Add these to the function: CountDrops = 0; LastDropTime = 0;
    1 point
  11. Since a new Ymir pack came out and there is no appropiate forum for this I open this thread so we can post the newest releases from our dear Ymir.
    1 point
  12. Hello Metin2dev user, todqsay i´m want to show you how to install a Desktop on you Freebsd maschine, with KDE-Desktop, First you must be install XORG to run the Desktop, Put in you maschine: cd /usr/ports/x11/xorg && make install clean This Proces can have a time from 1 hour up to 4 Hour´s... When it finish you must install KDE Software with this code: cd /usr/ports/x11/kde4 && make install clean This Proces can have a time from 1 hour up to 4 hour´s. When that Proces is finished you must edit you config with dies command: /etc/rc.conf you add new lines with this format: hald_enable="YES" dbus_enable="YES" local_startup="${local_startup} /usr/local/kde4/etc/rc.d" kdm4_enable="YES" When that is gfinished make a reboot and you desktop is finished creat
    1 point
  13. Hi, I know now its easy to "fix" the switchbot in the binary, but maybe this short code snippet will be helpful for some servers. Functions: You can specify the range of the checking (Just check if the user change the bonus within every 1 sec or within every 5 sec) You can check if the user change the bonuses always in the same time or if you want to be more specify you can use +1/-1 range Open game/item_attribute.cpp and search for the ChangeAttribute event. Add this code to the begin of the event: LPCHARACTER ch = GetOwner(); SwitchTimeNow = thecore_pulse(); if (SwitchTimeNow < (LastSwitchTime + CHECK_SWITCH_TIME * 25)) { /* if (-1 <= SwitchTimeNow - LastSwitchTime - PassedSwitchTime && SwitchTimeNow - LastSwitchTime - PassedSwitchTime <= 1) - Uncomment if you want to be more specify, use -1/+1 range - */ if (SwitchTimeNow - LastSwitchTime == PassedSwitchTime) { sys_log(0, "%s[%d] probably using a switchbot", ch->GetName(), ch->GetAID()); /* ch->Disconnect("ChangeAttribute"); - Uncomment if you want to kick the player - */ } else { PassedSwitchTime = SwitchTimeNow - LastSwitchTime; } } And add this to the end of the event: LastSwitchTime = thecore_pulse(); Open game/item.h and add these: int PassedSwitchTime; int LastSwitchTime; int SwitchTimeNow; Open game/length.h and add this: CHECK_SWITCH_TIME = 5, // Now the function will be active if the user changing the bonuses within 5 seconds Tip, the thecore_pulse() function is not giving back a time, if you want to check one second then you have to multiply the number with 25. So: 5 seconds: 5*25 = 125 5 minutes: 5*60*25 = 7500 If you have any question or suggestion, please just reply to this topic. Kind Regards, Sanchez
    1 point
  14. 1 point
  15. And ? I write in end, if you read you can see.. Yes,
    1 point
  16. Hi everyone, I think many people, hope someone from this board too watched the 86th Academy Awards tonight (Europe timezone). I really enjoyed it and I'm happy for the winners, but I have an opinion too...Leonardo DiCaprio still not won anything, but the Gravity won many awards which I think is not really fair, or maybe is it? What's your opinion about the Oscars? Here are the winners: Best Picture - 12 Years a Slave Directing - Gravity, Alfonso Cuarón Actor in a Leading Role - Matthew McConaughey, Dallas Buyers Club Actress in a Leading Role - Cate Blanchett, Blue Jasmine Actor in a Supporting Role - Jared Leto, Dallas Buyers Club Actress in a Supporting Role - Lupita Nyong'o, 12 Years a Slave Animated Feature Film - Frozen Original Screenplay - Her, Spike Jonze Adapted Screenplay - 12 Years a Slave, John Ridley Documentary Feature - 20 Feet from Stardom Foreign Language Film - The Great Beauty, Italy Original Score - Gravity, Steven Price Original Song - "Let it Go" from Frozen movie Cinematography - Gravity Costume Design - The Great Gatsby Visual Effects - Gravity Makeup and Hairstyling - Dallas Buyers Club Production Design - The Great Gatsby Best Film Editing - Gravity Best Animated Short Film - Mr. Hublot Best Live-Action Short - Helium Best Documentary Short Subject - The Lady in Number 6: Music Saved My Life Best Sound Editing - Gravity Best Sound Mixing - Gravity Most Awards Winner: Directing - Gravity Original Score - Gravity Cinematography - Gravity Visual Effects - Gravity Best Film Editing - Gravity Best Sound Editing - Gravity Best Sound Mixing - Gravity
    1 point
  17. Yes this easy and correct way. My Gnome2 installation thread here : [Hidden Content]
    1 point
  18. Fu**, i waited like 5 seconds to say the number because i was not 100% sure >.< song:
    1 point
  19. Ingame screens would be nice
    1 point
  20. Hey guys May some of you allready know, that i have a own youtube channel on which i post some tutorials and speedarts. Now i want to present you some helpful videos related to Metin2- and MMO-Design. Sadly all my videos are completely in german, but i got a permission to post it here anyway :3 I hope some of you can need them Photoshop beginner tutorial: Diamant / Dekoelement mit Photoshop erstellen: Steineffekt mit Photoshop erstellen (Pandora2 like): Grunge-Navigation erstellen: Glaskugel mit Photoshop erstellen: Grunge Logo mit Photoshop erstellen:
    1 point
  21. I would recommend you not to change the version in the new sln but take the sln.old file. just rename it to an .sln and use it
    1 point
×
×
  • 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.