(LeagueOF Legends) LViewLoL C++ with Python scripting External platform open source

wytrom

Заглянувший
Заглянувший
wytrom

wytrom

Заглянувший
Заглянувший
Сообщения
33
Реакции
47
The platform is external using ReadProcessMemory and it uses python based scripting

Some points regarding this project:
  • Each script receives the game state (champions, minions, turrets etc) at each iteration and some interfaces one for ui and one for game related stuff like world2screen functions.
  • UIs are made using imgui
  • Overlays are made by drawing primitives from imgui (circles, rects, lines etc)
  • Supports drawing on the minimap too using world_to_minimap(position) function
  • There is also an implementation for a circle in world space
  • You can also draw images
  • Some unit/spell data is unpacked from the game directly (taken from communitydragon). This is made for performance reasons, also some of that data cannot be loaded from memory. This data can be updated with the scripts from UtilityScripts
  • The engine reads mobs, champions, turrets, missiles and other named objects like shaco boxes. It also reads champion spells, champion items.
  • Performance is high. On my machine the only bottle neck is the memory reading which can take 3ms in worst cases, gameplay scripts take below 1ms. There is a Benchmarking tab in the UI to check this.

Some already implemented scripts:
  • Orbwalker: also used for last hitting
  • Drawings: draws basic atk range, turret range and missiles
  • Auto Spells: casts automatically spells
  • Champ tracker: tracks a champion around the map
  • Map Awareness: alerts you when champions get close, shows where champions were last seen etc
  • Object Viewer: this is for dev purposes, you can browse objects ingame with this
  • Spell tracker: tracks spells and cooldowns
  • Vision tracker: tracks traps, wards and clones
  • TwistedFate Card Picker: picks cards for twisted fate
  • Auto Smite: auto smites hovered object
Building

You need Visual Studio 2017 to compile this. Dependencies:

  1. python39: dlls and includes are already in project. You need to install python 3.9 for 32bits (Make sure you check the Add to PATH checkbox in the installer: )
  2. aws-lambda: dlls and includes are already in project (was used for authentication)
  3. directx 11: Must install directx end user runtimes: .Extract this and run dxsetup
  4. boost::python. Due to the size of the boost libraries you must compile boost::python yourself:
    1. Download boost 1.75.0
    2. Unarchive it in LView/boost
    3. Go into LView/boost
    4. Run bootstrap.bat
    5. Run b2 --with-python link=shared toolset=msvc-14.1 address-model=32 variant=release
  5. You are done now compile the app on Release x86 (you need to compile boost::python on debug to compile on debug, which I didn't).
Setup
All LView & LView python scripts configurations reside in config.ini file. First you must set the path to the scripts folder with the following config (you can find the config.ini in LView folder):

::scriptsFolder=\<folder\>





1615417657486.png
 

Сверху Снизу