Jump to content
Vanilla

[ Dead Download Link ] Vanilla Core 2.4.1 [ We Need You ]

Recommended Posts

Hello metin2dev,
 
Vanilla project is a project where I'm going to modify the source code just to enhance the capabilities of the gamecore, add small new stuff, bugfixing and making it more comfortable to use.
Some of the goals are more performance and lesser dependencies on dif-files.

This project reached a level where it's easy to use and offers tons of new features. Many bugs and exploits are fixed. Additionally, this gamefile is the only one released for everyone that's having so much features and still allows you to customize them to your needs! There are a lot of CONFIG-options where you can enable/disable systems and even tune them to your needs. You won't need difs anymore, you can just configure the gamefile as you want!

It's the only gamefile released that's compiled with newer libraries and gcc 4.9.1 with even more optimization to enhance the speed and lower the file size of the gamefile. Also this game has the package-system disabled by default and lets you run the dbcache from mysql tables by default instead of txt-files! That allows you to easily upgrade your current gamefile without the need to create new directories or convert your proto's to txt! You just have to download the package I provided, extract it and to read the install instructions! I promise you there isn't much to read! ;)
 
Since the source code is written by YMIR and I respect their work I won't release the source code or give any peeks into it.
 

current version: 2.4.1

Developed version: 2.5

Download: See second post!

 

*FEATURE LIST*

