LUA - if workshop addons exist then

  • Initiateur de la discussion
  • Banni
Hoper

Hoper

Geek suprême
Messages
510
Score réaction
233
Points
130
Bonjour, comment savoir si un serveur à un addons spécifique dans sa collection ?

J'ai tester
if (wsid == "15662997") then

mais ça ne marche pas, pareil pour if file.Exists( "autorun/server/test.lua", "LUA" ) == true then

Merci.​
 
Deadman69330

Deadman69330

Psychopathe
Messages
2 289
Score réaction
309
Points
290
Met ça: http://wiki.garrysmod.com/page/resource/AddWorkshop
 
  • Initiateur de la discussion
  • Banni
Hoper

Hoper

Geek suprême
Messages
510
Score réaction
233
Points
130
Deadman69330 à dit:
Met ça: http://wiki.garrysmod.com/page/resource/AddWorkshop
nan, je veux pas ajouter un addons. Je veux vérifier si un addons est présent dans la collection du workshoo
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
Oh un truc intéressant à faire
Code:
function verifyCollection(collectionID, itemID, callback) http.Fetch("https://steamcommunity.com/sharedfiles/filedetails/?id=" .. collectionID, function(body) if (string.find(body, '{"id":"' .. itemID .. '"')) then callback(true) else callback(false) end end)
end
verifyCollection("740646873", "867971938", function(status) if status then print("Oui il y a ") else print("Non il n'y a pas") end
end)
Devrait fonctionner
 
  • J'aime
Réactions: Yoh Sambre ♪
  • Initiateur de la discussion
  • Banni
Hoper

Hoper

Geek suprême
Messages
510
Score réaction
233
Points
130
Makss à dit:
Oh un truc intéressant à faire
Code:
function verifyCollection(collectionID, itemID, callback) http.Fetch("https://steamcommunity.com/sharedfiles/filedetails/?id=" .. collectionID, function(body) if (string.find(body, '{"id":"' .. itemID .. '"')) then callback(true) else callback(false) end end)
end
verifyCollection("740646873", "867971938", function(status) if status then print("Oui il y a ") else print("Non il n'y a pas") end
end)
Devrait fonctionner
je test merci :)
 
ViPerZe_

ViPerZe_

Geek suprême
Messages
371
Score réaction
88
Points
150
Code:
if SERVER then AddCSLuaFile() end
local found=false
local f=file.Find('autorun/client/*.lua', "LUA")
for k,v in pairs(f) do if v == "gredwitch_addon_verify.lua" then include('autorun/client/gredwitch_addon_verify.lua') found=true end
end
local foundE=false
local fE=file.Find('autorun/*.lua', "LUA")
for k,v in pairs(fE) do if v=="gred_emplacements_verify.lua" then include('autorun/gred_emplacements_verify.lua') foundE=true end
end
timer.Simple(5,function() if not found and not GredFrame then if CLIENT then GredFrame=vgui.Create('DFrame') GredFrame:SetTitle("Grediwtch's Base is not installed") GredFrame:SetSize(ScrW()*0.95, ScrH()*0.95) GredFrame:SetPos((ScrW() - GredFrame:GetWide()) / 2, (ScrH() - GredFrame:GetTall()) / 2) GredFrame:MakePopup() local h=vgui.Create('DHTML') h:SetParent(GredFrame) h:SetPos(GredFrame:GetWide()*0.005, GredFrame:GetTall()*0.03) local x,y = GredFrame:GetSize() h:SetSize(x*0.99,y*0.96) h:SetAllowLua(true) h:OpenURL('LIEN WS A DL.html') end end if not foundE and not GredEMPFrame then if CLIENT then GredEMPFrame=vgui.Create('DFrame') GredEMPFrame:SetTitle("Grediwtch's Emplacement Pack materials addon is not installed") GredEMPFrame:SetSize(ScrW()*0.95, ScrH()*0.95) GredEMPFrame:SetPos((ScrW() - GredEMPFrame:GetWide()) / 2, (ScrH() - GredEMPFrame:GetTall()) / 2) GredEMPFrame:MakePopup() local h=vgui.Create('DHTML') h:SetParent(GredEMPFrame) h:SetPos(GredEMPFrame:GetWide()*0.005, GredEMPFrame:GetTall()*0.03) local x,y = GredEMPFrame:GetSize() h:SetSize(x*0.99,y*0.96) h:SetAllowLua(true) h:OpenURL('lien WS A DL.html') end end
end)
if not found or not foundE then return end
J'ai trouvé ça, à voir si ça marche. ici on vérifie 2 contents
 
  • Banni
lampoule

lampoule

Psychopathe
Messages
1 016
Score réaction
332
Points
300
Ça pue les backdoor ca
 
  • J'aime
Réactions: Joe Leroi
  • Initiateur de la discussion
  • Banni
Hoper

Hoper

