--[[
*** author: xScatta
*** copyright ©
*** part of psw.gamemode
]]--
-- && server-side && --
local armyranksFullName = {
"Private",
"Private First Class",
"Specialist",
"Corporal",
"Sergeant",
"Staff Sergeant",
"Sergeant First Class",
"Master Sergeant",
"First Sergeant",
"Sergeant Major",
"Command Sergeant Major",
"Sergeant Major of the Army",
"Second Lieutenant",
"First Lieutenant",
"Captain",
"Major",
"Lieutenant Colonel",
"Colonel",
"Brigadier General",
"Major General",
"Lieutenant General",
"General",
"General of the Army",
"United States General"
}
function removeHexColor(text)
text = string.gsub(text,"#%x%x%x%x%x%x", "")
return text
end
function getPlayerAdditionalRank(plr,rank)
if getElementData(plr,"data:specialtext") then
for key, value in ipairs(getElementData(plr,"data:specialtext")) do
if ( value == rank ) or ( removeHexColor(value) == rank ) then
return true
end
end
end
end
function getPlayerFromPartialName(name)
local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil
if name then
for _, player in ipairs(getElementsByType("player")) do
local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower()
if name_:find(name, 1, true) then
return player
end
end
end
end
function promotePlayer(plr,cmd,name)
if getPlayerAdditionalRank(plr,"Elite") then
local target = getPlayerFromPartialName(name)
if target then
if getElementData(target,"temp:playing") and getElementData(target,"data:armyrank") then
local rank = getElementData(target,"data:armyrank")
if ( rank + 1 ) < 23 then
setElementData(target,"data:armyrank",rank + 1)
outputChatBox("*Awansowa?es ?o?nierza: "..getPlayerName(target).." na rang?: "..armyranksFullName[rank+1],plr,255,255,255,true)
outputChatBox("*Awansowa?es na rang?: "..armyranksFullName[rank+1],target,255,255,255,true)
end
end
end
end
end
addCommandHandler("pp",promotePlayer)
function demotePlayer(plr,cmd,name)
if getPlayerAdditionalRank(plr,"Elite") then
local target = getPlayerFromPartialName(name)
if target then
if getElementData(target,"temp:playing") and getElementData(target,"data:armyrank") then
local rank = getElementData(target,"data:armyrank")
if ( rank - 1 ) > 0 then
setElementData(target,"data:armyrank",rank - 1)
outputChatBox("*Zdegradowa?es ?o?nierza: "..getPlayerName(target).." na rang?: "..armyranksFullName[rank-1],plr,255,255,255,true)
outputChatBox("*Zosta?es zdegradowany na rang?: "..armyranksFullName[rank-1],target,255,255,255,true)
end
end
end
end
end
addCommandHandler("dp",demotePlayer)
____________________________
kto? da wz?r?