/luv8

Panorama V8 support for lua

Primary LanguageLuaThe UnlicenseUnlicense

luv8 - Panorama V8 support for lua

Will there be cs2 support

yes.

build

  1. download and install moonc compiler
  2. ./moonc panorama.moon

install

ev0lve

primordial

fatality

legendware

pandora

gamesense

memesense

  • buggy & may crash from time to time
  • use the prebuilt version or build one yourself

nixware

neverlose

rifk7

other cheats

  • luv8 currently only provides compatibility with ev0lve, primordial, pandora, legendware, memesense, fatality, gamesense, nixware, neverlose, and rifk7, if you wish to use it on other cheats feel free to add more to the compatibility layer and/or contribute code by pr. Contributions are welcomed.

API

supports both gamesense & neverlose style api

panorama.loadstring

panorama.loadstring(js_code: string[, panel: string]) : function

compiles the given Javascript code inside the v8::Context of the specified panel and returns a function handle for calling the compiled code

panorama.open

panorama.open([panel: string]) : table (V8PersistentProxy)

opens a handle to the v8 global object of the v8::Context of the specified panel and returns a V8PersistentProxy

panorama.flush

panorama.flush() : nil

removes all globalized references

panorama.RunScript

panorama.RunScript(js_code: string[, panel: ffi::void*[, xml_context: string]]) : ffi::int

executes the given Javascript code with CUIEngine::RunScript()

panorama.GetPanel

panorama.GetPanel(panel: string[, fallback: string]): ffi::void* (UIPanel)

returns a pointer to the given panel name, raises error upon failure

panorama.GetIsolate

panorama.GetIsolate(): Isolate

returns the Isolate object

contributions

  • @dhdjSYS
    • reverse engineering
    • implemented panel array traverse & get target panel
    • implemented data conversion from lua to v8js
    • implemented data conversion from v8js to lua
    • implemented function argument conversion from lua to v8js
    • implemented v8js function call (includes calling v8js member functions of an object with parent)
    • implemented compatibility layer
    • implemented safe_error
    • implemented try catch
    • implemented panorama.loadstring(), panorama.open(), panorama.RunScript(), panorama.GetPanel()
    • fixed random bugs and created more of them
  • @Shir0ha
    • initiated & named the project
    • reverse engineering
    • initial implementation of V8ProxyValue (which eventually was rewritten to V8PersistentProxy)
    • implemented globalizeReference
    • implemented HandleScope
    • implemented Script\Compile (recreated CUIEngine::RunScript in lua)
    • implemented V8Local, V8MaybeLocal, V8Value in lua
    • rewritten & formated the code in moonscript
    • created at least 1 bug in each and every feature and fixed some of them
  • @nezu
    • added gamesense support
  • @lztqq
    • added nixware support
    • added neverlose support
  • ev0lve
    • the development of this library was 99% done on ev0lve.xyz
  • primordial

some other stuff