Aide configuration anti tir allié.

  • Initiateur de la discussion
Joqueez

Joqueez

Geek
Messages
23
Score réaction
6
Points
80
Bonjour, tout d'abord je m'excuse d'avance si je n'écris pas au bon endroit, à vrai dire c'est la première fois que je publie ici.

Alors voilà, dans la continuité de mon développement j'ai besoin de votre aide concernant un script qui permettrait d'éviter le tir allié. Mon serveur est simple : deux team's, le but : se tirer dessus et frag pour augmenter en level etc. Bref, ne jugez pas le concept, c'est pas ouf mais c'est pour me former dans le développement alors je fais simple mdrrr. J'essaie de rendre ce serveur plutôt arcade pour changer un peu du rôle play qui devient, à force, de plus en plus lassant et limitée bien que les scripts et concepts ne font qu'évoluer. Ainsi j'aimerais éviter et limiter le "friendly fire" selon les TEAM'S crées depuis le job lua.

Tout d'abord : Est-ce possible ? ( j'imagine que oui car tout est possible).

Comment faire ? J'ai cherché sur le gmod store, sur le workshop mais rien, enfin j'ai bien trouvé quelque chose mais dès lors que je modifie les TEAM's, ça ne fonctionne pas et impossible de contacter le créateur.

Ainsi, si vous avez des pistes, des scripts ou quoi je suis preneur car j'en ai réellement besoin dans l'aboutissement de mon projet.

Je vous remercie d'avance,

Bien à vous,

Joqueez.
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 273
Score réaction
9 687
Points
1 845
@Numerix
 
  • Administration
Numerix

Numerix

Admin
Membre du Staff
Messages
1 913
Score réaction
356
Points
315
Code:
timer.Simple(1, function() local TeamFriendly = { { [TEAM_POLICE] = true, [TEAM_GUN] = true, }, { [TEAM_CITIZEN] = true, [TEAM_MEDIC] = true, }, }
end)
hook.Add("PlayerShouldTakeDamage", "Numerix_AntiFriendlyFire", function(ply, attacker) if attacker:IsPlayer() or attacket:IsBot() then for k, v in pairs(TeamFriendly) do if TeamFriendly[k][ply:Team()] and TeamFriendly[k][attacker:Team()] then return false end end end
end)
Code non testé. A mettre dans lua/autorun/server/sv_antifriendlyfire_numerix.lua
 
  • J'aime
Réactions: Yoh Sambre ♪
  • Initiateur de la discussion
Joqueez

Joqueez

Geek
Messages
23
Score réaction
6
Points
80
Bon, je te remercie pour ton aide, mais navré de te dire que malheureusement cela ne fonctionne pas. J'ai essayé de faire l'idiot et de le mettre comme ça mais ça ne marche pas, de changer les team par les miennes mais non plus, et de traficoter en y ajoutant une boucle pour le coté insurgé mais non plus, grrr je vais bien réussir à trouver quelque chose ^^
 
  • Administration
Numerix

Numerix

Admin
Membre du Staff
Messages
1 913
Score réaction
356
Points
315
Je vais faire des tests et je reviens vers toi un peu plus tard
 
  • Initiateur de la discussion
Joqueez

Joqueez

Geek
Messages
23
Score réaction
6
Points
80
C'est super sympa, je te tiens au jus si j'ai des news de mon côté.
 
  • Administration
Numerix

Numerix

Admin
Membre du Staff
Messages
1 913
Score réaction
356
Points
315
Code:
timer.Simple(1, function() TeamFriendly = { { [TEAM_POLICE] = true, [TEAM_GUN] = true, }, { [TEAM_CITIZEN] = true, [TEAM_MEDIC] = true, }, }
end)
hook.Add("PlayerShouldTakeDamage", "Numerix_AntiFriendlyFire", function(ply, attacker) if attacker:IsPlayer() or attacker:IsBot() then for k, v in pairs(TeamFriendly) do if TeamFriendly[k][ply:Team()] and TeamFriendly[k][attacker:Team()] then return false end end end
end)
Maintenant c'est censé fonctionner
 
  • Initiateur de la discussion
