Servers Online
Working on upcoming update...; Huge refactoring is in progress;
Hardcode or not?

The question is kind of edgy. The point is that most of the people are lazy to perform some kind of research on how to extract dynamic data on runtime and prefer hardcoding rather than dynamic data extraction (DDE), but sometimes the reason is that they don't have enough experience to achieve such result.


When it comes to the cheating scene, people prefer hardcoding just because it's much easier to dump some variable's offset and then just paste it into the project, rather than spending time on figuring things out. It can be understood in case you're working with some game that doesn't have any kind of data maps, but... what about Source Engine? It brings you brilliant ability to dynamically and reliably extract offsets by name and... people still hardcode offsets. It's sad that most of unknowncheats users never tried digging deeper into this, but just shit-talk on how DDE is slower/worse than hardcoding. Funny thing is that when it comes to logic and arguments - they can't really say much, but scream about performance and wasting of time. The reality is that you have to change all the offsets from update-to-update, and personally I think it's bloody retarded. Why not spending an hour to make a flexible API? It's much more useful since you don't have to create some global/static variables to store offsets and the code looks pretty much like that:

C_BaseEntity *C_BasePlayer::GetActiveWeapon()
{
	// Loop through the datamap structure looking for the string you pass, cache the offset and use it further.
	DATAMAP_CACHE_CREATE( m_hActiveWeapon, GetPredDescMap(), "m_hActiveWeapon", NULL );
	// Take the cached offset and extract the value.
	return DATAMAP_CACHE_EXTRACT_VALUE( this, m_hActiveWeapon, CHandle ).Get();
}

Instead of this:

inline C_BaseCombatWeapon *GetActiveWeapon( void )
{
	CBaseHandle hActiveWeapon = *MakePtr( CBaseHandle *, BaseEnt(), gStaticVars.m_hActiveWeapon );
	return dynamic_cast( g_pEntList->GetClientEntityFromHandle( hActiveWeapon ) );
}

Another sad thing is that most of cheat "developers" are trying to imitate the behavior of their "heroes" on the unknowncheats forum. However, they definitely don't know what they are even saying and sometimes their posts contain terms and things that don't even exist in the Source Engine or are called differently. But they don't even give a shit about that (obviously because people who read their posts are unintelligent). Then these people try to replicate their "knowledge" by spreading wrong information on how things work. This can be simply called "cancer", since you can't control the spread of this shit-talk and misinformation, but people who seek this "knowledge" are goddamn sure they're right.


The same thing happens when it comes to virtual functions. The thing is that in Source Engine there's a public SDK available and you definitely can just use its headers in order to achieve functionality of some certain interfaces/abstract classes, but people who can't handle SSDK keep on using some hardcoded calls such as:

INetChannelInfo *pNetChannel = ( ( INetChannelInfo * ( __thiscall * )( void * ) )( engine + 0xD4 ) )( engine );

Isn't that just ugly? Why not using SSDK headers instead to make code look pretty?

INetChannelInfo *pNetChannel = engine->GetNetChannelInfo();

Looks better, isn't it?


This is something I never understood besides the fact that people who hardcode can't simply operate with the SSDK code, probably because it's "too complicated". Use your own brain and critical thinking when making a decision on how to make your project since it's yours.


License Agreement / Terms Of Service


THIS DOCUMENT DESCRIBES A CONTRACT BETWEEN YOU ("THE CUSTOMER") AND NULL CORE LIMITED. YOU MUST READ IT BEFORE DOWNLOADING, PURCHASING OR USING NULL CORE SOFTWARE. BY DOWNLOADING AND/OR USING THE NULL CORE SOFTWARE YOU ACCEPT THIS LICENSE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE YOU ARE NOT PERMITTED TO DOWNLOAD AND/OR USE THE NULL CORE SOFTWARE.