Geek suprême
Messages
510
Score réaction
233
Points
130
  • Initiateur de la discussion
  • Banni
Hoper

Hoper

Geek suprême
Messages
510
Score réaction
233
Points
130
aucun ne marche :/ @Makss @ViPerZe_

Ou alors vérifier si un concommand existe. Genre

Code:
If concommand.exist("stats") then
print("addons présent") else
print("addons non présent")
end
un truc du genre quou
 
Dernière édition:
While True

While True

Geek suprême
Messages
445
Score réaction
395
Points
190
Hoper à dit:
https://wiki.garrysmod.com/page/engine/GetAddons

Pour ceux qui sont dans une collection spécifique, il faut passer par une requête http et parse le resultat.
 
Makss

Makss

Psychopathe
Messages
830
Score réaction
990
Points
310
  • J'aime
Réactions: Membre supprimé 98332
  • Initiateur de la discussion
  • Banni
Hoper

Hoper

Geek suprême
Messages
510
Score réaction
233
Points
130
Makss à dit:
Regarde la pièce jointe 9356
hum, j'ai pas compris alors, je met quoi ici ? : (l'id des 2 addons workshops ?)

https://prntscr.com/kn11ml
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Hoper à dit:
hum, j'ai pas compris alors, je met quoi ici ? : (l'id des 2 addons workshops ?)

https://prntscr.com/kn11ml
En premier l’id de la collection et second l’id de l’addon recherché
 
M

Membre supprimé 98332

Anonyme
Hoper à dit:
hum, j'ai pas compris alors, je met quoi ici ? : (l'id des 2 addons workshops ?)

https://prntscr.com/kn11ml
Dans le premier argument (aka la première suite de chiffres) tu mets l'id de ta collection.
Dans le second argument (aka la seconde suite de chiffres) tu mets l'id de l'item du workshop à vérifier.

Si l'item du workshop se trouve bel et bien dans la collection, status = true, dans le cas contraire, status = false.

Maks a fait un exemple en affichant "oui" ou "non" mais tu peux très bien changer ça par le code de ton choix
 
  • Initiateur de la discussion
  • Banni
Hoper

Hoper

Geek suprême
Messages
510
Score réaction
233
Points
130
EpicGaby à dit:
Dans le premier argument (aka la première suite de chiffres) tu mets l'id de ta collection.
Dans le second argument (aka la seconde suite de chiffres) tu mets l'id de l'item du workshop à vérifier.

Si l'item du workshop se trouve bel et bien dans la collection, status = true, dans le cas contraire, status = false.

Maks a fait un exemple en affichant "oui" ou "non" mais tu peux très bien changer ça par le code de ton choix
thepsyca à dit:
En premier l’id de la collection et second l’id de l’addon recherché
et oui mais le délire c'est que ducoup il faudra que je rentre à chaque fois l'id de la collection du serveur sur lequel je suis... En gros je veux un ptit .lua qui me dit si y'a vjbase sur le serv où je suis, mais si à chaque fois j'dois rentrer l'id de la collection du serveur..

Y'a pas un moyen de mettre automatiquement l'id de la collection du serveur sur lequel on est ?
Ou je sais pas un autre moyen de checker si cet addons est présent sur le serveur (via collection) ?
 
  • Initiateur de la discussion
  • Banni
Hoper

Hoper

Geek suprême
Messages
510
Score réaction
233
Points
130
bon j'ai essayer

Code:
if file.Exists("cache/srcds/128089118.gma", "GAME") == true then
chat.AddText(Color( 0, 0, 0), "[sq] ", Color( 255, 114, 114 ), "Oui" )
else
chat.AddText(Color( 0, 0, 0), "[sq] ", Color( 255, 114, 114 ), "Non" )
end
car les addons workshop sont répertorier dans ce dossier en .gma
mais ça me dit que le fichier n'existe pas...

Bref helpp me plz
 
  • Initiateur de la discussion
  • Banni
Hoper

Hoper

Geek suprême
Messages
510
Score réaction
233
Points
130
HAAAAALLLEEEELUIIIAAAA

j'ai trouvé les kheys, faut juste mettre le path "WORKSHOP" qui lie uniquement le content des addons de la collection.

Ducoup ça donne :

C#:
file.Exists ( "lua/autorun/server/coucou.lua", "WORKSHOP" ) == true then
chat.AddText(Color( 0, 0, 0), "[sq] ", Color( 255, 114, 114 ), "Oui" )
else
chat.AddText(Color( 0, 0, 0), "[sq] ", Color( 255, 114, 114 ), "Non" )
end
 
  • J'aime
Réactions: Paul6060, Joe Leroi et Makss
edouard292

edouard292

Geek suprême
Messages
423
Score réaction
108
Points
150
Il ne sert à rien le : == true
 
Discord d'entraide
Rejoignz-nous sur Discord