Thread: Quad Lua
View Single Post
Old 09-29-2010, 06:33 AM   #6
zE
Pew pew ze beams
 
zE's Avatar
 
Join Date: Jan 2008
Gametype: Gathers
Affiliations: pew pew
Posts Rated Helpful 11 Times
So basicly im still working on this lua, that bridget and squeek basicly did all , but im kinda bored of boring always the same dudes to help me with this, so if anyone knows plz help : D

The last lua crashed the server, so I had with help redo the last part.

PHP Code:
-----------------------------------------------------------------------
----------
Lua by Bridget and Squeek
-----------------------------------------------------------------------

---
HUD icons and Quad Power

settings 
= {
    
red_vtf        "quad.vtf",
    
red_quad    4,
    
blue_vtf    "blue.vtf",
    
blue_quad    1,
    
green_vtf    "easy.vtf",
    
green_quad    4,
    
yellow_vtf    "double.vtf",
    
yellow_quad    2
}

function 
returnInformation(team)
    
= {vtf="",quad=0}
    if 
team == Team.kRed     then    i["vtf"]=settings["red_vtf"];        i["quad"]=settings["red_quad"]             end
    
if team == Team.kBlue     then    i["vtf"]=settings["blue_vtf"];        i["quad"]=settings["blue_quad"]             end
    
if team == Team.kGreen     then     i["vtf"]=settings["green_vtf"];        i["quad"]=settings["green_quad"]         end
    
if team == Team.kYellow then     i["vtf"]=settings["yellow_vtf"];    i["quad"]=settings["yellow_quad"]        end
    
return i
end

---Remove Grenades and stuff at spawn

function player_spawn(player_entity)
    
local player CastToPlayer(player_entity)
    
    -- 
Ammo removal
    
if player:GetClass() == Player.kDemoman then
        player
:RemoveWeapon("ff_weapon_detpack")
        
player:RemoveAmmo(Ammo.kGren24)
    elseif 
player:GetClass() == Player.kPyro then
            player
:RemoveAmmo(Ammo.kGren24)
    elseif 
player:GetClass() == Player.kEngineer then
        player
:RemoveAmmo(Ammo.kGren24)
    elseif 
player:GetClass() == Player.kMedic then
        player
:RemoveAmmo(Ammo.kGren14)
    elseif 
player:GetClass() == Player.kScout then
        player
:RemoveAmmo(Ammo.kManCannon1)
    
end

---Remove HUD icon     

    i 
returnInformation(player:GetTeamId())
    
RemoveHudItem(player"quad_icon");
    if 
i["quad"] > 1 then
        AddHudIcon
(playeri["vtf"], "quad_icon"511948480)
    
end
    
return true
end

function player_switchteam(playerold, new)
    
RemoveHudItem(player"quad_icon"); return true
end

---Quad and no damage except for trigger_hurt

function player_ondamageplayerdamageinfo )

    -- if 
no damageinfo do nothing
    
if not damageinfo then return end

    
-- remove all fall damage
    
if damageinfo:GetDamageType() == Damage.kFall then
        damageinfo
:SetDamage(0)
        return
    
end

    
-- Entity that is attacking
    local attacker 
damageinfo:GetAttacker()

    -- If 
no attacker do nothing
    
if not attacker then return end

    local player_attacker 
nil

    
-- get the attacking player
    
if IsPlayer(attackerthen
        attacker 
CastToPlayer(attacker)
        
player_attacker attacker
    
elseif IsSentrygun(attackerthen
        attacker 
CastToSentrygun(attacker)
        
player_attacker attacker:GetOwner()
    elseif 
IsDetpack(attackerthen
        attacker 
CastToDetpack(attacker)
        
player_attacker attacker:GetOwner()
    elseif 
IsDispenser(attackerthen
        attacker 
CastToDispenser(attacker)
        
player_attacker attacker:GetOwner()
    else
        return
    
end

    
-- if still no attacking player after all thatforget about it
    
if not player_attacker then return end

    
-- If attacker is also the victim (self damage)
    if 
player:GetId() == player_attacker:GetId() then
        
-- change push force
        local damage_force 
damageinfo:GetDamageForce()
        
returnInformation(player:GetTeamId())
        
damageinfo:SetDamageForce(Vector(damage_force.x*i["quad"], damage_force.y*i["quad"], damage_force.z*i["quad"]))
        -- 
set damage to zero
        damageinfo
:SetDamage(0)
        return
    
end

    
-- for everyone else, use attacker's quad force
    -- change push force
    local damage_force = damageinfo:GetDamageForce()
    i = returnInformation(player_attacker:GetTeamId())
    damageinfo:SetDamageForce(Vector(damage_force.x*i["quad"], damage_force.y*i["quad"], damage_force.z*i["quad"]))
    -- set damage to zero
    damageinfo:SetDamage(0)
    
    if player:GetTeamId() == Team.kGreen then Resupply(player) end
 
end

--- Auto reload Green Team on damage

function player_ondamage( player_entity, damageinfo )
    if IsPlayer(player_entity) then
        local player = CastToPlayer(player_entity)
        if player:GetTeamId() == Team.kGreen then ApplyToPlayer(player, { AT.kReloadClips }) end
    end
end 
But im having an issue with the last part -- Auto reload for Green Team on damage
That code like that makes the quad do damage, and I dont want damage : <, im sure its that part of code of it that does it because I tested it with it and wihout it : D

Last edited by zE; 09-29-2010 at 06:45 AM.
zE is offline   Reply With Quote