3.7.12

Cheat Engine 6.2



June 3 2012:Cheat Engine 6.2 Simplified Chinese translation:
linwuliao has updated the Simplified Chinese language file to 6.2. You can get it here

June 3 2012:Cheat Engine 6.2 Traditional Chinese translation:
Todobug has updated his language file to 6.2. You can get it here (Just extract to your languages folder in the Cheat engine install folder overwriting language.ini)

May 21 2012:Cheat Engine 6.2 Russion translation:
SER[G]ANT has already finished updating the translation files for this new update to russian. You can get them here

May 20 2012:Cheat Engine 6.2 Released (And mac stuff):
And again almost a year passed without any update. But here is the new and improved Cheat Engine 6.2

If you encounter bugs or have suggestions, please do not hesitate to report them in the forum, bugtracker, or by mail.
And if you have questions, don't hesitate to ask them in the forum

Fixes:
  • Fixed the first plugin from not getting activated at restart
  • Custom types can now do an unknown initial value scan
  • Fixed the auto assembler highlighter from hiding some text while typing
  • Fixed the auto assembler highlighter from not showing hexadecimal values as hex starting with A to F
  • Fixed global debug from crashing in 64-bit (with dbvm)
  • Fixed dbvm from not working on several systems (freeze)
  • Fixed notification when closing and you had some changes
  • Fixed the rescan of the structure spider not working at all
  • Fixed several disassembler and assembler instructions
  • Fixed several plugin-system related bugs
  • Fixed aobscan for 64-bit
  • Fixed displaying the registers in 64-bit when using "find what xxx this address"
  • Fixed the stackview when single stepping through the code
  • Fixed several lua function, including createhotkey
  • Fixed the assembler not dealing well with names with a - in it. (like the tutorial)


  • Additions and changes:
  • Auto assembler scripts can now use the LuaCall(luafunction()) method to call a lua function before the script gets executed
  • Added a profiler so you can find function entry points and see how often they are called (Ultimap. Requires dbvm. Even in 32-bit)
  • Deleting a plugin now calls FreeLibrary on it
  • Ctrl+enter in the luaengine form now automatically executes the command
  • Added direct 3d hook functions (can be used to show trainers and menu's inside games)
  • d3dhook related: Cheat Engine can now bind the mouse inside the gamewindow for those games that do not support multiple displays, so no more losing focus when moving the mouse
  • Plugins settings between the 32 and 64-bit executable are now seperated
  • Recalculate addresses with only one selection now only updates the siblings and children. Doesn't touch the parent node
  • Addresslist entries can have the notation +xxx and -xxx, which will calculate the address based on the parent address (If the parent address changes, these change automatically
  • The structure dissect has been rewritten from scratch, and the functions have been exposed to lua as well
  • Added a new step to the tutorial (step9) showing how to deal with shared code
  • Made the tutorial translatable as well
  • Added a new trainer type which generates trainer that are a lot smaller in size (tiny)
  • Added a groupscan type which you can use to scan for different things in the same block
  • If you boot up with dbvm you do not need to sign the driver in 64-bit to load it
  • Custom types now support handling as a floating point value
  • Added debug register states to the threadview and made the threadview window capable of changing registers
  • Added remote scanning with ce for different systems. The server just needs to be running, and a 1GBPs network connection or faster is recommended
  • Also added an android server as a proof of concept, but getting a fast enough connection on those connections can be a challange
  • Changed the add/change address window to be more compact and make dealing with offsets easier
  • Lots of new lua functions
  • Post release fixes (max 7 days after initial release):
    21 May 2012: Handle the "Invalid Instruction" exception better, fix the memoryview window from disapearing, and fix the BSOD when loading the driver on Pentium 4 and earlier
    22 May 2012: Fix a deadlock when clicking stop in the pointerscanner. (And a minor assembler fix)
    23 May 2012: Fix form_showModal from not returning a result. Made the installer create the autorun folder. Minor gui fix for groups
    25 May 2012: Fixed the android server being replaced by the x64 linux server
    26 May 2012: Fixed api hooking in 64-bit (speedhack in java fix for win64 users)
    30 May 2012: Removed the linux server binaries from the installer, they are separate downloads now


    Also, there has been a Mac version under development and it's semi usable. Memory scanning works most of the time and the debugger also kinda works: Cheat Engine for Mac Version April 2012
    You can talk about it in this topic: http://forum.cheatengine.org/viewtopic.php?t=221190 or if the mac version becomes more popular I might create a new forum section for it.

    November 21 2011:Chinese Traditional translation files:
    todobug has provided us with the translation files for "Chinese Traditional (ch_tw)"


    November 13 2011:Back:
    The server is back up and your dns has been updated to this ip again.
    Most stuff will be working, but some stuff is missing and/or gone. (User attachments)

    Please note that you may occasionally see error messages while some adjustments are made


    November 11 2011:CRASH:
    The server cheatengine.org is hosted on has crashed :(
    The forum's last backup was 3 weeks ago so that isn't too bad, but the attachments people uploaded after January 12th are lost. So those need to be reuploaded.
    Cheatengine.org is currently hosted on a secondary host while the new harddisk is being setup but that can take a few days.<
    The forum is currently down, but the downloads should work (6.1 downloads)

    for those that want to chat check out irc or the temp forum here: http://cheatengine.freeforums.org

    August 16 2011:Spanish/Castilian traslation files:
    Manuel I. has provided us with Spanish/Castilian(es_ES) translation files
    Just extract to your languages\ subfolder in the Cheat Engine folder

    June 7 2011:Chinese Simplified translation files:
    There's a translation file for another branch of Chinese (zh_CN)


    June 5 2011:Chinese Simplified translation files:
    Forum member aleax has provided us with Chinese Simplified translation files
    Also, here's a link to a chinese site which may be able to help you further

    www.cheatengine.org

    2.7.12

    Thông báo: thay đổi tên miền www.trknet.co.cc


    Thông báo: Từ ngày 03.07.2012 quý khách vui lòng truy cập vào trang www.trknet.co.cc để vào blog www.trknet.blogspot.com do điều kiện hiện nay một số nhà cung cấp dịch vụ internet tại Việt Nam chính thức ngăn không cho các IP tại Việt Nam truy cập vào những trang có dạng www.xxx.blogspot.com.

    Thành thật xin lỗi quý khách và chân thành cảm ơn quí khách đã truy cập website trong suốt thời gian qua!

    trknet

    15.6.12

    Chuẩn viết code và thiết kế giao diện trong C#

    CHUẨN VIẾT CODE VÀ THIẾT KẾ GIAO DIỆN TRONG C#

    (Bản tóm tắt)

    I.      QUY ĐỊNH ĐẶT TÊN

    - Pascal                      BackColor
    - Camel                      backColor
    - Uppercase               BACKCOLOR

    1.1.           Tên biến

    - Kiểu Camel

    1.2.           Tên hằng số

    - Sử dụng Uppercase
    - Gạch nối giữa các từ

    1.3.           Tên kiểu Enum

    - Tên kiểu Pascal
    - Không tiền, hậu tố

    1.4.           Tham số


    - Tên kiểm Camel

    1.5.           Tên thuộc tính

    - Tên kiểu Pascal

    1.6.           Tên phương thức

    - Tên kiểu Pascal

    1.7.           Sự kiện

    - Kiểu Pascal
    - Thường có hậu tố: EventHandler

    1.8.           Tên lớp

    - Tên kiểu Pascal
    - Không sử dụng gạch chân

    1.9.           Giao diện

    - Tên kiểu Pascal
    - Bắt đầu bằng tiền tố “I”

    1.10.       Không gian tên

    - Cú pháp: [Tên công ty].[Tên Công nghệ][.Đặc trưng][.Thiết kế]
    Ví dụ: SDGVN.Web.Utility
    SDGVN.Web.ModuleBase

    1.11.       Tên tiền tố của các điều khiển

    Control type Prefix Example
    Panel pnl pnlGroup
    Check box chk chkReadOnly
    Combo box, drop-down list box cbo cboEnglish
    Command button btn btnExit
    Common dialog dlg dlgFileOpen
    Control (used within procedures when the specific type is unknown) ctr ctrCurrent
    Data dat datBiblio
    Data-bound combo box cbo cboLanguage
    Data-bound grid grd grdQueryResult
    Data-bound list box lst lstJobType
     Repeater rpt drpLocation
    Date Time Picker dtp dtpPublished
    Form frm frmEntry
    Frame fra fraLanguage
    DataGridView dgv dgvPrices
    GridView grd grdProduct
    DataList dtl dtlOrders
    Horizontal scroll bar hsb hsbVolume
    Image img imgIcon
    ImageList ils ilsAllIcons
    ImageButton ibt ibtNext
    HyperLink hpl hplHome
    LinkButton lbt lbtClick
    Label lbl lblHelpMessage
    List box lst lstPolicyCodes
    ListView lvw lvwHeadings
    Menu mnu mnuFileOpen
    Option button opt optGender
    Picture box pic picVGA
    Picture clip clp clpToolbar
    ProgressBar prg prgLoadFile
    RichTextBox rtf rtfReport
    Slider sld sldScale
    Spin spn spnPages
    StatusBar sta staDateTime
    Text Box txt txtLastName
    Timer tmr tmrAlarm
    Toolbar tlb tlbActions
    TreeView tre treOrganization
    UpDown upd updDirection
    Vertical scroll bar vsb vsbRate
    SqlDataSource sql sqlAccounts
    LinqDataSource linq linqCategories

    II.      THIẾT KẾ GIAO DIỆN

    2.1.            Thiết kế form

    Thiết lập Option Layout Settings của Form như sau:



    • Quy định kích thước Form
    Luôn cố gắng đảm bảo tỷ lệ 4×3: Form rộng 4 thì cao 3 để đảm bảo cân xứng với màn hình.
    • Quy định kích thước Control
      • Chiều cao: sử dụng chiều cao mặc định sẵn của Control.
    Trường hợp đặc biệt:
    • TextBox multi-lines: đảm bảo không bị che 1 phần của dòng
    • Button có image: đảm bảo hiển thị vừa đủ image 16×16 pixel
    • Độ rộng: tùy độ rộng của text
      • Đảm bảo nguyên tắc các TexBox, Combo trên cùng một Form có độ rộng thống nhất.
      • Đảm bảo nguyên tắc các Button trên tất cả các Form có độ rộng thống nhất, text trên Button không nên vượt quá 2 từ.
      • Nếu text trên Button gồm 2 từ trở xuống: bắt buộc sử dụng độ rộng mặc định (75).
      • Đối với những trường có độ rộng cố định hoặc ít khi thay đổi (ví dụ như trường có kiểu dữ liệu là Date thì độ rộng là cố định là 10 ký tự), tuân thủ theo quy định sau:
        •  Độ rộng control được binding với trường này chỉ được phép rộng đủ để hiện thị hết thông tin trong đó.
    •  Không được để độ rộng control vượt quá độ rộng của trường.
    • Lưu ý: Label đặt AutoSize=FALSE, TextBox đặt AutoSize=TRUE
    • Quy định khoảng cách giữa các Control
      • Các Control cách mép Form 01 ô grid (cả 4 phía).
      • TextBox, ComboBox cách Label dài nhất 01 ô grid
      • Các Control cách nhau 01 ô grid cả chiều dọc và ngang.
    Riêng trường hợp sử dụng GroupBox có caption thì các Control bên trong GroupBox cách mép trên của GroupBox 02 ô grid. GroupBox không có caption khoảng cách vẫn là 1 ô grid. 
    • Diện mạo Control
      • Font & Color: sử dụng thiết lập mặc định. Chỉ thay đổi khi yêu cầu thiết kế chỉ rõ.
      • Hot track: thiết lập Hot track cho Button, Combo và DropDown.
      • Căn lề Text trên Control:
        • Chiều ngang (HAlign):
          • Chữ căn trái
          • Số căn phải
          • Riêng với Button thì luôn căn giữa.
          • Chiều dọc (VAlign): căn giữa (Middle)
    • Dóng Control
      • Label: dóng trái
      • Textbox, Combo: dóng đều hai bên
    • Tab Order:
      • Phải thiết lập Tab Order trên mọi giao diện (Form, Control, …) theo nguyên tắc: từ trái sang phải, từ trên xuống dưới.
      • Yêu cầu bắt buộc thiết lập TabOrder theo đúng thứ tự cho mọi Control trên Form, kể cả Control không focus vào được như Label, GroupBox, hay Control invisible. Lưu ý tuân thủ tuyệt đối quy định này vì nó phục vụ nhiều mục đích quan trọng như tạo shortcut key, valid required data, …
    • Anchor & Dock: phải thiết lập Anchor và Dock cho Control trên các Form, Container không cố định kích thước (Sizable).
    • Với thông tin yêu cầu người dùng không dược bỏ trống mà bắt buộc nhập (AllowNull = FALSE) thì Label cho thông tin đó phải sử dụng ký hiệu “(*)” ở cuối và thiết lập shortcut key.

    2.2.           Quy định khi tạo MessageBox

    - Caption: sử dụng Application.ProductName
    - Icon:
    • MessageBoxIcon.Exclamation: dùng cho các trường hợp sau
      • Cảnh báo lỗi
      • Cảnh báo xóa dữ liệu
      • Cảnh báo nhập thiếu, nhập sai dữ liệu
      • MessageBoxIcon.Information: dùng cho các thông báo không có tính chất cảnh báo, ví dụ Kết quả Import, Thông tin về CSDL, …
    - Nội dung Message: không được phép viết trực tiếp nội dung message mà phải dùng Resource (sử sụng hàm String.Format để truyền tham số cho Resource nếu cần).

    2.3.           Quy tắc viết mô tả (comment) cho code

    Sử dụng tiếng Việt có dấu (Unicode) để viết comment.
    Comment cho Module, Class
    Mỗi Module, Class cần có mô tả ngắn về mục đích của Module hay Class đó. Nội dung gồm:
    Mục đích: Module hay Class thực hiện những công việc gì.
    Người lập: Người tạo Module hay Class
    Những biến/hàm quan trọng (không bắt buộc): Liệt kê tên các biến và hàm quan trọng trong Module/Class
    Comment cho Method và Event
    -      Tất cả các Method và Event phải có comment.
    -      Comment cho Method/Event gồm hai phần:
    • Phần 1 (không bắt buộc): mô tả mục đích và diễn giải ngắn gọn ý nghĩa các tham số đầu vào, đầu ra.
    Lưu ý: mô tả Method đó làm gì (What), không mô tả Method đó thực hiện thế nào (How).
    Từ  VC# 2005 trở đi, Microsoft cung cấp sẵn một macro dành cho việc viết comment mục đích. Sử dụng như sau: gõ liên tiếp 3 dấu nháy đơn (‘) trên đầu mỗi Method.
    Lập trình viên có thể không cần viết phần mô tả mục đích này với các Method/Event đơn giản, không phức tạp.
    • Phần 2 (bắt buộc): ghi thông tin về history tạo và sửa Method/Event đó (người tạo/ngày tạo, người sửa/ngày sửa). Thông tin này bắt buộc phải có với mọi Method/Event.
    -      Mẫu comment cho Method/Event đơn giản:
    // Created by (người tạo) – (ngày/tháng/năm tạo): diễn giải ngắn gọn mục đích// Modified by (người sửa 1) – (ngày/tháng/năm sửa 1): diễn giải việc sửa 1 // Modified by (người sửa 2) – (ngày/tháng/năm sửa 2): diễn giải việc sửa 2
    //…
    // Modified by (người sửa n) – (ngày/tháng/năm sửa n): diễn giải việc sửa n
    Ví dụ
        // Created by lhhoa – 20/02/2008: hàm lấy khoảng thời gian là ngày đầu và ngày cuối của tháng trước// Modified by nvkieu – 25/02/2008: sửa lỗi gì đó // Modified by nqhoang – 27/02/3008: bổ sung gì đó
    private void GetDateLastMonth(fromDate datetime, toDate datetime, currentMonth int, currentYear int)
    {
    if (currentMonth == 1)
    {
    fromDate = DateSerial(currentYear – 1, 12, 1);
    toDate = DateSerial(currentYear – 1, 12, DaysInMonth(currentYear – 1, 12));
    }
    else
    {
    fromDate = DateSerial(currentYear, currentMonth – 1, 1);
    toDate = DateSerial(currentYear, currentMonth – 1, DaysInMonth(currentYear, currentMonth – 1));
    }
    …………………………….
    }
    -      Mẫu comment cho Method/Event phức tạp:
    /// <summary>/// Diễn giải mục đích ///</summary>
    ///<param name=”Tham số 1″>Diễn giải cho Tham số 1</param>
    ///<param name=”Tham số 2″>Diễn giải cho Tham số 2</param>
    /// …
    /// <param name=”Tham số n”>Diễn giải cho Tham số n</param>
    /// <remarks>Nhận xét (nếu có)</remarks>
    /// Created by (người tạo) – (ngày/tháng/năm tạo)
    /// Modified by (người sửa 1) – (ngày/tháng/năm sửa 1): diễn giải việc sửa 1
    /// Modified by (người sửa 2) – (ngày/tháng/năm sửa 2): diễn giải việc sửa 2
    /// …
    /// Modified by (người sửa n) – (ngày/tháng/năm sửa n): diễn giải việc sửa n
    Ví dụ:
        /// <summary>/// Hàm lấy khoảng thời gian là ngày đầu và ngày cuối của tháng trước. /// </summary>
    /// <param name=”fromDate”>Ngày đầu tháng trước</param>
    /// <param name=”toDate”>Ngày cuối tháng trước</param>
    /// <param name=”currentMonth”>Tháng hiện tại</param>
    /// <param name=”currentYear”>Năm hiện tại</param>
    /// <remarks></remarks>
    /// Created by lhhoa – 20/02/2008
    /// Modified by nvkieu – 25/02/2008: sửa lỗi gì đó
    /// Modified by nqhoang – 27/02/3008: bổ sung gì đó
    private void GetDateLastMonth(fromDate datetime, toDate datetime, currentMonth int, currentYear int)
    {
    if (currentMonth == 1)
    {
    fromDate = DateSerial(currentYear – 1, 12, 1);
    toDate = DateSerial(currentYear – 1, 12, DaysInMonth(currentYear – 1, 12));
    }
    else
    {
    fromDate = DateSerial(currentYear, currentMonth – 1, 1);
    toDate = DateSerial(currentYear, currentMonth – 1, DaysInMonth(currentYear, currentMonth – 1));
    }
    …………………………….
    }
    Comment cho đoạn Code
    -      Những đoạn code phức tạp cần có comment gắn liền bên trên để chú giải.
    -      Những đoạn code được sửa đổi (modified), bổ sung (added) hoặc rem (removed) bởi người không phải tác giả cần có comment rõ ngay tại nơi sửa đổi, bổ sung: người sửa, ngày sửa, mục đích.
    -      Comment cho đoạn code áp dụng bắt buộc với các Base Form/Base Class/Base Control.

    2.4.           Quy tắc phân nhóm (region) khi coding:

    Phải sử dụng Region phân nhóm code để tiện cho việc sửa đổi, bảo trì.
    Phân nhóm code theo cấu trúc như sau: (theo thứ tự bắt buộc, nhưng không bắt buộc có đủ tất cả các region)
          Declaration
          Constructor
          Property
          Method/Function
          Event
    Tùy theo yêu cầu của các form, class và module, lập trình viên có thể chia nhỏ các Region chính trên thành các sub-region. VD: region Method/Function có thể chứa các region con sau:
    Method/Function
    Public
    Overridable (trường hợp là base form/class)
    Override (trường hợp là derive form/class)
    Private
    Other
    Trường hợp form hoặc class có sử dụng các component độc lập (Security, Document, MassEmail,…) thì phải tạo các Region riêng cho từng component, chứa toàn bộ code liên quan đến việc tương tác với các component đó.

    2.5.           Quy định bẫy lỗi khi coding

    -      Bắt buộc bẫy lỗi (sử dụng try … catch) trong tất cả các Event của Form và Control trên Form.
    -      Nghiêm cấm sử dụng cú pháp try … catch để che dấu lỗi (không xử lý gì sau từ khóa catch).

    Bad!!!

    Good!!!

    2.6.           Quy định thiết kế Dataset:

    -      Tên của Dataset khi visual design đặt như sau: “Dataset” + Mục đích. VD: DatasetDictionary, DatasetCAPayment, …
    -      Số lượng DataTable trong một Dataset: quy định từ 10 trở xuống. Mỗi Dataset chỉ được phép có tối đa 10 DataTable. Khi thiết kế phải tách Dataset để đảm bảo nguyên tắc này. Nếu một Dataset có nhiều DataTable thì tốc độ load/save dữ liệu sẽ bị ảnh hưởng nghiêm trọng.

    Nguồn: Internet

    21.3.12