﻿
MISI
build v0.4.1, 9 apr 2018 by DenLover
MD5 817cbba67a2eb2bfa4cfd0c3cccae3aa MISI.ASI


Changes history:

v0.1 25 jan 2018 
No public version

* Start MISI project       
* Head developing and testing time...          
* Integrated library LUA 5.3.4         
* Writen documentation

v0.1a 12 feb 2018 
MD5 fb67add3e1017bc64802b83da250dc25  MISI.ASI

* First alpha version.

v0.2b 24 feb 2018 
MD5 34cb3cbb1167ed73b5278285803101e1 MISI.ASI
					
* All methods are rewritten
* Fixed bugs in methods
* Added new methods
* Improved stability
* Removed (from MISI.log) debugging information about the thread number
* Added info "Virtual key codes" in MISI/vk_codes.inc
* Added info "Game key codes" in MISI/gk_codes.inc
* The way of working with as an object (ped, player, car)
* New system of structures. All method GET/SET "Player" rename to "Ped"
* Added method GET ped struct of ID. Limit: 1 to 65535
* Now if the ReadProcessMemory fails to read the address, it returns 0 (and not nil as before)

v0.2.1b 26 feb 2018 
MD5 c7f52fd728f676857b8fd87174409123 MISI.ASI

* Added method GET for "Player": 
  GetPlayerMoney(player)
* Added method SET for "Player":  
  SetPlayerMoney(player, value)
* Added method GET for "Car": 
  GetCarModel(car)
  GetCarColor(car)
  GetCarEngine(car)
  GetCarDoorLock(car)
  GetCarEmergySiren(car)
  GetCarHorn(car)
* Added method SET for "Car": 
  SetCarModel(car, model) 
  SetCarColor(car, color)
  SetCarEngine(car, state)
  SetCarDoorLock(car, state)
  SetCarEmergySiren(car, state)
  SetCarHorn(car, state)
 
v0.2.2b 22 mar 2018
No public version

* Fixed methods: 
  GetPedCurrentWeaponID(ped)
  GetPedCurrentAmmo(ped)
  SetPedCurrentWeaponID(ped, id)
  SetPedCurrentAmmo(ped, ammo)
  GET methods returned 0, because they read the wrong address, and when the SET method was used, the game crashed
* Fixed? GetPedID(ped)
  The method re-generated the value in the size of 1 byte, from 2 bytes, verified in version 0.2.1b
* Fixed methods:
  GetPedAngle(ped)
  GetCarAngle(car)
  SetPedAngle(ped, angle)
  SetCarAngle(car, angle)
  The methods returned/recorded the opposite meaning of the angle if the character/car was rotated to the west or east side
* Added method GetMaxPlayers() for "Player"
  The method returns the number of players in the game
  Note: The value does not decrease when the player leaves. Range of values from 1 to 6
* Added method GetPedTouch(ped) for "Ped" thanks to BeebBop for found address
  The method returns the structure of all the peds touched to the passed ped
  Note: The return variable continues to hold a reference to the last touched ped
  To fix a one-time touch, you must zero the value
* Added method GetPedFromPoint(x, y, z, range) for "Ped"
  Looks for all peds that are in the specified coordinates in a given radius
  Returns an array (table in LUA) consisting of structures ped
  If no ped was found, returns an array with a single value of 0
* Added method GET/SET for "Ped":
  GetPedCamPos(ped)
  SetPedCamPos(ped, x, y, z)
  Get/Set the current coordinates for the ped camera.
  This method is similar to the method GetPlayerGameCam(player) and SetPlayerGameCam(player, x, y, z)
  but works with the structure of ped
* Added method GET/SET for "Car":
  GetCarArmor(car)
  GetCarDecal(car)
  SetCarArmor(car, value)
  SetCarDecal(car, decal)
  Get/Set the car protection against the specified attack type: bullets, rocket, fire
* Added method GET/SET for "Light":
  GetLightPos(light)
  GetLightColor(light)
  GetLightIntensity(light)
  GetLightRange(light)
  SetLightPos(light, x, y, z)
  SetLightColor(light, red, green, blue)
  SetLightIntensity(light, value)
  SetLightRange(light, range)
  Methods for working with light.
* Added method GET/SET for "Arrow":
  GetArrowPos(arrow)
  GetArrowColor(arrow)
  GetArrowModel(arrow)
  SetArrowPos(arrow, x, y, z)
  SetArrowColor(arrow, color)
  SetArrowModel(arrow, model)
  Methods for working with the arrow
  
v0.3.1b 24 mar 2018
MD5 8b1925daa168ccfb96368cfb9f598157 MISI.ASI
  
* Basic LUA modules are included (in previous versions they were disabled): io, package, debug
  Now you can read/write in a file using the io class
  It also became possible to connect modules through the require(modulename)
  More information about this team and other teams can be found in the LUA documentation https://www.lua.org/manual/5.3