+ removed the license functions so the server won't connect to a license server nor check if your server is valid
+ removed the time limitation so it won't even check the time limit. This crash issue is completely fixed.
+ merged all the exp tables to the "exp_table_common" which will be used by ANY locale. You can change the needed exp for 200 levels there.
+ Max_level can be raised in the CONFIG file to a maximum of 255.
+ status points will be given at any level. It depends now on Max_level so if you set max_level to 120 you'll get status points until level 120!
+ fixed vampirism effects so you won't loose hp when you make an overkill (suras may embrace this change)
+ exp bonus now works comulutative instead of just making a chance to get double exp. If you have 20% exp bonus in your items you'll get 20% more exp at any time.
+ Rewrote the version check. You can now set your server version in your CONFIG-file and let it check with the client version. If serverversion != clientversion the server will print a message and kick the player out
+ Raised the gold limit up to 999.999.999.999
+ membuf-errors fixed! Now you have a optimized buffer length so it won't consume much RAM but still have enough to not kick players out.
+ you can now give priv_empire (or other priv's) up to 2000% at any time.
+ a lot of new quest functions, when triggers and CONFIG-options
+ more stability and performance especially since it's compiled with a newer gcc version
+ Optimization flags and linker optimization enabled
+ ip's beginning with 5. and 25. are now allowed by the internal ip-check
+ Items can now be sold for 0 gold
+ 6/7 bonus are now working
+ name-change works with every locale
+ gold overflow: Now resets the gold to the maximum value to fight against gold overflow
+ horse-table has new entries for up to level 51. Raising the level extends the horse-stats.
+ New error handling for bonus overflow. Now the bonus will be set to the maximum generating a warning in your syserr
+ player movement speed will be observerd by the server now and set down to the maximum value if it's too high.
+ Skills can now apply new bonuses! You can e. g. raise your int-attribute
+ Dbcache can now start without txt-files
+ If you're warped into a non-existing map or non-existing coordinates your coordinates will be resetted to map1 of your village; You won't need unstuckers anymore
+ adminpage_ip set to localhost by default so it'll only listen to itself to prevent attackings from API tool. Additionally it's disabled by default and you can enable it with a CONFIG-option. Say good bye to the API tool!
+ Tons of bug fixes even YMIR had!
+ Completely rebuild of the source with gcc4.9, cryptopp 5.6.2 and boost 1.55; new optimizations flags and C++11 are enabled to make the core much more faster and more stable!
+ Advanced spam protection installed!
+ Unknown packet headers will no longer lead to a disconnect though they'll get dropped
+ Second binary compiled with 4 inventory pages!
+ Added the new skill flags so they can use FIRE, ICE, ELEC and DARK
+ Anti-Exp in the game source
+ reload q corrected. Note! Still not recommended. But if it's crashing, it'll now notice you.

*Gameplay changes*

+ HP/MP overflow fixed
+ yang limit raised to unsigned long long int!
+ Fixed a huge load of format errors that'd actually crash the core!
+ Speedhack limit fixed so you won't get teleported back when riding
+ item.remove() won't remove stacks anymore! It'll just reduce the amount of the stack by 1. It there's only one left, the item will be removed.
+ Bypass to createa guild under level 40 fixed!
+ Guild wars won't crash the core anymore!
+ immune bug fixed (completely!!!)
+ Anti-Overflow mechanism prevents people from receiving too much gold
+ prisma glass system enabled and fixed
+ 6/7 bonuses work
+ polymorph bug fixed
+ invisibility bug fixed
+ empire exploit fixed
+ belt system and dragon soul system enabled
+ level size raised up to a normal int
+ You can put items for 0 gold in a shop
+ Exp can go higher than long int. It's now unsigned long long int (which makes higher exp requirements possible)

 
*New CONFIG-options*

MAX_LEVEL_STATUS: unsigned int
Forces a maximum level. If you level up higher than this, you'll receive no status points anymore.

MAX_STATUS: unsigned int
Sets a maximum of distributed status points. If you e. g. set it to 20, you can only raise your stat's by 20 each status.

SERVER_CHECK: 1/0
Checks if the client version and the server version are the same. If not, the server will send a message to the client and kick him out after a few seconds.

SERVER_VERSION: unsigned int
There you can set the version of your server for the SERVER_CHECK.

MAX_HT: unsigned int
It's the same option than MAX_STATUS but only for the con-attribute.

MAX_IQ: unsigned int
It's the same option than MAX_STATUS but only for the int-attribute.

MAX_ST: unsigned int
It's the same option than MAX_STATUS but only for the str-attribute.

MAX_DX: unsigned int
It's the same option than MAX_STATUS but only for the dex-attribute.

ATTR_ALWAYS_ADD: 1/0
If enabled you'll get 100% chance to add new attributes to you equipment.

ATTR_ALWAYS_5_ADD: 1/0
If enabled you'll get 100% chance to add new attributes to you equipment. Counts only for 5th Bonus (blessing marble).

ATTR_CHANGE_LIMIT: int
You can set a limit time to change your attributes again. It's changed to seconds (set it to 1 to let the users switch only once per second their attributes).

GUILD_MAX_LEVEL: int
Sets the maximum guild level. You can raise it up to 50 since the exp-table is extended to handle up to 50.

ITEM_OWNERSHIP_TIME: int
If you drop an item, this option sets how long the item will be flagged as yours.

MIN_ADDON_FKS: int
Sets the minimum ability bonus dmg you can have.

MAX_ADDON_FKS: int
Sets the maximum ability bonus dmg you can have.

MIN_ADDON_DSS: int
Sets the minimum normal hit bonus dmg you can have.

MIN_ADDON_DSS: int
Sets the maximum normal hit bonus dmg you can have.

SKILLBOOK_DELAY: int
Sets the time limit for reading a book (e. g. if you read skill books you'll have to wait x seconds until you can read the same skill book again).

SKILLBOOK_NEED_EXP: int
Sets the exp you need for reading a book.

SKILLBOOK_ALWAYS_BOOK: 1/0
Sets if every book will be handled as you'd have used a skillbook chance amplifier.

GOLD_DROP_TIME_INTERVAL: int
Sets how long you have to wait until you can drop gold again.

SEQUENCE_CHECK: 1/0
Enables a check if the sequence table is the same than the client's one.

SKILLBOOK_STEP_LEVELING: 1/0
Enables the need of more books for raising a skill (e. g. you need 2 books from m2 to m3).

RAISE_EMPIRE_PRICES: 1/0
Enables the raise of prices if you buy items in another empire.

HORSE_MAX_LEVEL: int
Sets the maximum level of your horse (you still need to write quests or something like that to allow players to achieve the higher horse-levels).

MARRIAGE_MAX_PERCENT: int
Sets the maximum allowed percent of love points. Warning! If love points > 100 it'd lead into bugs with breaking the marriage.

PC_MAX_MOVEMENT_SPEED: int
Sets the maximum movement speed for players.

PC_MAX_ATTACK_SPEED: int
Sets the maximum attack speed for players.

MOB_MAX_MOVEMENT_SPEED: int
Sets the maximum movement speed for mobs.

MOB_MAX_ATTACK_SPEED: int
Sets the maximum attack speed for mobs.

TAXES: int
From 0 to 100. Sets the % how much taxes you have to pay while shopping.

DYE_LEVEL: int
Sets how many levels you have to get after you can change your hair color again.

YANG_MAX: long long
Sets the maximum gold you can carry. You can change it up to 999.999.999.999 gold.

package_enable: 0/1
1 = enabled. Disabled by default. Enable to use the package-feature.

log_level: 0/1/2
Sets the logging level. 0 means to logs will be entered in your database.
1 means that the most important tables (hack-logs for example) will be used
2 means that all logging tables will be used

new_test_server: 0/1
Protects your test-server so the gamecore will check if accounts are written into gmlist before granting them implementor-privileges.

new_gm_host_check: 1/0
Checks the gmhost and gmlist for the right ip before granting privileges. Disabled by default.

adminpage_enable: 1/0
Enables the adminpage-features. Disabled by default (say bye bye to API tools)

adminpage_no_localhost: 1/0
Disables the security feature which inserts localhost into your adminpage_ip so it'll only listen to localhost.

item_floor_time: int
Set the time how long a dropped item will be lying on the ground (by monsters)

max_rank_points: long int
Set the maximum rank points

movement_speed: int
Set the initial movement speed for players.

belt_all_allow_items: 0/1
Allow Players to store every item in their belt inventory

attr_rare_enable: 0/1
Allow the using of rare attributes (6th and 7th attributes). Default: ON.

GOLD_DROP_TIME: int
Sets the time how long dropped gold will lay on the ground until it's purged.

ITEM_DROP_TIME: int
Sets how long dropped items will lay on the ground intil it's purged.

BELT_FORCE_SLOTS: int
Forces to open up the given amount of slots in your belt inventory. If this value is higher than the grade of your belt, it'll open the given amount of slots. 
If it's lower, the amount your belt provides will be used. For example: You set 10. You've got a belt that opens 5 slots. 10 will be opened. Now you set 4 and still have the same belt. 
This time 5 slots will be opened. This does also work when no belts are weared. But be careful: Since there's also a clientside part the slots may appear to be locked but you can still put items into them

trade_effect: 1/0
Enables a effect that'll occur when people are traing stuff. Enabled by default.

ban_force_reason: 1/0
This lets the ban-command only work when you're giving a reason. Disabled by default.

start_gold: long int
Let's players start with a custom amount of gold. Default: 0.

view_equip_for_all: 1/0
Let's player view equip of others! Disabled by default.

view_equip_sp_cost: int
Sets the cost of using view_equip. This is in % so if you type in 30 then it'll cost 30% of the players maximum sp. Default: 0.

glass_enable: 1/0
Enables the prisma glass-system to print your items in the chat. Disabled by default.

glass_needed: 1/0
Sets if you need a glass for using the prisma glass-system or not. Enabled by default.

trade_effect_exchange_threshold: int
Sets the threshold to create another effect when making an exchange. Default: 500000. This means, that every 500000 gold traded away there'll be another fly effect created

trade_effect_shop_threshold: int
Same as trade_effect_exchange_threshold; This points to buying items in shops. Default: 100000000.

VERSIONCHECK_KICK_DELAY: int
Default is 10. Sets the time until the player is kicked when a version mismatch is occured. Takes only effect if the versioncheck is enabled.

EMOTION_WITHOUT_MASK: 1/0
Default is 0. Lets you define if you won't need a mask to use emotions.

EMOTION_SAME_GENDER: 1/0
Default is 0. Lets you define if people will be able to use emotions on the same gender. Notice: This'd possibly look awkward because the animations doesn't match

CHECK_SPEEDHACK_ENABLE: 1/0
Default is 1. Lets you define if you want to use the speedhack/synchack check. Warning! Make sure you only use this for debugging purpose! You can fine-tune the variables for the speedhack in your CONFIG, so this should normally not be touched!

QUEST_TRIGGER_ENABLE: 1/0
Default is 1. Lets you define if you want to use the new execute-trigger.

EXP_NEED_THRESHOLD: unsigned long long int
Allows you to set the exp needed if your level is higher than the maximum level of the exp table

SKILL_MASTER_UPGRADE: int
Sets the minimum level when your skill can jump to master. If it's set to 1 for example, then it'd happen that your skill jumps to m1 at any level.

SKILL_FORCE_MASTER: 1/0
Lets you define if your skill will definitely raise to m1 if it hits the minimum level for jumping. So if you're enabling this, then your skill will definitely (unless you set SKILL_MASTER_UPGRADE) raise to m1 when hitting 17.

BUGFIX_SURA_MANASHIELD: 1/0
Default is disabled. Fixes the sura manashield so it'll now scale with the proper value instead of always removing a third of the damage. Warning! When activating, you'd nerf the skill! Otherwise people with over 100 iq could prevent every incoming damage and even heal themselves or cause crashes!

*New questfunctions*

item.get_attr_type(int index)
item.get_attr_value(int index)
item.set_attr(int ApplyType, int ApplyValue[, int index])
npc.get_level()
game.mysql_real_escape_string(string query)
game.mysql_query(string query)
game.mysql_update_query(string query)
pc.delayed_disconnect(int zeit)
pc.get_mount_vnum()
pc.set_level(int level)
pc.send_effect(int id)
pc.block_exp()
pc.unblock_exp()
item.equip()
npc.select()
pet.is_mine()
pc.get_id()

*New conf.txt options*

TXT_STARTUP = 0/1
1 = enabled. Disabled by default. Enable to boot with txt-files instead of sql

*New quest trigger*

OnBuy (triggers on buying a item from players or npc's)
OnDie (triggers on dying)

*commands*

/ban playername reason
/unban playername

full list of all allowed bonuses for skills:

MAX_HP
MAX_SP
HP_REGEN
SP_REGEN
BLOCK
HP
SP
ATT_GRADE
DEF_GRADE
MAGIC_ATT_GRADE
MAGIC_DEF_GRADE
BOW_DISTANCE
MOV_SPEED
ATT_SPEED
POISON_PCT
RESIST_RANGE
CASTING_SPEED
REFLECT_MELEE
ATT_BONUS
DEF_BONUS
RESIST_NORMAL
DODGE
KILL_HP_RECOVER
KILL_SP_RECOVER
HIT_HP_RECOVER
HIT_SP_RECOVER
CRITICAL
MANASHIELD
SKILL_DAMAGE_BONUS
NORMAL_HIT_DAMAGE_BONUS
HT
IQ
ST
DX
STUN_PCT
SLOW_PCT
PENETRATE_PCT
ATTBONUS_HUMAN
STEAL_HP
STEAL_SP
MANA_BURN_PCT
DAMAGE_SP_RECOVER
RESIST_SWORD
RESIST_TWOHAND
RESIST_DAGGER
RESIST_BELL
RESIST_FAN
RESIST_BOW
RESIST_FIRE
RESIST_ELEC
RESIST_MAGIC
RESIST_WIND
REFLECT_CURSE
POISON_REDUCE
EXP_DOUBLE_BONUS
GOLD_DOUBLE_BONUS
ITEM_DROP_BONUS
POTION_BONUS
IMMUNE_STUN
IMMUNE_SLOW
IMMUNE_FALL
CURSE_PCT
STA
ATTBONUS_WARRIOR
ATTBONUS_ASSASSIN
ATTBONUS_SURA
ATTBONUS_SHAMAN
ATTBONUS_MONSTER
MAX_HP_PCT
MAX_SP_PCT
SKILL_DEFEND_BONUS
NORMAL_HIT_DEFEND_BONUS
RESIST_WARRIOR
RESIST_ASSASSIN
RESIST_SURA
RESIST_SHAMAN
ENERGY
RESIST_CRITICAL
RESIST_PENETRATE

Thanks to:
xP3NG3Rx for some quest functions
Sphinx² & lollo_9_1 for the mysql-functions
Lefloyd for the 2 new quest triggers
.InyaProduction for some new quest functions
Tim for the suggestion to include libs from a special path
MartPwnS for helping with the src code on gcc48/gcc49

And especially thanks to you!

  • Love 149

Share this post


Link to post

This post is made for changelogs and for the download link!

 

### Changelog vanilla version 2.2 (without rev system) ###

 

~> See here

 

 

### Changelog vanilla revision rev52410 ###

Also known as version 2.3

 

~> See here

 

 

### Changelog vanilla revision 54180 ###
Also known as version 2.4

 

~> See here

 

 

 

### Changelog vanilla revision 54250 ###

Also known as version 2.4.1

 

~> See here

 

~> Hotfix see here

 

~> Second hotfix see here

 

 
Download (v2.4.1): here
password: vanilla
note! Please always test newer versions of vanilla first in a test environment!!

Only download the vanilla core from valid sources (this thread!!)

 

If you want to donate then you can simply donate via paypal or other payment methods. Just write me a private message ;) I appreciate every help I can get! :)
 
Installation: Read readme.txt!
 
You are allowed to freely distribute the vanilla core but be sure you mark the right authors! The main source code is from YMIR, the modifications are made by me (vanilla)! And if you release it somewhere else please make sure you create a reference to this thread and that it's allowed to be posted there.

  • Love 74

Share this post


Link to post

sorry, forgot to write it down. Password is: vanilla

 

List for allowed bonus on skills added.

  • Love 3

Share this post


Link to post

Do I need a specific client version to connect? (as in client binary revision, I'm not talking about the versioncheck feature)

Share this post


Link to post

What are that skill bonuses? Can you explain it? 

And do we need any changes in our binarys to let it work properly?

Share this post


Link to post

Every bin which is compatible to 40k gamefiles works.

You may change the gold limit in your game binary to correctly display higher gold values than usually. But if you keep your gold limit on ~2.000.000.000 you don't need to change anything there.

 

In your skill_proto there are columns named like "szPointOn". There you can modify e. g. your attack-damage like you'd use buffs.

Within these changes you're allowed to use more attributes to amplify your skills. You can e. g. raise your str higher for a few seconds after activating a skill. Or use more defense methods. You can use every boni listed here.

 

With 2.2 you can use up to 8 skills.

  • Love 1

Share this post


Link to post

As soon as it's finished. I'm still working on it and collecting ideas. Just feel free to tell me every idea you have. I won't write new system or something like that since not everyone likes such things. So I'm not going to do that.

But I will fullfill wishes which allow the gamefile to be more comfortable, stable or faster (and bugfixes of course)

  • Love 1

Share this post


Link to post

This change is not possible since it'd depend on your client too. I can't expect everyone to modify his binary and client so he'll be able to handle the new inventory pages.

I'd do this change if it won't affect people not modifying their client binary. But since items would automatically get into the new inventory slots there'd be fatal bugs occuring with this change.

  • Love 1

Share this post


Link to post

I've actually made it (Inya also I think) and yes, you need to do some changes in binary but you can make new config option for doing this :) something like ENABLE4INV_SLOTS: 0/1 and write some things in your sourcecode. Remember also about changes in quickslots and trade :)

Regards

 

Btw. I can help you with the clientside if you want to

Share this post


Link to post

Despite not being a must-have feature, I'd suggest you to add a "plugin system", this would allow anyone to use it while using their own custom systems aswell.

  • Love 1

Share this post


Link to post

By the way, are there any known bugs or issues?

You can also change the maximum password length :)

Share this post


Link to post

Good work my friend, but first version have a problem. When i click buff item (dragon god items) core got closed. You know this bug:?

 

And I have freebsd shell script for your config file. Anyone want check this thread:

 

http://metin2dev.org/board/topic/82-metin2-server-config-freebsd-shell-script/#entry217

 

 

edit: and we can use this for live server?

Edited by Mehti (see edit history)

Share this post


Link to post

I won't share the source code since I appreciate the work of YMIR Entertainment.

 

In v2.2 I'll try to raise the maximum password length.

 

Plugin-system is planned so you can easily load your libs.

 

@InyaProduction: I'll try it. Maybe it really could be a great improvement.

 

And yes, you can use it wherever you want but I'd be a favour if you post your server name here (maybe you can add it as a feature of your server?).

I'll check it maybe you can provide me your syslog so I can see what happened there.

Thank you very much for your shell script. Will you update it as I create new CONFIG-options?

  • Love 1

Share this post


Link to post

Hey vanilla, and about client changes for gold limit, what we need to do ?

Just python or include binary features?

 

Regards.

Share this post


Link to post

I didn't made changes on the binary, just because I won't need it. But at least you need to change the data type from int to long long. Otherwise you'd possibly go to about 4.000.000.000 with unsigned int, which is the standard in the binary afaik (normally it'd be int but you can force it to be unsigned). In long long this question isn't there anymore since the range is high enough to even handle 999kkk in signed long long.

  • Love 1

Share this post


Link to post

I won't share the source code since I appreciate the work of YMIR Entertainment.

 

In v2.2 I'll try to raise the maximum password length.

 

Plugin-system is planned so you can easily load your libs.

 

@InyaProduction: I'll try it. Maybe it really could be a great improvement.

 

And yes, you can use it wherever you want but I'd be a favour if you post your server name here (maybe you can add it as a feature of your server?).

I'll check it maybe you can provide me your syslog so I can see what happened there.

Thank you very much for your shell script. Will you update it as I create new CONFIG-options?

Yes i can made no problem.. But I got error, when killing metins with much mobs dc me and core closed auto.. Need re open core for login map. If you want on root server contact me  i can test and try with my root and files.. Thanks

Share this post


Link to post

You should change the variables in some files:

 

  1. Packet.h / Line 1715
  2. PythonNetworkStreamPhaseGame / Line 1537
  3. PythonPlayerModule / Line 618
  • Love 1

Share this post


Link to post
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • 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.