Common terms used in this document:

  • NCL - Null Core Limited (service provider)
  • NCS - Null Core Software (the software product)

  • DISCLAIMER OF WARRANTIES. NCS AND ANY OTHER MATERIAL IS PROVIDED "AS IS". NCL AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES WITH RESPECT TO NCS, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, TITLE AND FITNESS FOR A PARTICULAR PURPOSE.


    LIMITATION OF LIABILITY. IN NO EVENT SHALL NCL OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GAME ITEMS OR ANY OTHER LOSS TO ANY ONLINE GAMING ACCOUNTS) ARISING OUT OF THE USE OF OR INABILITY TO USE NCS OR IT'S SERVICES, EVEN IF NCL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.


    1) PURCHASING

    1. All payments are non-refundable, unauthorized chargebacks will not be accepted, except for the case if the customer is unable to use the product due to hardware identification issues and/or issues related to software compatibility.
    2. Once the customer has purchased the software subscription they may use it until the expiration date if no violations has been made.
    3. NCL will not recover subscription time lost due to maintenance and hardware/software failure related to NCS backend and/or NCL itself.
    4. If the customer has troubles using the automated payment form, they are required to wait a few days to make sure the issue is not related to PayPal maintenance
    5. NCL accepts payments only through official Null Core Project website, any other unlisted payment methods are not accepted


    2) LIABILITY
    NCL is not responsible for any losses the customer may sustain as a result of a Valve Anti-Cheat ban while using NCS or any other in-game bans, including, but not limited to: untrusts, gameserver bans, cooldowns, etc... It is always advisable to be careful and use the NCS on an alternative account. Failure to do so, regardless of how much they may have lost, is the responsibility of the customer. NCL/NCS takes no responsibility for the customer's online gaming accounts as a result of using this website or any software, or data contained within. NCL/NCS may track information related to NCL/NCS usage for statistics. However, the customer's private information is never exposed. NCL/NCS keep the right of terminating/suspending any account without refunding, if fraud and/or illegal activity is detected, including, but not limited to: hacking, scamming, cracking, spoofing and debugging activities.


    3) USAGE

      The customer is permitted to:
    1. Download purchased executable to their own PC.
    2. Share their executable with their friends for demonstrative purposes only. The customer takes full responsibility for every action of the person they share their executable with.
    3. Infinitely reset their HWID via website in the event they upgrade their computer.
    4. Store the NCS executable on their computer or removable media for their own personal use.
    5. Make promotional media related to Null Core.

    6. The customer is NOT permitted to:
    7. Distribute their executable to any third party, except for the case described in paragraph 3B.
    8. Modify their executable in any way.
    9. Spoof the protocol/network traffic used by executables and/or injected game.
    10. Reverse engineer their executable and/or injected game in any way.
    11. Run their loader in sandboxes and/or virtual machines.
    12. Perform any malicious or illegal activities against NCL including, but not limited to: DoS/DDoS attacks, network traffic spoof, etc...
    13. Make media content designed for misinforming potential clients about our product quality.
    14. Perform unauthorized chargebacks.
    15. Resell their account.
    16. Impersonate other members, moderators, or developers of NCL in any way.
    17. Fabricate any kind of data/evidence to substitute other Null Core users.


    4) SUPPORT
    Once the customer purchases the software subscription for any of listed games the customer gets free support and future updates till the expiration date of the NCS license. The customer might want to contact NCL team to report a bug or get help. The customer must make sure they follow these rules:

    1. The customer must contact the team ONLY via specialized website feedback form.
    2. The customer must describe their issue as detailed as possible, attaching links to screenshots and videos, if possible.

    However, NCL might reject the customer's help/support request if the customer:
    1. Doesn't provide enough information about the issue.
    2. Complains about something that can only happen in a single server.
    3. Complains about something that isn't actually a bug.
    4. Complains about something that the customer can't understand/get used to.
    5. Uses external software that is not supported by NCS.
    6. Abuses any of the system faults/exploits.
    7. Asks questions unrelated to issues and/or bugs and/or doesn't consist of technical basis, but theoretical and/or indirect doubts.
    8. Fails to comply with professional ethics.
    9. Fails to fill the feedback form properly.
    10. Tries to spam using the feedback form.
    11. Addresses a non-issue request.

    The customer's request and/or an ability to open tickets might be temporarily or permanently suspended in case they don't follow the rules. Any requests to contact NCL members via 'NCL Team' page and report issues directly will be blocked.


    6) EXTERNAL RESOURCES
    NCL has not reviewed all of the websites linked to its website and is not responsible for the contents of any such linked website. The inclusion of any link does not imply endorsement by NCL. Use of any such linked website is at the user's own risk.


    Violation of these rules will result in the customer's account being temporarily suspended or completely terminated, discontinuation of any further services from NCL and possible legal action if any local or remote laws are violated in the process.


    This license might change in the future without warning.