* Added method for "System":
  IsReadPointer(address, size)
  IsWritePointer(address, size)
  The method checks the access for reading/writing the memory area, if available returns 1 if there is no nil
* Renamed GetGameOffset() method in GetGameHandle()
* Added a macro method in the "System" module:
  GetGameOffset()
* Added GET/SET method for the game:
  SetPoliceSkip(Status)
  SetMedicSkip(Status)
  SetFiremanSkip(Status)
  GetRiotMode()
  SetRiotMode(mode)
* The remote method GetPedSpec(ped)
* Changed method SetPedSpec(ped) to RemovePedSprite(pedal)
  The method deletes the sprite (and runs the garbage collector?)
* Added the GetSCROffset() method for "Resurces"
  The method returns the downloaded * .SCR file. Thanks Sector for the submitted address
* Added sciprt STAGEC.SCR
  STAGEC is an experimental "Stage Constructor" for creating/deleting game objects: Ped, Car, Obj, Sound, Light, etc
  The level constructor is a GBHScript compiled into a binary * .SCR
  MISI accesses the constructor via methods: ReadProcessMemory(address, size) and
  WriteProcessMemory(address, value, size)
* Added module STAGEC.LUA
  The module contains all the methods for controlling the STAGEC.SCR

v0.3.2b 26 mar 2018
No public version

* Minor changes in the script loader
* Minor changes in READMEEN.TXT and READMERU.TXT
* Added description of methods to documentation:
  GetPedCurrentCarDoorID(ped)
  GetPedFromPoint(x, y, z, range)
  SetPedCurrentCarDoorID(ped, doorid)  
  DeletePedSprite(ped)
  GetCarFromPoint(x, y, z, range)

v0.3.3b 30 mar 2018
MD5 7f1844637131252def3e8cb70166aba2 MISI.ASI

* Minor changes in the script loader. Added delay (100 ms) before downloading the script thread
* Added text Contributers in READMEEN.TXT and READMERU.TXT
* Added occupation type in Docs/ped.inc
* Fixed example buldings.txt
* All methods in the modules are placed in classes (LUA tables)
* Changed license ELUA to Public Domain
* Source codes are open

v0.4.1 9 apr 2018
MD5 817cbba67a2eb2bfa4cfd0c3cccae3aa MISI.ASI

* Improved stability. lua_newthread() is replaced by luaL_newstate(). The main lua state was removed. 
  Assynchronous creation of new lua thread from the main state, caused frequent errors due to which at 
  the start the scripts flied. Now every script is a new lua state. 
  It is recommended not to forget to add wait(ms) to the body of the loop of your script to avoid friezes in the game.
* Fixed (in module STAGEC.LUA) method Create_ added math.floor
* Fixed methods: GetArrowPos(arrow), SetArrowPos(arrow, x, y, z)
  Before this method worked only with variables from GetPedPos(ped), GetPosCar(car) and it was not possible to create an object in the specified coordinates
* Fixed (in module STAGEC.LUA) algorithm for tileid in methods: SetBlockSide and SetBlockLID
  Added calculation of the tile sheet (1 page = 256 tiles) until this maximum tile's id could be 255
* Removed method GetPedSprite(ped)
  Removed because of small benefit. You can still get the structure of the sprite through ReadProcessMemory(address, size)
* Added method for "Ped" IsPedDefined(ped)
  The method will check if a ped is created
* Changed method GetPlayerStruct(ped) to GetPedPlayer(ped)
  The method still returns the structure of the player from the ped. Do not forget to rename this method in your scripts!
* All MISI methods are now protected from the null structure and the nil value from the LUA.
  If these values ​​were passed to the method, it is not executed and returns false. Note: the return value
  depends on the method, somewhere it is 0, 65535, false, or nil. What exactly are the values ​​returned by the methods read in
  documentation DOCEN.TXT and DOCRU.TXT
* The description of checked objects is added to the obj.inc
* Added method in module obj.lua obj.IsValidModel (model)
  The method will check (on the array) the validation model or not
  Checking sifts models that paint the game and that are not visible when you create
* Changed the speed in the methods GetPedSpeed(ped), GetPedMaxSpeed(ped), SetPedSpeed​​(ped, speed), SetPedMaxSpeed(ped, speed)
  Now the value has a floating point type (divisible/multiplied by 256): 0.8 - slow step (pedestrian), 2.0 - fast step (player), 4.0 - Run (player)
* Changed the speed in the methods SetCarDirection(car, x, y), GetCarDirection(car), GetCarSpeed(car)
  Now the value has a floating-point type (divisible/multiplied by 16384)
* Updated all modules
* Updated STAGEC.SCR (STAGEC.MIS)
* Added file STAGEC.MMP