Vấn đề về game dựa theo thời gian

Focker_cFocker_c Posts: 1,577Registered
Đây là một vấn đề mình đã thấy khá lâu mà chưa tiện hỏi.

Về cơ bản, nhiều game mô phỏng thường hay có dạng là làm 1 việc xyz nào đấy trong 2 tiếng.
2 Tiếng sau thì quay lại và nghiệm thu kết quả.

Như kiểu là xây nhà, hay làm bánh ấy :)

Vấn đề ở đây là engine chủ yếu lấy clock của máy để làm bộ đếm cho game.
Ví thế, người chơi dùng trick sửa giờ của máy là sẽ tua được thời gian.

Game online thì khác thì clock của họ có riêng trên server, nên ko bị ảnh hưởng.

Mọi người có ý gì để khắc phục vấn đề trên ko?
Liệu có cách gì đề tìm ra giờ đúng hay kiểm tra được liệu người chơi mới sửa clock.
«1

Comments

  • BướmBướm Posts: 1,220Registered
    Focker_c wrote:
    Đây là một vấn đề mình đã thấy khá lâu mà chưa tiện hỏi.

    Về cơ bản, nhiều game mô phỏng thường hay có dạng là làm 1 việc xyz nào đấy trong 2 tiếng.
    2 Tiếng sau thì quay lại và nghiệm thu kết quả.

    Như kiểu là xây nhà, hay làm bánh ấy :)

    Vấn đề ở đây là engine chủ yếu lấy clock của máy để làm bộ đếm cho game.
    Ví thế, người chơi dùng trick sửa giờ của máy là sẽ tua được thời gian.

    Game online thì khác thì clock của họ có riêng trên server, nên ko bị ảnh hưởng.

    Mọi người có ý gì để khắc phục vấn đề trên ko?
    Liệu có cách gì đề tìm ra giờ đúng hay kiểm tra được liệu người chơi mới sửa clock.
    như trứng pokemon thôi, đi được 6969 bước thì nở
  • DeathDeath Posts: 732Registered, Moderators
    Game offline thì thường tính thời gian lúc game chạy thôi chứ gần như không có đếm thời gian lúc tắt game (trừ game idle)
    Game online xây nhà bắt đợi 2 tiếng thì game offline bắt đợi 2 phút đếm ngược là đc rồi :D
  • slucis7593slucis7593 Posts: 544Registered
    Nếu bạn muốn theo thời gian thực theo kiểu tắt game đi vẫn tính thời gian thì đành phải chấp nhận , còn thường thì chỉ khi nào bật game thì mới tính thời gian thì làm 1 cái đồng hồ riêng cho game thôi
  • Focker_cFocker_c Posts: 1,577Registered
    Ý như là step trong pokemon có vẻ hay.
    Nhưng game khác thì như nào đây? :/
  • Dang_KhoaDang_Khoa Posts: 3,861Administrators
    Chỉ có cách dùng giờ trên server thôi ^^
  • Black FaceBlack Face Posts: 424Registered
    - Yêu cầu game cần internet để có thể làm được việc này (việc này thì ko cần lo lắng, đa số đã có net)
    - Không cần có server riêng, bạn có thể code lấy thời gian theo múi giờ +7 hoặc bao nhiêu thì tùy.
    - Nếu làm offline thì kiểu nào cũng có thể sửa được giờ thôi, vấn đề đồng bộ thời gian cần phải online
  • sanggameboysanggameboy Posts: 1,943Registered
    Vậy còn tạo một biến lấy giá trị số thời gian hiện tại trước khi tắt game và một lệnh điều kiện luôn chạy với công dụng kiểm tra xem nếu biến thời gian đó hơn x tiếng thì thực hiện hành động abc thì sao nhỉ? Ví dụ như một bông hoa cần 2 tiếng để nở. Một event sẽ luôn luôn chạy với công dục lấy giá trị thời gian hiện tại của máy. Lúc này nếu tắt game và đợi 2 tiếng sau rồi mở game lại, ta sẽ có hai giá trị là khoảng thời gian cũ và khoảng thời gian mới. Một event khác sẽ luôn kiểm tra nếu biến thời gian mới lớn hơn thời gian cũ là 2 tiếng thì ngay lập tức bật switch hoa nở.
    Hình như có script thời gian thực của máy tính đó. I think it's possible to be done, but it would be tired to do so. :]]
  • Black FaceBlack Face Posts: 424Registered
    Vậy còn tạo một biến lấy giá trị số thời gian hiện tại trước khi tắt game và một lệnh điều kiện luôn chạy với công dụng kiểm tra xem nếu biến thời gian đó hơn x tiếng thì thực hiện hành động abc thì sao nhỉ? Ví dụ như một bông hoa cần 2 tiếng để nở. Một event sẽ luôn luôn chạy với công dục lấy giá trị thời gian hiện tại của máy. Lúc này nếu tắt game và đợi 2 tiếng sau rồi mở game lại, ta sẽ có hai giá trị là khoảng thời gian cũ và khoảng thời gian mới. Một event khác sẽ luôn kiểm tra nếu biến thời gian mới lớn hơn thời gian cũ là 2 tiếng thì ngay lập tức bật switch hoa nở.
    Hình như có script thời gian thực của máy tính đó. I think it's possible to be done, but it would be tired to do so. :]]

    Nếu trong 2 tiếng đó, tắt máy tính thì biến chạy bằng gì
  • sanggameboysanggameboy Posts: 1,943Registered
    Black Face wrote:
    Nếu trong 2 tiếng đó, tắt máy tính thì biến chạy bằng gì

    Lúc thoát game, biến 1 sẽ là thời gian lúc máy thoát.
    Lúc mở lại game, một biến 2 sẽ lấy giá trị hiện tại của máy.
    Một biến thứ 3 sẽ luôn kiểm tra xem nếu biến 2 lớn hơn biến 1 x tiếng, thì thực hiện hành động gì đó.
    S nghĩ sẽ thay thế lệnh "thoát game" trong menu thành "chạy một common event" nào đó. 
    Common Event này sẽ là biến 1 > save game > thoát game. 
    Kiểu này nó không thực sự chạy trong lúc tắt máy như game online, mà nó lấy số thời gian cũ và mới rồi so sánh với nhau.
  • DeathDeath Posts: 732Registered, Moderators
    Black Face wrote:
    Nếu trong 2 tiếng đó, tắt máy tính thì biến chạy bằng gì

    Lúc thoát game, biến 1 sẽ là thời gian lúc máy thoát.
    Lúc mở lại game, một biến 2 sẽ lấy giá trị hiện tại của máy.
    Một biến thứ 3 sẽ luôn kiểm tra xem nếu biến 2 lớn hơn biến 1 x tiếng, thì thực hiện hành động gì đó.
    S nghĩ sẽ thay thế lệnh "thoát game" trong menu thành "chạy một common event" nào đó. 
    Common Event này sẽ là biến 1 > save game > thoát game. 
    Kiểu này nó không thực sự chạy trong lúc tắt máy như game online, mà nó lấy số thời gian cũ và mới rồi so sánh với nhau.

    giá trị hiện tại của máy <- Thớt đang bàn về cách để không sử dụng cái này vì cái này người dùng có thể tự thay đổi được mà (chỉnh đồng hồ máy tính)
  • sanggameboysanggameboy Posts: 1,943Registered
    Oooh, my bad :]]
  • Black FaceBlack Face Posts: 424Registered
    Theo mình thì cứ nên lấy time online đi, offline trong máy thì kiểu gì cũng có thể thay đổi được thôi, đó là cách đơn giản nhất để lấy thời gian thực, không việc gì phải khổ để tìm cách khác.
  • Dang_KhoaDang_Khoa Posts: 3,861Administrators
    Candy Crush Saga cũng bị cheat theo cách này :3
  • bate7a1bate7a1 Posts: 317Registered
    Em nghĩ là chỉ có cách trừng phạt người chơi là khóa acc khi biết có hành vi thay đổi thời gian
    Mỗi lần thoát game thì lưu thời gian vào 1 mảng 10 mốc thời gian gần nhất
    Ví dụ thoát game lúc 10h nhưng sau đó thay đỗi sang 12h vào game nếu người chơi thoát ra lúc 14h thì lưu lại 14h
    nếu mà có mạng thì check ngay giờ lại nếu có sự sai xót giờ lớn thì khóa acc
    nếu mà người chơi đỗi giờ lại ban đâu vào lại game thì sẽ có sự sai lệch thời gian
    Trừ khi người chơi off sau hai tiếng(là khoảng thời gian hack thì không sao, còn vào trong khoảng 2h sau khi off lúc 14h thì sẽ bị khóa ngay
    mọi người thấy cách này thế nào, cái này em nghĩ cũng lâu rồi cũng định ap dụng vào game mình nhưng chưa có dịp xài tới
  • BướmBướm Posts: 1,220Registered
    Thực ra thời gian thực chỉ để dùng vào mục đích sinh lời là chính, nếu là game bt thì có thể giới hạn bằng cách bắt người chơi làm nv hay thực hiện việc gì đó thay cho thời gian cần để hoàn thành công việc, cho đến giờ thấy game off duy nhất có tính thời gian thực có lẽ là cái Witcher dở hơi
Sign In or Register to comment.