Jump to content

Vanilla

Developer
  • Posts

    471
  • Joined

  • Last visited

  • Days Won

    58
  • Feedback

    0%

Posts posted by Vanilla

  1. in v2.2 the bug with the query is fixed. Thank you for reporting the issue.

    I've also fixed the table name bug since 'name' is ambigous. I've changed the query so it'll select `name` which is clearly the column name.

     

    The first test also showed up a great progress. You won't need to have the package-folder anymore unless you wish to enable the function as I mentioned above.

     

    Next step is to make the dbcache more comfortable. I'll try to let it either boot from the txt-files or from the database. If no txt file is present, it'll automatically print a message and loads the proto's from the database instead of the txt. So you won't have the trouble converting anything. If you still like to use the new system, just feel free to do it.

     

    Also I'll change the binding of the ip in dbcache. It'll now listen to 127.0.0.1 by default unless you specify a new value. This will help to mitigate attacks on your dbcache if you have no firewall at all (it's a little bit cruel to let your server run without a firewall and no bind-ip specified, but maybe under some circumstances this'd happen. So the new dbcache will handle it for you).

    • Love 3
  2. I'm not into editing the binary. Vanilla core should be a project belonging on security, stability and performance. Client binaries weren't planned. They don't provide these stats and everyone wants to use his own binary maybe a new encryption or something like that. So it's up to you to make these things happen. You can easily set the Yang maximum to 2kkk and just let it as it is if you're unsure to use the new gold maximum.

     

    Sanchez is right, you need to edit the source code and change the type of the variables so the gold amount won't be handled as 'int' anymore but as 'long long' or in his example 'unsigned long long'.

     

    @Mehti: Please provide a syslog. I'll try to reproduce the error and see if I can get some more information.

     

    €: I tried to reproduce the bug but nothing happened. I tried it with killing 1-2 metinstones. Then I spawned 10 and weakened them. For this test I've used the aggr-command to make the mobs attack me. Still no crash. I destroyed all 10 metinstones and no crash happened there.

    Maybe you've got a quest causing these troubles. Check if you have something like that.

    • Love 2
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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.

    • Good 3
    • Love 76
  9. 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 1
    • Love 150
  10. Hello dear users,

     

    I've a small question for you regarding the future of my vanilla project.

     

    FreeBSD has the well-known compiler "gcc" installed by default (only after 10.0-RELEASE it's gone).

    YMIR developed and compiled the source on this default gcc-version. It's the 4.2 version.

    But wait, why is it so old? We have 4.8 and currently developing 4.9!

     

    It's all about the license. gcc used to have the GNU GPL v2 license. But since 4.3 it's changed to GNU GPL v3. FreeBSD didn't want to adapt to these new license agreements so that's why they decided to go with 4.2 anyway. It's now clearly deprecated (that's why in 10.0 it's changed to clang compiler).

     

    Why do I tell you all these information?

    Because it's an imporant fact for the question I'm going to ask. gcc made some great improvements during the development. There is a huge performance boost and boost on file size from 4.2 to 4.8. I've managed to compile it with your help on 4.8. Now it's about 42mb big unstriped.

     

    So what do we have for the future vanilla versions?

    Better performance, more stability and code optimizations and even a smaller file size!

     

    But there's also a bad site about this. I told you FreeBSD isn't updating gcc higher than 4.2 - which clearly indicates the problem. 4.8 or even 4.9 uses newer libraries (for example libstdc++.so.6)

    These newer libraries can only be achieved by installing the newer gcc version and adding them to /etc/libmap.conf

    It's very easy and I'd write a small guide (you just have to install and then copy'n'paste one list).

     

    But since I stated earlier that I want to make vanilla more compatible with every system it's now a fact that with this new big feature we're creating a dependency on the new gcc version.

     

    So what's your point about it?

    What do you prefer? Having the old compiling methods with no need to install a newer gcc or do you prefer a much faster binary but with the need to install it?

     

    And another question: Do you prefer 4.8 or the newer 4.9 which is currently under development (4.9 COULD have some stability bugs but I didn't monitor any problems like that, compiling worked without any problem too) but a little bit faster (and in the future when it'll be released it'll outclass 4.8)?

  11. Nope, mainline_released isn't buggy. It's just as the name says, it's a mainline developed for release. Vanilla project is based on the mainline_released-tree and it's quite a good tree. number_ex is for example already fixed, all new systems are implemented and working. But I guess mainline is okay too.

     

    Please tell me: What do you prefer?

    A smaller, faster gamefile but with a need to install gcc48/gcc49 or a bigger binary without any dependencies?

    I compiled with both gcc versions without any errors and now I'm trying to run them at my test system (still installing gcc48 there though). So I guess it's better to ask if vanilla should be continued on gcc48/gcc49.

  12. Really, that's it. I've successfully compiled it. CryptoPP was compiled with g++ not gcc. I've changed it to gcc48 and recompiled it.

    No error's anymore and now I'm trying out if it works.

     

    Thanks to gcc48 the new vanilla core will be (with all the debug symbols) about 42mb big. The striped one only 6mb.

     

    Now making a backup and trying 4.9 and checking the differences. Then I'll choose which version I'll take for the main release.

    • Love 2
  13. It's not the makefile. I recompiled the libs just using g++ instead of gcc48.

    The main source is compiled in gcc48 anyway.

     

    The errors disappeared. Now the only ones left are these.

     

     

    OBJDIR/cipher.o: In function `CryptoPP::AllocatorWithCleanup<unsigned int, true>::deallocate(void*, unsigned int)':
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    OBJDIR/cipher.o: In function `CryptoPP::AllocatorWithCleanup<unsigned char, true>::deallocate(void*, unsigned int)':
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    OBJDIR/cipher.o:/src/../../../Extern/include/cryptopp/secblock.h:109: more undefined references to `CryptoPP::AlignedDeallocate(void*)' follow
    OBJDIR/cipher.o: In function `StandardReallocate<unsigned char, CryptoPP::AllocatorWithCleanup<unsigned char, true> >':
    /src/../../../Extern/include/cryptopp/secblock.h:97: undefined reference to `CryptoPP::AlignedAllocate(unsigned int)'
    OBJDIR/cipher.o: In function `CryptoPP::AllocatorWithCleanup<unsigned int, true>::allocate(unsigned int, void const*)':
    /src/../../../Extern/include/cryptopp/secblock.h:97: undefined reference to `CryptoPP::AlignedAllocate(unsigned int)'
    OBJDIR/cipher.o: In function `CryptoPP::AllocatorWithCleanup<unsigned int, true>::deallocate(void*, unsigned int)':
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'

  14. It depends on the environment.

    The makefiles are like the ones ymir uses since these are stolen branches.

     

    Vanilla project isn't closed yet.

    I'm still having a small issue. I jumped from the old gcc4.2 to gcc4.8

    I'm already done recompiling and adjusting the code of the dependent libraries like libthecore, etc.

    But still there's something bothering.

     

    When I compile the src everything works without any problems. It compiles the whole code without any error (just some small warnings but they aren't really big; compiling works). But when it links the files there are some reference errors:

     

     

    linking ../vanilla_rmt2_32....
    OBJDIR/desc.o: In function `DESC::Packet(void const*, int)':
    /src/desc.cpp:465: undefined reference to `buffer_write(buffer*, void const*, int)'
    /src/desc.cpp:467: undefined reference to `buffer_read_peek(buffer*)'
    /src/desc.cpp:468: undefined reference to `buffer_size(buffer*)'
    /src/desc.cpp:477: undefined reference to `buffer_write_peek(buffer*)'
    OBJDIR/desc.o: In function `__packet_encode':
    /src/protocol.h:50: undefined reference to `buffer_has_space(buffer*)'
    OBJDIR/desc.o: In function `DESC::Packet(void const*, int)':
    /src/desc.cpp:524: undefined reference to `buffer_delete(buffer*)'
    OBJDIR/desc.o: In function `__packet_encode':
    /src/protocol.h:57: undefined reference to `buffer_write(buffer*, void const*, int)'
    /src/protocol.h:50: undefined reference to `buffer_has_space(buffer*)'
    /src/protocol.h:57: undefined reference to `buffer_write(buffer*, void const*, int)'
    /src/protocol.h:50: undefined reference to `buffer_has_space(buffer*)'
    /src/protocol.h:57: undefined reference to `buffer_write(buffer*, void const*, int)'
    OBJDIR/desc.o: In function `DESC::ProcessInput()':
    /src/desc.cpp:291: undefined reference to `buffer_adjust_size(buffer*, int)'
    /src/desc.cpp:292: undefined reference to `buffer_has_space(buffer*)'
    /src/desc.cpp:292: undefined reference to `buffer_write_peek(buffer*)'
    /src/desc.cpp:299: undefined reference to `buffer_write_proceed(buffer*, int)'
    /src/desc.cpp:315: undefined reference to `buffer_read_proceed(buffer*, int)'
    /src/desc.cpp:313: undefined reference to `buffer_size(buffer*)'
    /src/desc.cpp:313: undefined reference to `buffer_read_peek(buffer*)'
    /src/desc.cpp:319: undefined reference to `buffer_read_proceed(buffer*, int)'
    /src/desc.cpp:307: undefined reference to `buffer_size(buffer*)'
    /src/desc.cpp:307: undefined reference to `buffer_read_peek(buffer*)'
    OBJDIR/desc.o: In function `DESC::ProcessOutput()':
    /src/desc.cpp:387: undefined reference to `buffer_size(buffer*)'
    /src/desc.cpp:395: undefined reference to `buffer_size(buffer*)'
    /src/desc.cpp:400: undefined reference to `buffer_read_peek(buffer*)'
    /src/desc.cpp:411: undefined reference to `buffer_read_proceed(buffer*, int)'
    /src/desc.cpp:413: undefined reference to `buffer_size(buffer*)'
    OBJDIR/desc.o: In function `DESC::BufferedPacket(void const*, int)':
    /src/desc.cpp:426: undefined reference to `buffer_new(int)'
    OBJDIR/desc.o: In function `DESC::LargePacket(void const*, int)':
    /src/desc.cpp:534: undefined reference to `buffer_adjust_size(buffer*, int)'
    /src/desc.cpp:535: undefined reference to `buffer_size(buffer*)'
    OBJDIR/desc.o: In function `DESC::Destroy()':
    /src/desc.cpp:135: undefined reference to `buffer_delete(buffer*)'
    /src/desc.cpp:136: undefined reference to `buffer_delete(buffer*)'
    OBJDIR/desc.o: In function `DESC::Setup(fdwatch*, int, sockaddr_in const&, unsigned int, unsigned int)':
    /src/desc.cpp:240: undefined reference to `buffer_new(int)'
    /src/desc.cpp:243: undefined reference to `buffer_new(int)'
    /src/desc.cpp:275: undefined reference to `buffer_size(buffer*)'
    OBJDIR/desc.o: In function `DESC::FlushOutput()':
    /src/desc.cpp:782: undefined reference to `buffer_size(buffer*)'
    /src/desc.cpp:791: undefined reference to `buffer_size(buffer*)'
    /src/desc.cpp:793: undefined reference to `buffer_size(buffer*)'
    /src/desc.cpp:850: undefined reference to `buffer_size(buffer*)'
    OBJDIR/desc.o: In function `DESC::BufferedPacket(void const*, int)':
    /src/desc.cpp:428: undefined reference to `buffer_write(buffer*, void const*, int)'
    OBJDIR/input_auth.o: In function `CInputAuth::auth_OpenID(char const*, char const*, char*)':
    /src/input_auth.cpp:393: undefined reference to `socket_timeout(int, long, long)'
    OBJDIR/input_main.o: In function `CInputMain::SyncPosition(CHARACTER*, char const*, unsigned int)':
    /src/input_main.cpp:1829: undefined reference to `buffer_write_peek(buffer*)'
    /src/input_main.cpp:1830: undefined reference to `buffer_write_proceed(buffer*, int)'
    /src/input_main.cpp:1934: undefined reference to `buffer_size(buffer*)'
    /src/input_main.cpp:1937: undefined reference to `buffer_size(buffer*)'
    /src/input_main.cpp:1939: undefined reference to `buffer_size(buffer*)'
    /src/input_main.cpp:1939: undefined reference to `buffer_read_peek(buffer*)'
    /src/input_main.cpp:1930: undefined reference to `buffer_write(buffer*, void const*, int)'
    OBJDIR/main.o: In function `io_loop(fdwatch*)':
    /src/main.cpp:982: undefined reference to `buffer_size(buffer*)'
    /src/main.cpp:963: undefined reference to `buffer_size(buffer*)'
    OBJDIR/desc_client.o: In function `CLIENT_DESC::DBPacketHeader(unsigned char, unsigned int, unsigned int)':
    /src/desc_client.cpp:253: undefined reference to `buffer_write(buffer*, void const*, int)'
    /src/desc_client.cpp:254: undefined reference to `buffer_write(buffer*, void const*, int)'
    OBJDIR/desc_client.o: In function `CLIENT_DESC::DBPacket(unsigned char, unsigned int, void const*, unsigned int)':
    /src/desc_client.cpp:265: undefined reference to `buffer_size(buffer*)'
    OBJDIR/desc_client.o: In function `CLIENT_DESC::SetPhase(int)':
    /src/desc_client.cpp:229: undefined reference to `buffer_reset(buffer*)'
    /src/desc_client.cpp:232: undefined reference to `buffer_reset(buffer*)'
    OBJDIR/desc_client.o: In function `CLIENT_DESC::InitializeBuffers()':
    /src/desc_client.cpp:336: undefined reference to `buffer_new(int)'
    /src/desc_client.cpp:337: undefined reference to `buffer_new(int)'
    OBJDIR/desc_client.o: In function `CLIENT_DESC::DBPacketHeader(unsigned char, unsigned int, unsigned int)':
    /src/desc_client.cpp:255: undefined reference to `buffer_write(buffer*, void const*, int)'
    OBJDIR/desc_client.o: In function `CLIENT_DESC::DBPacket(unsigned char, unsigned int, void const*, unsigned int)':
    /src/desc_client.cpp:269: undefined reference to `buffer_write(buffer*, void const*, int)'
    OBJDIR/desc_client.o: In function `CLIENT_DESC::Packet(void const*, int)':
    /src/desc_client.cpp:279: undefined reference to `buffer_write(buffer*, void const*, int)'
    OBJDIR/desc_p2p.o: In function `DESC_P2P::SetPhase(int)':
    /src/desc_p2p.cpp:62: undefined reference to `buffer_reset(buffer*)'
    /src/desc_p2p.cpp:65: undefined reference to `buffer_reset(buffer*)'
    OBJDIR/desc_p2p.o: In function `DESC_P2P::Setup(fdwatch*, int, char const*, unsigned short)':
    /src/desc_p2p.cpp:36: undefined reference to `buffer_new(int)'
    /src/desc_p2p.cpp:39: undefined reference to `buffer_new(int)'
    OBJDIR/buffer_manager.o: In function `TEMP_BUFFER::TEMP_BUFFER(int, bool)':
    /src/buffer_manager.cpp:11: undefined reference to `buffer_new(int)'
    OBJDIR/buffer_manager.o: In function `TEMP_BUFFER::~TEMP_BUFFER()':
    /src/buffer_manager.cpp:16: undefined reference to `buffer_delete(buffer*)'
    OBJDIR/buffer_manager.o: In function `TEMP_BUFFER::read_peek()':
    /src/buffer_manager.cpp:21: undefined reference to `buffer_read_peek(buffer*)'
    OBJDIR/buffer_manager.o: In function `TEMP_BUFFER::write(void const*, int)':
    /src/buffer_manager.cpp:26: undefined reference to `buffer_write(buffer*, void const*, int)'
    OBJDIR/buffer_manager.o: In function `TEMP_BUFFER::size()':
    /src/buffer_manager.cpp:31: undefined reference to `buffer_size(buffer*)'
    OBJDIR/buffer_manager.o: In function `TEMP_BUFFER::reset()':
    /src/buffer_manager.cpp:36: undefined reference to `buffer_reset(buffer*)'
    OBJDIR/auth_brazil.o: In function `auth_brazil(char const*, char const*)':
    /src/auth_brazil.cpp:105: undefined reference to `socket_timeout(int, long, long)'
    OBJDIR/cipher.o: In function `CryptoPP::AllocatorWithCleanup<unsigned int, true>::deallocate(void*, unsigned int)':
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    OBJDIR/cipher.o: In function `CryptoPP::AllocatorWithCleanup<unsigned char, true>::deallocate(void*, unsigned int)':
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    OBJDIR/cipher.o:/src/../../../Extern/include/cryptopp/secblock.h:109: more undefined references to `CryptoPP::AlignedDeallocate(void*)' follow
    OBJDIR/cipher.o: In function `StandardReallocate<unsigned char, CryptoPP::AllocatorWithCleanup<unsigned char, true> >':
    /src/../../../Extern/include/cryptopp/secblock.h:97: undefined reference to `CryptoPP::AlignedAllocate(unsigned int)'
    OBJDIR/cipher.o: In function `CryptoPP::AllocatorWithCleanup<unsigned int, true>::allocate(unsigned int, void const*)':
    /src/../../../Extern/include/cryptopp/secblock.h:97: undefined reference to `CryptoPP::AlignedAllocate(unsigned int)'
    OBJDIR/cipher.o: In function `CryptoPP::AllocatorWithCleanup<unsigned int, true>::deallocate(void*, unsigned int)':
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    /src/../../../Extern/include/cryptopp/secblock.h:109: undefined reference to `CryptoPP::AlignedDeallocate(void*)'
    collect2: error: ld returned 1 exit status

     

    The most reference errors are with the buffer functions located in the libthecore-library. If somebode could help I'd appreciate it much.

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