Joqueez

Joqueez

Geek
Messages
23
Score réaction
6
Points
80
Entendu et je pourrai le configurer à ma guise ? Car par exemple dans mes jobs côté français vont de TEAM_FRANCE0 à TEAM_FRANCE43 et j'aimerais que du 0 à 43 personne puisse se tirer dessus alors est ce que j'ai simplement besoin de changer le nom des TEAM de tes lignes ?!
 
  • Administration
Numerix

Numerix

Admin
Membre du Staff
Messages
1 913
Score réaction
356
Points
315
Oui il suffit de changer les TEAM et { } représente un groupe qui ne peut se tirer dessus (par contre si tu as Advanced Medic Mod cela risque de ne pas fonctionner)
 
  • Initiateur de la discussion
Joqueez

Joqueez

Geek
Messages
23
Score réaction
6
Points
80
Numerix à dit:
Oui il suffit de changer les TEAM et { } représente un groupe qui ne peut se tirer dessus (par contre si tu as Advanced Medic Mod cela risque de ne pas fonctionner)
Okay, bien j'essaie de faire ça demain après le boulot, de me dépatouiller un peu aussi car j'avais commencé quelques lignes de codes pas loin de ça, alors j'essaie tout ça demain. En tous cas merci.
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
Bonjour,
J'ai tenté votre ligne de code @Numerix mais elle n'a pas marché! j'ai tenté de la modifier et voici ce que j'ai fait
timer.Simple(1, function() local TeamFriendly = { [TEAM_FRANCE] = true, [TEAM_FRANCE1] = true, [TEAM_FRANCE2] = true }, { [TEAM_INSU1] = true, [TEAM_INSU2] = true, [TEAM_INSU3] = true, }
end)
hook.Add("PlayerShouldTakeDamage", "Numerix_AntiFriendlyFire", function(ply, attacker) if attacker:IsPlayer() or attacket:IsBot() then for k, v in pairs(TeamFriendly) do if TeamFriendly[k][ply:Team()] and TeamFriendly[k][attacker:Team()] then return false end end end
end)

Pouvez vous m'aider? (je suis un ami de joqueez)

Merci
 
  • Administration
Numerix

Numerix

Admin
Membre du Staff
Messages
1 913
Score réaction
356
Points
315
As tu une erreur dans la console ? (Serveur)
 
Shaar

Shaar

Geek suprême
Messages
151
Score réaction
24
Points
100
C++:
local TeamFriendly = { [TEAM_FRANCE] = true, [TEAM_FRANCE1] = true, [TEAM_FRANCE2] = true }, { [TEAM_INSU1] = true, [TEAM_INSU2] = true, [TEAM_INSU3] = true, }
hook.Add("PlayerShouldTakeDamage", "Numerix_AntiFriendlyFire", function(ply, attacker) if attacker:IsPlayer() or attacket:IsBot() then for k, v in pairs(TeamFriendly) do if TeamFriendly[k][ply:Team()] and TeamFriendly[k][attacker:Team()] then return false end end end
end)
le timer.simple est useless
TeamFriendly c'est une variable locale donc valable only dans le timer (la function du timer)

aussi lis ça Tables: Bad Habits - Garry's Mod @Numerix
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
donc si j'utilise ce programme ca devrait marcher? @Shaar ?
 
Shaar

Shaar

Geek suprême
Messages
151
Score réaction
24
Points
100
SkywiiZz à dit:
donc si j'utilise ce programme ca devrait marcher? @Shaar ?
peut etre mais j'ai pas testé et c pas mon code
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
@Shaar Le code ne marche pas tu as discord ou qqch d'autre pour m'aider?

Voici le mien : SkywiiZz#6034

Merci !
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
J'ai besoin d'aide assez urgemment svp !
Si vous savez comment faire contactez moi par discord!
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
@Numerix @Shaar
 
  • Administration
Numerix

Numerix

