- Initiateur de la discussion
Deadman69330
Psychopathe
- Messages
- 2 289
- Score réaction
- 309
- Points
- 290
Bonjour,
J'ai fait un petit code (modifier d'un HUD sur gmodstore) pour que quand on regarde un joueur seulement les joueurs de sa faction voit son nom, sa vie et son job.
Par exemple que la Recrue Hanza voit les Officier de la Hanza, les Soldats... mais pas ceux de la faction ennemie.
Cependant j'ai un problème, c'est à dire que j'ai fait en sorte que la distance d'affichage soit inférieure à 140 unitées.
Avec la faction "Red Line" j'ai aucun problème mais avec la faction "Hanza" les noms s'affichent sur toute la map :/
Pourtant c'est exactement le même code, je comprend pas et je suis rester bloquer bien 2 heures dessus
Voilà mon code:
Merci de votre aide
J'ai fait un petit code (modifier d'un HUD sur gmodstore) pour que quand on regarde un joueur seulement les joueurs de sa faction voit son nom, sa vie et son job.
Par exemple que la Recrue Hanza voit les Officier de la Hanza, les Soldats... mais pas ceux de la faction ennemie.
Cependant j'ai un problème, c'est à dire que j'ai fait en sorte que la distance d'affichage soit inférieure à 140 unitées.
Avec la faction "Red Line" j'ai aucun problème mais avec la faction "Hanza" les noms s'affichent sur toute la map :/
Pourtant c'est exactement le même code, je comprend pas et je suis rester bloquer bien 2 heures dessus
Voilà mon code:
Code:
surface.CreateFont( "hudmainthickmed", { font = "BF4 Numbers", size = 22, weight = 500,} )
local function infoposjoueur() local ply = LocalPlayer() if ply:Team() == TEAM_RECRUEREDLINE or ply:Team() == TEAM_SOLDATREDLINE or ply:Team() == TEAM_OFFICIERREDLINE or ply:Team() == TEAM_LEADERREDLINE or ply:Team() == TEAM_SNIPERREDLINE or ply:Team() == TEAM_FUMIGATEURREDLINE then for _, v in pairs(player.GetAll()) do if ply != v then local pos = v:GetShootPos() pos.z = pos.z+5 pos = pos:ToScreen() if not pos.visible then continue end local x, y = pos.x, pos.y if (v:GetPos():Distance(ply:GetPos()) < 140) and v:Team() == TEAM_RECRUEREDLINE or v:Team() == TEAM_SOLDATREDLINE or v:Team() == TEAM_OFFICIERREDLINE or v:Team() == TEAM_LEADERREDLINE or v:Team() == TEAM_SNIPERREDLINE or v:Team() == TEAM_FUMIGATEURREDLINE then local nick, plyTeam = v:Nick(), v:Team() draw.SimpleText(string.upper(nick),"hudmainthickmed",pos.x + 80, pos.y - 30,white,TEXT_ALIGN_LEFT ,TEXT_ALIGN_CENTER) local teamname = v:getDarkRPVar("job") or team.GetName(v:Team()) draw.DrawNonParsedText(teamname, "hudmainthickmed", pos.x + 1, pos.y + 41, Color(255,255,255,0), 1) draw.DrawNonParsedText(teamname, "hudmainthickmed", pos.x + 80, pos.y + 4, Color(200,200,200, 0), 1) draw.SimpleText(teamname,"hudmainthickmed",pos.x + 80, pos.y - 10, jobcol,TEXT_ALIGN_LEFT ,TEXT_ALIGN_CENTER) local health = DarkRP.getPhrase("health", v:Health()) draw.SimpleText(health, "hudmainthickmed", pos.x + 80, pos.y + 10, white, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER) end end end end if ply:Team() == TEAM_RECRUEHANZA or ply:Team() == TEAM_SOLDATHANZA or ply:Team() == TEAM_OFFICIERHANZA or ply:Team() == TEAM_LEADERHANZA or ply:Team() == TEAM_SNIPERHANZA or ply:Team() == TEAM_ARTIFICIERHANZA then for _, v in pairs(player.GetAll()) do if ply != v then local pos = v:GetShootPos() pos.z = pos.z+5 pos = pos:ToScreen() if not pos.visible then continue end local x, y = pos.x, pos.y if (ply:GetPos():Distance(v:GetPos()) < 140) and v:Team() == TEAM_RECRUEHANZA or v:Team() == TEAM_SOLDATHANZA or v:Team() == TEAM_OFFICIERHANZA or v:Team() == TEAM_LEADERHANZA or v:Team() == TEAM_SNIPERHANZA or v:Team() == TEAM_ARTIFICIERHANZA then local nick, plyTeam = v:Nick(), v:Team() draw.SimpleText(string.upper(nick),"hudmainthickmed",pos.x + 80, pos.y - 30,white,TEXT_ALIGN_LEFT ,TEXT_ALIGN_CENTER) local teamname = v:getDarkRPVar("job") or team.GetName(v:Team()) draw.DrawNonParsedText(teamname, "hudmainthickmed", pos.x + 1, pos.y + 41, Color(255,255,255,0), 1) draw.DrawNonParsedText(teamname, "hudmainthickmed", pos.x + 80, pos.y + 4, Color(200,200,200, 0), 1) draw.SimpleText(teamname,"hudmainthickmed",pos.x + 80, pos.y - 10, jobcol,TEXT_ALIGN_LEFT ,TEXT_ALIGN_CENTER) local health = DarkRP.getPhrase("health", v:Health()) draw.SimpleText(health, "hudmainthickmed", pos.x + 80, pos.y + 10, white, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER) end end end end if ply:Team() == TEAM_APPRENTIESTALKER or ply:Team() == TEAM_STALKER or ply:Team() == TEAM_VIEUXSTALKER then for _, v in pairs(player.GetAll()) do if ply != v then local pos = v:GetShootPos() pos.z = pos.z+5 pos = pos:ToScreen() if not pos.visible then continue end local x, y = pos.x, pos.y if (v:GetPos():Distance(ply:GetPos()) < 140) and v:Team() == TEAM_APPRENTIESTALKER or v:Team() == TEAM_STALKER or v:Team() == TEAM_VIEUXSTALKER then local nick, plyTeam = v:Nick(), v:Team() draw.SimpleText(string.upper(nick),"hudmainthickmed",pos.x + 80, pos.y - 30,white,TEXT_ALIGN_LEFT ,TEXT_ALIGN_CENTER) local teamname = v:getDarkRPVar("job") or team.GetName(v:Team()) draw.DrawNonParsedText(teamname, "hudmainthickmed", pos.x + 1, pos.y + 41, Color(255,255,255,0), 1) draw.DrawNonParsedText(teamname, "hudmainthickmed", pos.x + 80, pos.y + 4, Color(200,200,200, 0), 1) draw.SimpleText(teamname,"hudmainthickmed",pos.x + 80, pos.y - 10, jobcol,TEXT_ALIGN_LEFT ,TEXT_ALIGN_CENTER) local health = DarkRP.getPhrase("health", v:Health()) draw.SimpleText(health, "hudmainthickmed", pos.x + 80, pos.y + 10, white, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER) end end end end
end
hook.Add("HUDPaint", "DrawNameOfPlayerTeams", infoposjoueur)