mirror of
https://github.com/sergeyyarkov/altv-copchase-mod.git
synced 2026-10-11 10:19:42 +03:00
admin panel
This commit is contained in:
parent
1a90fad8ec
commit
960fb40a3f
863
client/ui.mjs
863
client/ui.mjs
@ -13,13 +13,813 @@ const UIMenuCheckboxItem = NativeUI.UIMenuCheckboxItem
|
||||
const Point = NativeUI.Point
|
||||
|
||||
const menuPos = new Point(1450, 150)
|
||||
const locations = ['airport', 'spawn', 'fibroof', 'epsilon', 'policestation', 'yankton']
|
||||
|
||||
let subMenuActive = false
|
||||
const locations = ['airport', 'fibroof', 'epsilon', 'policestation']
|
||||
const cars = `ninef
|
||||
ninef2
|
||||
blista
|
||||
asea
|
||||
asea2
|
||||
boattrailer
|
||||
bus
|
||||
armytanker
|
||||
armytrailer
|
||||
armytrailer2
|
||||
freighttrailer
|
||||
coach
|
||||
airbus
|
||||
asterope
|
||||
airtug
|
||||
ambulance
|
||||
barracks
|
||||
barracks2
|
||||
baller
|
||||
baller2
|
||||
bjxl
|
||||
banshee
|
||||
benson
|
||||
bfinjection
|
||||
biff
|
||||
blazer
|
||||
blazer2
|
||||
blazer3
|
||||
bison
|
||||
bison2
|
||||
bison3
|
||||
boxville
|
||||
boxville2
|
||||
boxville3
|
||||
bobcatxl
|
||||
bodhi2
|
||||
buccaneer
|
||||
buffalo
|
||||
buffalo2
|
||||
bulldozer
|
||||
bullet
|
||||
blimp
|
||||
burrito
|
||||
burrito2
|
||||
burrito3
|
||||
burrito4
|
||||
burrito5
|
||||
cavalcade
|
||||
cavalcade2
|
||||
policet
|
||||
gburrito
|
||||
cablecar
|
||||
caddy
|
||||
caddy2
|
||||
camper
|
||||
carbonizzare
|
||||
cheetah
|
||||
comet2
|
||||
cogcabrio
|
||||
coquette
|
||||
cutter
|
||||
gresley
|
||||
dilettante
|
||||
dilettante2
|
||||
dune
|
||||
dune2
|
||||
hotknife
|
||||
dloader
|
||||
dubsta
|
||||
dubsta2
|
||||
dump
|
||||
rubble
|
||||
docktug
|
||||
dominator
|
||||
emperor
|
||||
emperor2
|
||||
emperor3
|
||||
entityxf
|
||||
exemplar
|
||||
elegy2
|
||||
f620
|
||||
fbi
|
||||
fbi2
|
||||
felon
|
||||
felon2
|
||||
feltzer2
|
||||
firetruk
|
||||
flatbed
|
||||
forklift
|
||||
fq2
|
||||
fusilade
|
||||
fugitive
|
||||
futo
|
||||
granger
|
||||
gauntlet
|
||||
habanero
|
||||
hauler
|
||||
handler
|
||||
infernus
|
||||
ingot
|
||||
intruder
|
||||
issi2
|
||||
Jackal
|
||||
journey
|
||||
jb700
|
||||
khamelion
|
||||
landstalker
|
||||
lguard
|
||||
manana
|
||||
mesa
|
||||
mesa2
|
||||
mesa3
|
||||
crusader
|
||||
minivan
|
||||
mixer
|
||||
mixer2
|
||||
monroe
|
||||
mower
|
||||
mule
|
||||
mule2
|
||||
oracle
|
||||
oracle2
|
||||
packer
|
||||
patriot
|
||||
pbus
|
||||
penumbra
|
||||
peyote
|
||||
phantom
|
||||
phoenix
|
||||
picador
|
||||
pounder
|
||||
police
|
||||
police4
|
||||
police2
|
||||
police3
|
||||
policeold1
|
||||
policeold2
|
||||
pony
|
||||
pony2
|
||||
prairie
|
||||
pranger
|
||||
premier
|
||||
primo
|
||||
proptrailer
|
||||
rancherxl
|
||||
rancherxl2
|
||||
rapidgt
|
||||
rapidgt2
|
||||
radi
|
||||
ratloader
|
||||
rebel
|
||||
regina
|
||||
rebel2
|
||||
rentalbus
|
||||
ruiner
|
||||
rumpo
|
||||
rumpo2
|
||||
rhino
|
||||
riot
|
||||
ripley
|
||||
rocoto
|
||||
romero
|
||||
sabregt
|
||||
sadler
|
||||
sadler2
|
||||
sandking
|
||||
sandking2
|
||||
schafter2
|
||||
schwarzer
|
||||
scrap
|
||||
seminole
|
||||
sentinel
|
||||
sentinel2
|
||||
zion
|
||||
zion2
|
||||
serrano
|
||||
sheriff
|
||||
sheriff2
|
||||
speedo
|
||||
speedo2
|
||||
stanier
|
||||
stinger
|
||||
stingergt
|
||||
stockade
|
||||
stockade3
|
||||
stratum
|
||||
sultan
|
||||
superd
|
||||
surano
|
||||
surfer
|
||||
surfer2
|
||||
surge
|
||||
taco
|
||||
tailgater
|
||||
taxi
|
||||
trash
|
||||
tractor
|
||||
tractor2
|
||||
tractor3
|
||||
graintrailer
|
||||
baletrailer
|
||||
tiptruck
|
||||
tiptruck2
|
||||
tornado
|
||||
tornado2
|
||||
tornado3
|
||||
tornado4
|
||||
tourbus
|
||||
towtruck
|
||||
towtruck2
|
||||
utillitruck
|
||||
utillitruck2
|
||||
utillitruck3
|
||||
voodoo2
|
||||
washington
|
||||
stretch
|
||||
youga
|
||||
ztype
|
||||
sanchez
|
||||
sanchez2
|
||||
scorcher
|
||||
tribike
|
||||
tribike2
|
||||
tribike3
|
||||
fixter
|
||||
cruiser
|
||||
BMX
|
||||
policeb
|
||||
akuma
|
||||
carbonrs
|
||||
bagger
|
||||
bati
|
||||
bati2
|
||||
ruffian
|
||||
daemon
|
||||
double
|
||||
pcj
|
||||
vader
|
||||
vigero
|
||||
faggio2
|
||||
hexer
|
||||
annihilator
|
||||
buzzard
|
||||
buzzard2
|
||||
cargobob
|
||||
cargobob2
|
||||
cargobob3
|
||||
skylift
|
||||
polmav
|
||||
maverick
|
||||
nemesis
|
||||
frogger
|
||||
frogger2
|
||||
cuban800
|
||||
duster
|
||||
stunt
|
||||
mammatus
|
||||
jet
|
||||
shamal
|
||||
luxor
|
||||
titan
|
||||
lazer
|
||||
cargoplane
|
||||
squalo
|
||||
marquis
|
||||
dinghy
|
||||
dinghy2
|
||||
jetmax
|
||||
predator
|
||||
tropic
|
||||
seashark
|
||||
seashark2
|
||||
submersible
|
||||
freightcar
|
||||
freight
|
||||
freightcont1
|
||||
freightcont2
|
||||
freightgrain
|
||||
tankercar
|
||||
metrotrain
|
||||
docktrailer
|
||||
trailers
|
||||
trailers2
|
||||
trailers3
|
||||
tvtrailer
|
||||
raketrailer
|
||||
tanker
|
||||
trailerlogs
|
||||
tr2
|
||||
tr3
|
||||
tr4
|
||||
trflat
|
||||
trailersmall
|
||||
velum
|
||||
adder
|
||||
voltic
|
||||
vacca
|
||||
suntrap
|
||||
submersible2
|
||||
dukes
|
||||
dukes2
|
||||
buffalo3
|
||||
dominator2
|
||||
dodo
|
||||
marshall
|
||||
blimp2
|
||||
gauntlet2
|
||||
stalion
|
||||
stalion2
|
||||
blista2
|
||||
blista3
|
||||
bifta
|
||||
speeder
|
||||
kalahari
|
||||
paradise
|
||||
btype
|
||||
jester
|
||||
turismor
|
||||
alpha
|
||||
vestra
|
||||
zentorno
|
||||
massacro
|
||||
huntley
|
||||
thrust
|
||||
rhapsody
|
||||
warrener
|
||||
blade
|
||||
glendale
|
||||
panto
|
||||
dubsta3
|
||||
pigalle
|
||||
monster
|
||||
sovereign
|
||||
innovation
|
||||
hakuchou
|
||||
furoregt
|
||||
miljet
|
||||
besra
|
||||
coquette2
|
||||
swift
|
||||
jester2
|
||||
massacro2
|
||||
ratloader2
|
||||
slamvan
|
||||
mule3
|
||||
velum2
|
||||
tanker2
|
||||
casco
|
||||
boxville4
|
||||
hydra
|
||||
insurgent
|
||||
insurgent2
|
||||
gburrito2
|
||||
technical
|
||||
dinghy3
|
||||
savage
|
||||
enduro
|
||||
guardian
|
||||
lectro
|
||||
kuruma
|
||||
kuruma2
|
||||
trash2
|
||||
barracks3
|
||||
valkyrie
|
||||
slamvan2
|
||||
swift2
|
||||
luxor2
|
||||
feltzer3
|
||||
osiris
|
||||
virgo
|
||||
windsor
|
||||
coquette3
|
||||
vindicator
|
||||
t20
|
||||
brawler
|
||||
toro
|
||||
chino
|
||||
faction
|
||||
faction2
|
||||
moonbeam
|
||||
moonbeam2
|
||||
primo2
|
||||
chino2
|
||||
buccaneer2
|
||||
voodoo
|
||||
Lurcher
|
||||
btype2
|
||||
verlierer2
|
||||
nightshade
|
||||
mamba
|
||||
limo2
|
||||
schafter3
|
||||
schafter4
|
||||
schafter5
|
||||
schafter6
|
||||
cog55
|
||||
cog552
|
||||
cognoscenti
|
||||
cognoscenti2
|
||||
baller3
|
||||
baller4
|
||||
baller5
|
||||
baller6
|
||||
toro2
|
||||
seashark3
|
||||
dinghy4
|
||||
tropic2
|
||||
speeder2
|
||||
cargobob4
|
||||
supervolito
|
||||
supervolito2
|
||||
valkyrie2
|
||||
tampa
|
||||
sultanrs
|
||||
banshee2
|
||||
btype3
|
||||
faction3
|
||||
minivan2
|
||||
sabregt2
|
||||
slamvan3
|
||||
tornado5
|
||||
virgo2
|
||||
virgo3
|
||||
nimbus
|
||||
xls
|
||||
xls2
|
||||
seven70
|
||||
fmj
|
||||
bestiagts
|
||||
pfister811
|
||||
brickade
|
||||
rumpo3
|
||||
volatus
|
||||
prototipo
|
||||
reaper
|
||||
tug
|
||||
windsor2
|
||||
lynx
|
||||
gargoyle
|
||||
tyrus
|
||||
sheava
|
||||
omnis
|
||||
le7b
|
||||
contender
|
||||
trophytruck
|
||||
trophytruck2
|
||||
rallytruck
|
||||
cliffhanger
|
||||
bf400
|
||||
tropos
|
||||
brioso
|
||||
tampa2
|
||||
tornado6
|
||||
faggio3
|
||||
faggio
|
||||
raptor
|
||||
vortex
|
||||
avarus
|
||||
sanctus
|
||||
youga2
|
||||
hakuchou2
|
||||
nightblade
|
||||
chimera
|
||||
esskey
|
||||
wolfsbane
|
||||
zombiea
|
||||
zombieb
|
||||
defiler
|
||||
daemon2
|
||||
ratbike
|
||||
shotaro
|
||||
manchez
|
||||
blazer4
|
||||
elegy
|
||||
tempesta
|
||||
italigtb
|
||||
italigtb2
|
||||
nero
|
||||
nero2
|
||||
specter
|
||||
specter2
|
||||
diablous
|
||||
diablous2
|
||||
blazer5
|
||||
ruiner2
|
||||
dune4
|
||||
dune5
|
||||
phantom2
|
||||
voltic2
|
||||
penetrator
|
||||
boxville5
|
||||
wastelander
|
||||
technical2
|
||||
fcr
|
||||
fcr2
|
||||
comet3
|
||||
ruiner3
|
||||
turismo2
|
||||
infernus2
|
||||
gp1
|
||||
ruston
|
||||
trailers4
|
||||
xa21
|
||||
caddy3
|
||||
vagner
|
||||
phantom3
|
||||
nightshark
|
||||
cheetah2
|
||||
torero
|
||||
hauler2
|
||||
trailerlarge
|
||||
technical3
|
||||
insurgent3
|
||||
apc
|
||||
tampa3
|
||||
dune3
|
||||
trailersmall2
|
||||
halftrack
|
||||
ardent
|
||||
oppressor
|
||||
vigilante
|
||||
bombushka
|
||||
alphaz1
|
||||
seabreeze
|
||||
tula
|
||||
havok
|
||||
hunter
|
||||
microlight
|
||||
rogue
|
||||
pyro
|
||||
howard
|
||||
mogul
|
||||
starling
|
||||
nokota
|
||||
molotok
|
||||
rapidgt3
|
||||
retinue
|
||||
cyclone
|
||||
visione
|
||||
z190
|
||||
viseris
|
||||
comet5
|
||||
raiden
|
||||
riata
|
||||
sc1
|
||||
autarch
|
||||
savestra
|
||||
gt500
|
||||
comet4
|
||||
neon
|
||||
sentinel3
|
||||
khanjali
|
||||
barrage
|
||||
volatol
|
||||
akula
|
||||
deluxo
|
||||
stromberg
|
||||
chernobog
|
||||
riot2
|
||||
avenger
|
||||
avenger2
|
||||
thruster
|
||||
yosemite
|
||||
hermes
|
||||
hustler
|
||||
streiter
|
||||
revolter
|
||||
pariah
|
||||
kamacho
|
||||
entity2
|
||||
cheburek
|
||||
jester3
|
||||
caracara
|
||||
hotring
|
||||
seasparrow
|
||||
flashgt
|
||||
ellie
|
||||
michelli
|
||||
fagaloa
|
||||
dominator3
|
||||
tyrant
|
||||
tezeract
|
||||
gb200
|
||||
issi3
|
||||
taipan
|
||||
blimp3
|
||||
mule4
|
||||
pounder2
|
||||
speedo4
|
||||
pbus2
|
||||
patriot2
|
||||
swinger
|
||||
terbyte
|
||||
oppressor2
|
||||
strikeforce
|
||||
menacer
|
||||
scramjet
|
||||
freecrawler
|
||||
stafford
|
||||
bruiser
|
||||
bruiser2
|
||||
bruiser3
|
||||
brutus
|
||||
brutus2
|
||||
brutus3
|
||||
cerberus
|
||||
cerberus2
|
||||
cerberus3
|
||||
clique
|
||||
deathbike
|
||||
deathbike2
|
||||
deathbike3
|
||||
deveste
|
||||
deviant
|
||||
dominator4
|
||||
dominator5
|
||||
dominator6
|
||||
impaler
|
||||
impaler2
|
||||
impaler3
|
||||
impaler4
|
||||
imperator
|
||||
imperator2
|
||||
imperator3
|
||||
issi4
|
||||
issi5
|
||||
issi6
|
||||
italigto
|
||||
monster3
|
||||
monster4
|
||||
monster5
|
||||
rcbandito
|
||||
scarab
|
||||
scarab2
|
||||
scarab3
|
||||
schlagen
|
||||
slamvan4
|
||||
slamvan5
|
||||
slamvan6
|
||||
toros
|
||||
tulip
|
||||
vamos
|
||||
zr380
|
||||
zr3802
|
||||
zr3803
|
||||
caracara2
|
||||
drafter
|
||||
dynasty
|
||||
emerus
|
||||
gauntlet3
|
||||
gauntlet4
|
||||
hellion
|
||||
issi7
|
||||
jugular
|
||||
krieger
|
||||
locust
|
||||
paragon
|
||||
paragon2
|
||||
peyote2
|
||||
nebula
|
||||
neo
|
||||
novak
|
||||
rrocket
|
||||
s80
|
||||
thrax
|
||||
zion3
|
||||
zorrusso
|
||||
asbo
|
||||
formula2
|
||||
formula
|
||||
furia
|
||||
imorgon
|
||||
jb7002
|
||||
kanjo
|
||||
komoda
|
||||
minitank
|
||||
outlaw
|
||||
rebla
|
||||
retinue2
|
||||
stryder
|
||||
sugoi
|
||||
sultan2
|
||||
vagrant
|
||||
vstr
|
||||
yosemite2
|
||||
zhaba`.split(/\r?\n/)
|
||||
const weapons = {
|
||||
melee: {
|
||||
dagger: '0x92A27487',
|
||||
bat: '0x958A4A8F',
|
||||
bottle: '0xF9E6AA4B',
|
||||
crowbar: '0x84BD7BFD',
|
||||
unarmed: '0xA2719263',
|
||||
flashlight: '0x8BB05FD7',
|
||||
golfclub: '0x440E4788',
|
||||
hammer: '0x4E875F73',
|
||||
hatchet: '0xF9DCBF2D',
|
||||
knuckle: '0xD8DF3C3C',
|
||||
knife: '0x99B507EA',
|
||||
machete: '0xDD5DF8D9',
|
||||
switchblade: '0xDFE37640',
|
||||
nightstick: '0x678B81B1',
|
||||
wrench: '0x19044EE0',
|
||||
battleaxe: '0xCD274149',
|
||||
poolcue: '0x94117305',
|
||||
stone_hatchet: '0x3813FC08'
|
||||
},
|
||||
handguns: {
|
||||
pistol: '0x1B06D571',
|
||||
pistol_mk2: '0xBFE256D4',
|
||||
combatpistol: '0x5EF9FEC4',
|
||||
appistol: '0x22D8FE39',
|
||||
stungun: '0x3656C8C1',
|
||||
pistol50: '0x99AEEB3B',
|
||||
snspistol: '0xBFD21232',
|
||||
snspistol_mk2: '0x88374054',
|
||||
heavypistol: '0xD205520E',
|
||||
vintagepistol: '0x83839C4',
|
||||
flaregun: '0x47757124',
|
||||
marksmanpistol: '0xDC4DB296',
|
||||
revolver: '0xC1B3C3D1',
|
||||
revolver_mk2: '0xCB96392F',
|
||||
doubleaction: '0x97EA20B8',
|
||||
raypistol: '0xAF3696A1',
|
||||
ceramicpistol: '0x2B5EF5EC',
|
||||
navyrevolver: '0x917F6C8C'
|
||||
},
|
||||
smg: {
|
||||
microsmg: '0x13532244',
|
||||
smg: '0x2BE6766B',
|
||||
smg_mk2: '0x78A97CD0',
|
||||
assaultsmg: '0xEFE7E2DF',
|
||||
combatpdw: '0xA3D4D34',
|
||||
machinepistol: '0xDB1AA450',
|
||||
minismg: '0xBD248B55',
|
||||
raycarbine: '0x476BF155'
|
||||
},
|
||||
shotguns: {
|
||||
pumpshotgun: '0x1D073A89',
|
||||
pumpshotgun_mk2: '0x555AF99A',
|
||||
sawnoffshotgun: '0x7846A318',
|
||||
assaultshotgun: '0xE284C527',
|
||||
bullpupshotgun: '0x9D61E50F',
|
||||
musket: '0xA89CB99E',
|
||||
heavyshotgun: '0x3AABBBAA',
|
||||
dbshotgun: '0xEF951FBB',
|
||||
autoshotgun: '0x12E82D3D'
|
||||
},
|
||||
assault_rifles: {
|
||||
assaultrifle: '0xBFEFFF6D',
|
||||
assaultrifle_mk2: '0x394F415C',
|
||||
carbinerifle: '0x83BF0278',
|
||||
carbinerifle_mk2: '0xFAD1F1C9',
|
||||
advancedrifle: '0xAF113F99',
|
||||
specialcarbine: '0xC0A3098D',
|
||||
specialcarbine_mk2: '0x969C3D67',
|
||||
bullpuprifle: '0x7F229F94',
|
||||
bullpuprifle_mk2: '0x84D6FAFD',
|
||||
compactrifle: '0x624FE830'
|
||||
},
|
||||
machine_guns: {
|
||||
mg: '0x9D07F764',
|
||||
combatmg: '0x7FD62962',
|
||||
combatmg_mk2: '0xDBBD7280',
|
||||
gusenberg: '0x61012683'
|
||||
},
|
||||
sniper_rifles: {
|
||||
sniperrifle: '0x5FC3C11',
|
||||
heavysniper: '0xC472FE2',
|
||||
heavysniper_mk2: '0xA914799',
|
||||
marksmanrifle: '0xC734385A',
|
||||
marksmanrifle_mk2: '0x6A6C02E0'
|
||||
},
|
||||
heavy_weapons: {
|
||||
rpg: '0xB1CA77B1',
|
||||
grenadelauncher: '0xA284510B',
|
||||
grenadelauncher_smoke: '0x4DD2DC56',
|
||||
minigun: '0x42BF8A85',
|
||||
firework: '0x7F7497E5',
|
||||
railgun: '0x6D544C99',
|
||||
hominglauncher: '0x63AB0442',
|
||||
compactlauncher: '0x781FE4A',
|
||||
rayminigun: '0xB62D1F67'
|
||||
},
|
||||
throwables: {
|
||||
grenade: '0x93E220BD',
|
||||
bzgas: '0xA0973D5E',
|
||||
smokegrenade: '0xFDBC8A50',
|
||||
flare: '0x497FACC3',
|
||||
molotov: '0x24B17070',
|
||||
stickybomb: '0x2C3731D9',
|
||||
proxmine: '0xAB564B93',
|
||||
snowball: '0x787F0BB',
|
||||
pipebomb: '0xBA45E8B8',
|
||||
ball: '0x23C9F95C'
|
||||
},
|
||||
misc: {
|
||||
petrolcan: '0x34A67B97',
|
||||
fireextinguisher: '0x60EC506',
|
||||
parachute: '0xFBAB5776',
|
||||
hazardcan: '0xBA536372'
|
||||
}
|
||||
}
|
||||
|
||||
const adminMenu = new Menu("Админ Панель", "Выполняйте админ-функции", menuPos)
|
||||
const kickPlayerMenu = new Menu("Кикнуть игрока", "Сервер кикнет любого игрока", menuPos)
|
||||
const banPlayerMenu = new Menu('Забанить игрока', "Сервер забанит игрока", menuPos)
|
||||
const killPlayerMenu = new Menu('Убить игрока', "Сервер моментально убьет игрока", menuPos)
|
||||
const carSpawnMenu = new Menu("Заспавнить машину", "Сервер заспавнит машину", menuPos)
|
||||
const teleportToLocationMenu = new Menu("Телепорт к локации", "Телепортируйтесь на выбранную локацию", menuPos)
|
||||
@ -29,7 +829,6 @@ const teleportToPlayerMenu = new Menu("Телепорт к игроку", "Вы
|
||||
const teleportToMeMenu = new Menu("Телепорт к себе", "Вы телепортируете игрока к себе", menuPos)
|
||||
|
||||
const kickItem = new UIMenuItem('Кикнуть игрока',`Сервер кикнет игрока`)
|
||||
const banItem = new UIMenuItem('Забанить игрока',`Сервер заблокирует игрока`)
|
||||
const killItem = new UIMenuItem('Убить игрока',`Убейте моментально любого игрока`)
|
||||
const spawnCarItem = new UIMenuItem('Заспавнить машину',`Сервер заспавнит машину перед вами`)
|
||||
const teleportToLocationItem = new UIMenuItem('Телепорт к локации',`Телепортируйтесь к выбранной локации`)
|
||||
@ -37,26 +836,31 @@ const myPersonItem = new UIMenuItem('Мой персонаж', `Выдайте
|
||||
const weaponsItem = new UIMenuItem('Выдать себе оружие',`Выдайте любое оружие себе`)
|
||||
const teleportToPlayerItem = new UIMenuItem('Телепорт к игроку',`Телепортируйтесь к игроку`)
|
||||
const teleportToMeItem = new UIMenuItem('Телепорт игрока к себе', `Телепортируйте игрока к себе`)
|
||||
|
||||
const playersListItem = new UIMenuListItem(
|
||||
"Игроки",
|
||||
"Выберите игрока",
|
||||
new ItemsCollection(alt.Player.all.map(_player => _player.name))
|
||||
)
|
||||
|
||||
myPersonMenu.AddItem(new UIMenuCheckboxItem(
|
||||
"Неуязвимость",
|
||||
false,
|
||||
"Делает вашего персонажа неуязвимым"
|
||||
))
|
||||
myPersonMenu.AddItem(new UIMenuItem('Восстановить здоровье', `Восстанавливает 100hp`))
|
||||
const playersListItem = new UIMenuListItem("Игроки", "Выберите игрока", new ItemsCollection(alt.Player.all.map(_player => _player.name)))
|
||||
|
||||
kickPlayerMenu.AddItem(playersListItem)
|
||||
killPlayerMenu.AddItem(playersListItem)
|
||||
teleportToPlayerMenu.AddItem(playersListItem)
|
||||
teleportToMeMenu.AddItem(playersListItem)
|
||||
myPersonMenu.AddItem(new UIMenuCheckboxItem("Неуязвимость", false, "Делает вашего персонажа неуязвимым"))
|
||||
myPersonMenu.AddItem(new UIMenuItem('Восстановить здоровье', `Восстанавливает 100hp`))
|
||||
carSpawnMenu.AddItem(new UIMenuListItem("Список машин","Выберите машину и сервер заспавнит её", new ItemsCollection(cars)))
|
||||
teleportToLocationMenu.AddItem(new UIMenuListItem("Список локаций", "Выберите локацию для телепортирования", new ItemsCollection(locations)))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Ближнее оружие", "Выберите ближнее оружие", new ItemsCollection(Object.keys(weapons["melee"]))))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Пистолеты", "Выберите пистолет", new ItemsCollection(Object.keys(weapons["handguns"]))))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Пистолет-пулеметы", "Выберите пистолет-пулемет",new ItemsCollection(Object.keys(weapons["smg"]))))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Дробовики","Выберите дробовик",new ItemsCollection(Object.keys(weapons["shotguns"]))))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Штурмовые винтовки", "Выберите штурмовую винтовку",new ItemsCollection(Object.keys(weapons["assault_rifles"]))))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Пулеметы", "Выберите пулемет",new ItemsCollection(Object.keys(weapons["machine_guns"]))))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Снайперские винтовки", "Выберите снайп.винтовку",new ItemsCollection(Object.keys(weapons["sniper_rifles"]))))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Тяжелое оружие", "Выберите тяжелое оружие", new ItemsCollection(Object.keys(weapons["heavy_weapons"]))))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Гранаты","Выберите гранату",new ItemsCollection(Object.keys(weapons["throwables"]))))
|
||||
weaponsMenu.AddItem(new UIMenuListItem("Разное","Выберите что-то",new ItemsCollection(Object.keys(weapons["misc"]))))
|
||||
|
||||
alt.setInterval(() => playersListItem.Collection = new ItemsCollection(alt.Player.all.map(_player => `[${_player.id}]:${_player.name}`)).getListItems(), 300)
|
||||
|
||||
adminMenu.BindMenuToItem(myPersonMenu, myPersonItem)
|
||||
adminMenu.BindMenuToItem(kickPlayerMenu, kickItem)
|
||||
adminMenu.BindMenuToItem(banPlayerMenu, banItem)
|
||||
adminMenu.BindMenuToItem(killPlayerMenu, killItem)
|
||||
adminMenu.BindMenuToItem(carSpawnMenu, spawnCarItem)
|
||||
adminMenu.BindMenuToItem(teleportToLocationMenu, teleportToLocationItem)
|
||||
@ -64,11 +868,6 @@ adminMenu.BindMenuToItem(weaponsMenu, weaponsItem)
|
||||
adminMenu.BindMenuToItem(teleportToPlayerMenu, teleportToPlayerItem)
|
||||
adminMenu.BindMenuToItem(teleportToMeMenu, teleportToMeItem)
|
||||
|
||||
|
||||
adminMenu.ItemSelect.on(item => {
|
||||
if (item instanceof UIMenuItem) subMenuActive = true
|
||||
})
|
||||
|
||||
myPersonMenu.ItemSelect.on(item => {
|
||||
if (item.Text.toLowerCase() === 'восстановить здоровье') alt.emitServer('getHealth')
|
||||
})
|
||||
@ -77,10 +876,18 @@ myPersonMenu.CheckboxChange.on(item => {
|
||||
if (item.Text.toLowerCase() === 'неуязвимость') alt.emitServer('godMode', item.Checked)
|
||||
})
|
||||
|
||||
kickPlayerMenu.ItemSelect.on(item => {
|
||||
alt.emitServer("kickPlayer", item.SelectedItem.DisplayText);
|
||||
})
|
||||
kickPlayerMenu.ItemSelect.on(item => alt.emitServer("kickPlayer", item.SelectedItem.DisplayText))
|
||||
killPlayerMenu.ItemSelect.on(item => alt.emitServer("killPlayer", item.SelectedItem.DisplayText))
|
||||
teleportToLocationMenu.ItemSelect.on(item => alt.emitServer("teleportToLocation", item.SelectedItem.DisplayText))
|
||||
teleportToPlayerMenu.ItemSelect.on(item => alt.emitServer("teleportToPlayer", item.SelectedItem.DisplayText))
|
||||
teleportToMeMenu.ItemSelect.on(item => alt.emitServer("teleportToMe", item.SelectedItem.DisplayText))
|
||||
|
||||
carSpawnMenu.ItemSelect.on(item => {
|
||||
if (item instanceof UIMenuListItem) return alt.emitServer("spawnCar", item.SelectedItem.DisplayText)
|
||||
})
|
||||
weaponsMenu.ItemSelect.on(item => {
|
||||
if (item instanceof UIMenuListItem) return alt.emitServer("giveWeapon", item.SelectedItem.DisplayText)
|
||||
})
|
||||
|
||||
alt.on('keyup', key => {
|
||||
if (key === 113) { // F2
|
||||
@ -91,7 +898,6 @@ alt.on('keyup', key => {
|
||||
alt.onServer('ui:showAdminPanel', () => {
|
||||
if (
|
||||
kickPlayerMenu.Visible
|
||||
|| banPlayerMenu.Visible
|
||||
|| killPlayerMenu.Visible
|
||||
|| carSpawnMenu.Visible
|
||||
|| teleportToLocationMenu.Visible
|
||||
@ -102,7 +908,6 @@ alt.onServer('ui:showAdminPanel', () => {
|
||||
)
|
||||
{
|
||||
kickPlayerMenu.Close()
|
||||
banPlayerMenu.Close()
|
||||
killPlayerMenu.Close()
|
||||
carSpawnMenu.Close()
|
||||
teleportToLocationMenu.Close()
|
||||
|
||||
@ -7,7 +7,6 @@ export default {
|
||||
waitingRoom: { x: 135.901, y: -749.107, z: 258.152 },
|
||||
locations: {
|
||||
airport: { x: -1329.613, y: -3038.4901286875747, z: 13.938 },
|
||||
spawn: { x: 135.901, y: -749.107, z: 258.152 },
|
||||
fibroof: { x:150.126, y:-754.591, z:262.865 },
|
||||
policestation: { x:436.491, y: -982.172, z: 30.699 },
|
||||
epsilon: { x:-695.025, y: 82.955, z: 55.855 }
|
||||
|
||||
@ -3,10 +3,16 @@
|
||||
*/
|
||||
|
||||
// Admin ui
|
||||
import './modules/events/ui/showAdminPanel.mjs'
|
||||
import './modules/events/ui/getHealth.mjs'
|
||||
import './modules/events/ui/godMode.mjs'
|
||||
import './modules/events/ui/kickPlayer.mjs'
|
||||
import './modules/events/ui/admin/showAdminPanel.mjs'
|
||||
import './modules/events/ui/admin/getHealth.mjs'
|
||||
import './modules/events/ui/admin/godMode.mjs'
|
||||
import './modules/events/ui/admin/kickPlayer.mjs'
|
||||
import './modules/events/ui/admin/killPlayer.mjs'
|
||||
import './modules/events/ui/admin/spawnCar.mjs'
|
||||
import './modules/events/ui/admin/teleportToLocation.mjs'
|
||||
import './modules/events/ui/admin/giveWeapon.mjs'
|
||||
import './modules/events/ui/admin/teleportToPlayer.mjs'
|
||||
import './modules/events/ui/admin/teleportToMe.mjs'
|
||||
|
||||
import './modules/events/playerConnect.mjs'
|
||||
import './modules/events/playerDisconnect.mjs'
|
||||
|
||||
@ -16,4 +16,5 @@ registerCmd('gethere', (player, args) => {
|
||||
}
|
||||
|
||||
target.pos = player.pos
|
||||
target.dimension = player.dimension
|
||||
})
|
||||
@ -16,4 +16,5 @@ registerCmd('kill', (player, args) => {
|
||||
}
|
||||
|
||||
target.health = 0
|
||||
alt.emitClient(target, 'player:notify', `Вы были убиты администратором сервера`)
|
||||
})
|
||||
@ -16,4 +16,5 @@ registerCmd('tp', (player, args) => {
|
||||
}
|
||||
|
||||
player.pos = target.pos
|
||||
player.dimension = target.dimension
|
||||
})
|
||||
@ -8,5 +8,6 @@ alt.on('playerDeath', (player) => {
|
||||
alt.setTimeout(() => {
|
||||
player.spawn(config.spawn.x, config.spawn.y,config.spawn.z)
|
||||
player.removeAllWeapons()
|
||||
alt.emitClient(player, 'player:setInvincible')
|
||||
}, 5000)
|
||||
})
|
||||
@ -1,5 +1,5 @@
|
||||
import alt from 'alt-server'
|
||||
import { isPlayerAdmin } from '../../helpers/helpers.mjs'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
alt.onClient('getHealth', player => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
17
server/modules/events/ui/admin/giveWeapon.mjs
Normal file
17
server/modules/events/ui/admin/giveWeapon.mjs
Normal file
@ -0,0 +1,17 @@
|
||||
import alt from 'alt-server'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
import weapons from '../../../../weapons.json'
|
||||
|
||||
alt.onClient('giveWeapon', (player, weaponName) => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
|
||||
alt.emitClient(player, 'admin:setStat')
|
||||
|
||||
Object.keys(weapons).map(category => {
|
||||
if (weapons[category].hasOwnProperty(weaponName)) {
|
||||
player.giveWeapon(weapons[category][weaponName], 9999, true)
|
||||
return
|
||||
}
|
||||
})
|
||||
})
|
||||
@ -1,5 +1,5 @@
|
||||
import alt from 'alt-server'
|
||||
import { isPlayerAdmin } from '../../helpers/helpers.mjs'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
alt.onClient('godMode', (player, checked) => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
@ -1,10 +1,17 @@
|
||||
import alt from 'alt-server'
|
||||
import { broadcast } from 'chat'
|
||||
import { isPlayerAdmin } from '../../helpers/helpers.mjs'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
alt.onClient('kickPlayer', (player, targetId) => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
const target = alt.Player.getByID(+/\d+/.exec(targetId.split(':')[0]))
|
||||
|
||||
const id = +/\d+/.exec(targetId.split(':')[0])
|
||||
const target = alt.Player.getByID(id)
|
||||
|
||||
if (target === null) {
|
||||
return send(player, `{EE9A00}[SERVER]: {FFF}Игрок с ID: "${id}" не найден`);
|
||||
}
|
||||
|
||||
alt.emitClient(target, 'player:notify', `Вы были кикнуты с этого сервера`)
|
||||
|
||||
alt.setTimeout(() => target.kick(), 300)
|
||||
16
server/modules/events/ui/admin/killPlayer.mjs
Normal file
16
server/modules/events/ui/admin/killPlayer.mjs
Normal file
@ -0,0 +1,16 @@
|
||||
import alt from 'alt-server'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
alt.onClient('killPlayer', (player, targetId) => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
|
||||
const id = +/\d+/.exec(targetId.split(':')[0])
|
||||
const target = alt.Player.getByID(id)
|
||||
|
||||
if (target === null) {
|
||||
return send(player, `{EE9A00}[SERVER]: {FFF}Игрок с ID: "${id}" не найден`)
|
||||
}
|
||||
|
||||
target.health = 0
|
||||
alt.emitClient(target, 'player:notify', `Вы были убиты администратором сервера`)
|
||||
})
|
||||
@ -1,5 +1,5 @@
|
||||
import alt from 'alt-server'
|
||||
import { isPlayerAdmin } from '../../helpers/helpers.mjs'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
alt.onClient('showAdminPanel', player => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
17
server/modules/events/ui/admin/spawnCar.mjs
Normal file
17
server/modules/events/ui/admin/spawnCar.mjs
Normal file
@ -0,0 +1,17 @@
|
||||
import alt from 'alt-server'
|
||||
import { send } from 'chat'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
alt.onClient('spawnCar', (player, carRef) => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
|
||||
try {
|
||||
const newVehicle = new alt.Vehicle(carRef, player.pos.x, player.pos.y, player.pos.z, 0, 0, 0)
|
||||
newVehicle.numberPlateText = 'ADMIN'
|
||||
|
||||
alt.emitClient(player, 'vehicle:setInto', newVehicle)
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
send(player, `{EE9A00}[SERVER]: {FF0000}Машины "${args[0]}" не существует!`)
|
||||
}
|
||||
})
|
||||
15
server/modules/events/ui/admin/teleportToLocation.mjs
Normal file
15
server/modules/events/ui/admin/teleportToLocation.mjs
Normal file
@ -0,0 +1,15 @@
|
||||
import alt from 'alt-server'
|
||||
import { send } from 'chat'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
import config from '../../../../config.mjs'
|
||||
|
||||
alt.onClient('teleportToLocation', (player, location) => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
|
||||
const findLocation = Object.keys(config.locations).find(_location => _location === location)
|
||||
|
||||
if (findLocation === undefined) return send(player, '{EE9A00}[SERVER]: {FF0000}Локация не найдена!')
|
||||
|
||||
player.pos = config.locations[location]
|
||||
})
|
||||
17
server/modules/events/ui/admin/teleportToMe.mjs
Normal file
17
server/modules/events/ui/admin/teleportToMe.mjs
Normal file
@ -0,0 +1,17 @@
|
||||
import alt from 'alt-server'
|
||||
import { send } from 'chat'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
alt.onClient('teleportToMe', (player, targetId) => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
|
||||
const id = +/\d+/.exec(targetId.split(':')[0])
|
||||
const target = alt.Player.getByID(id)
|
||||
|
||||
if (target === null) {
|
||||
return send(player, `{EE9A00}[SERVER]: {FFF}Игрок с ID: "${id}" не найден`)
|
||||
}
|
||||
|
||||
target.pos = player.pos
|
||||
target.dimension = player.dimension
|
||||
})
|
||||
17
server/modules/events/ui/admin/teleportToPlayer.mjs
Normal file
17
server/modules/events/ui/admin/teleportToPlayer.mjs
Normal file
@ -0,0 +1,17 @@
|
||||
import alt from 'alt-server'
|
||||
import { send } from 'chat'
|
||||
import { isPlayerAdmin } from '../../../helpers/helpers.mjs'
|
||||
|
||||
alt.onClient('teleportToPlayer', (player, targetId) => {
|
||||
if (!isPlayerAdmin(player)) return false
|
||||
|
||||
const id = +/\d+/.exec(targetId.split(':')[0])
|
||||
const target = alt.Player.getByID(id)
|
||||
|
||||
if (target === null) {
|
||||
return send(player, `{EE9A00}[SERVER]: {FFF}Игрок с ID: "${id}" не найден`)
|
||||
}
|
||||
|
||||
player.pos = target.pos
|
||||
player.dimension = target.dimension
|
||||
})
|
||||
Loading…
x
Reference in New Issue
Block a user