Admin
Membre du Staff
Messages
1 913
Score réaction
356
Points
315
Le timer n'est pas useless car sinon la table est chargé avant que les teams soient chargé donc remet le code et retire le local devant TeamFriendly et met en haut du fichier local TeamFriendly
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
Le problème c'est que dans tout les cas je n'arrive pas à le faire fonctionner ! Je suis un débutant! Cela m'aiderais que vous m'aidiez en vocal pour que je puisse comprendre et que l'on puisse essayer! @Numerix @Shaar
 
Shaar

Shaar

Geek suprême
Messages
151
Score réaction
24
Points
100
Numerix à dit:
Le timer n'est pas useless car sinon la table est chargé avant que les teams soient chargé donc remet le code et retire le local devant TeamFriendly et met en haut du fichier local TeamFriendly
les fichier du gamemode charge bien avant lua/autorun
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
Ca m'aide pas vraiment ...
 
Shaar

Shaar

Geek suprême
Messages
151
Score réaction
24
Points
100
Java:
hook.Add("PlayerShouldTakeDamage","identifierosef",function( ply , att ) if not att:IsPlayer() then att = att:GetOwner() end if IsValid( att ) then if att:IsPlayer() and ply:IsPlayer() then return att:Team() ~= ply:Team() end end
end)
 
Shaar

Shaar

Geek suprême
Messages
151
Score réaction
24
Points
100
@Numerix tu devrais vraiment lire ca la facon ou tu a crée ta table est pas logique pour check les team

 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
Code :
Code:
local TeamFrench ={ [TEAM_FRANCE] = true, [TEAM_FRANCE1] = true, [TEAM_FRANCE2] = true,
}
local TeamInsurgent ={ [TEAM_INSU1] = true, [TEAM_INSU2] = true, [TEAM_INSU3] = true,
}
local function onFriendlyFire1(ply, attacker) if attacker:IsPlayer() or attacker:IsBot() then for k, v in pairs(TeamFrench) do if TeamFrench[k][ply:Team()] and TeamFrench[v][attacker:Team()] then return false end end end
end
hook.Add("PlayerShouldTakeDamage", "AntiFriendlyFire1", onFriendlyFire1)
local function onFriendlyFire2(ply, attacker) if attacker:IsPlayer() or attacker:IsBot() then for k, v in pairs(TeamInsurgent) do if TeamInsurgent[k][ply:Team()] and TeamInsurgent[v][attacker:Team()] then return false end end end
end
hook.Add("PlayerShouldTakeDamage", "AntiFriendlyFire2", onFriendlyFire2)
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
Comme ca ça pourrait marcher @Shaar ?
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
Cela ne marche toujours pas -_-
Y aurait-il un développeur qui pourrait venir m'aides sur discord svp ?(SkywiiZz#6034)
 
Surevil

Surevil

Geek suprême
Messages
133
Score réaction
47
Points
110
SkywiiZz à dit:
Cela ne marche toujours pas -_-
Y aurait-il un développeur qui pourrait venir m'aides sur discord svp ?(SkywiiZz#6034)
Le code de @Shaar marche, si t'as mal formulé ta demande alors réitère la.
 
  • J'aime
Réactions: Shaar
  • Initiateur de la discussion
Joqueez

Joqueez

Geek
Messages
23
Score réaction
6
Points
80
Et bien dites moi comment avez-vous procédé ? Pour avoir essayé maintes fois de l'ajouter, de le modifier, de le réécrire, de l'optimiser, de l'écrire sous une autre forme et j'en passe, je n'ai point réussi. Il serait préférable de trouver mon erreur parmi mes manipulations faites puisque de mon côté cela ne fonctionne pas. Alors pensez-vous bien que votre commentaire ne m'(nous) aide en rien, ce qui est par ailleurs gênant pour les autres qui auraient le même problème. Pour finir, en terme de manipulation je n'ai fait que suivre les conseils de Numérix et Shaar. Avez-vous donc des informations utiles à me donner, au lieu de me dire ce que je n'arrive point à faire, c-a-d faire foncionner ce script, d'où ma demande.......
 
S

SkywiiZz

Nouveau né
Messages
15
Score réaction
0
Points
15
@Surevil explique moi comment tu as réussi à le faire marché?
 
Discord d'entraide
Rejoignz-nous sur Discord