Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 29/11/19 in Posts

  1. Coroutines are used to pause execution of a routine (a section of the code) whilst waiting for a callback, for example. They aren't a replacement for timers, but rather an addition. If you want to pause and then resume coroutines after some time elapses, you'd be using setTimer as well. If you want temporary vips and bans you'd be best using traditional data storage (XML files, JSON files, SQL, etc. -- preferably SQL) with timestamps to mark end-time and setTimer to trigger the function that removes the vip status or ban. That way you can restart timers when your resource restarts for any reason, since you know the current timestamp and end-timestamp, you can calculate how long setTimer you need.
    2 points
  2. Limit is used to collect a maximal amount of results. This also allows your database to stop searching when you got the result you need. If you do not apply a limit. The database will keep searching (for example an account) even after finding it. Depending of the location of the data, you can reduce search time from 0% to 99%. LIMIT 1 If search based on row numbers: > 99% = target data is on the first row (the rest can be skipped) > 0% = target data is on the last row -------------- But in the example of MrTasty it is used to make sure that the returned table length can either be 0 or 1. Just to keep things simple. if #result == 1 then
    1 point
  3. 1 point
  4. If you want to get a listing of existing tables, you need to query the hidden sqlite_master table: SELECT name FROM sqlite_master WHERE type='table' If you want to know if a specific table exists: SELECT name FROM sqlite_master WHERE type='table' AND name=? LIMIT 1 sending the table name as a parameter. The no. of returned rows will be 1 if the table exists.
    1 point
  5. Faça o dxDraw do retângulo usando posições e escalas de variáveis. Dai ao clicar vc apenas altera o valor dessas variáveis.
    1 point
  6. It is to me unclear what format the algorithm could be beside tea. So I personally probably wouldn't use it yet, unless I know all the options. But to really answer your question, I don't think there is a big difference at the very end. You are still having 1 key and both functions are provided by MTA. More layers of protection will not help you unless you can make sure that the steps are harder to trace back. One way is to combine client storage with a network message. 1 extra step to make it harder The client has a RAW key. The server has a key. The server sends his key. The client just before decrypting uses the server key to change the RAW key in to the real key. This way the client can't decrypt the files without being connected to your game server. (at least if the key isn't network sniffed before) Why should the client have a key in the first place? If the server sends the only key every time over, there is more risk in it being network sniffed. And don't forget you can use the player serial as salt. This information can't be network sniffed when it is only implemented clientside. 3 risks you have to counter Wiki Packet analyzer Wiki Cheat engine (or something similar) Wrapper functions. Make sure that the script can only be functional with your serverside.
    1 point
×
×
  • Create New...