Examples

This page is dedicated to lua example scripts

Examples

Watermark

-- Capture table insantances
local Render    = fatality.render
local Config    = fatality.config
local Menu      = fatality.menu
local Callbacks = fatality.callbacks

-- Add a config item
local CheckboxConfigItem = Config:add_item( "Example Watermark Item", 0)
-- Add a checkbox
Menu:add_checkbox( "Example Watermark", "Visuals", "Misc", "Various", CheckboxConfigItem )

-- Get the colors of the menu
local BorderColor       = csgo.color(58, 36, 107, 255)
local BackgroundColor   = csgo.color(26, 22, 64, 200)

-- Create a font
local Verdana = Render:create_font( "verdana", 12, 0, 0 )

-- Set how many pixels of spacing we want 
local Spacing = csgo.vector2(10, 10)
local function OnPaint()
    -- Check if our checkbox is on (get_bool() == true) 
    -- If not then do nothing and return
    if not CheckboxConfigItem:get_bool() then
        return
    end
    -- Get our screensize
    local ScreenSize = Render:screen_size()
    -- Calculate the text size of the cheat name
    local TextSize = Render:text_size( Verdana, "Fatality.win" )

    -- Calculate our text size with spacing
    local Size =  csgo.vector2(TextSize.x + (3 * 2), TextSize.y + (3 * 2))
    local Position = csgo.vector2(ScreenSize.x - Size.x - Spacing.x, Spacing.y)

    -- Render background
    Render:rect_filled( Position.x, Position.y, Size.x, Size.y, BackgroundColor)
    Render:rect( Position.x, Position.y, Size.x, Size.y, BorderColor)

    -- Render our text
    Render:text( Verdana, Position.x + 3, Position.y + 3, "Fatality.win", csgo.color(255, 255, 255, 255) )
end

-- Add "paint" to our callback
Callbacks:add( "paint", OnPaint )

Local hurt log

local Events        = csgo.interface_handler:get_events()
local EntityList    = csgo.interface_handler:get_entity_list()
local Cvar          = csgo.interface_handler:get_cvar()
local Callbacks     = fatality.callbacks

local function OnPlayerHurt(Event)
    -- Get attacker and victim id by calling get_int with aspect name
    local AttackerUserID    = Event:get_int("attacker")
    local VictimUserID      = Event:get_int("userid")

    -- Use id to get csgo.player from user id
    local AttackerPlayer    = EntityList:get_player_from_id(AttackerUserID)
    local VictimPlayer      = EntityList:get_player_from_id(VictimUserID)
    -- Get local player
    local LocalPlayer       = EntityList:get_localplayer()

    -- Check if we arent the attack but we are the victim
    if AttackerPlayer:get_index() ~= LocalPlayer:get_index() and VictimPlayer:get_index() == LocalPlayer:get_index() then
        -- Get the damage done to us 
        local DamageDone = Event:get_int("dmg_health")
        Cvar:print_dev_console(string.format("Hit by %s for %i", AttackerPlayer:get_name(), DamageDone))
    end
end

-- function to be called when a game event is fired
local function OnGameEvent(Event)
    
    local EventName = Event:get_name()
    
    -- Check if we the event that is called is the event we want
    if EventName == "player_hurt" then
        OnPlayerHurt(Event)
    end
end

-- Add player_hurt to our event manager
Events:add_event("player_hurt")
-- Add our function to the events callback
Callbacks:add("events", OnGameEvent)

Last updated