Demande d'aide pour ajouter un check sur la quantité achetée

  • Initiateur de la discussion mrcodsv
  • Date de début
  • Initiateur de la discussion
mrcodsv

mrcodsv

Geek suprême
Messages
214
Score réaction
33
Points
130
Bonjour bonjour! :D

J'aurais besoin d'une petite aide, j'ai téléchargé le gun store de Wasied et j'aimerais si possible avoir une petite aide pour ajouter une fonction qui va checker combien d'entité à acheté le joueur et bloqué si il veut acheter plus que ce qui est noté.

Du moins si vous pouviez juste me donner des indications sur quoi rechercher :) Merci beaucoup!

Fichier Init.lua :

Java:
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
include("shared.lua")
util.AddNetworkString("Wasied:GunSeller:OpenFrame")
util.AddNetworkString("Wasied:GunSeller:RemoveMoney")
function ENT:Initialize() self:SetModel(WasiedGunSellerConfig.model) self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) self:SetUseType( SIMPLE_USE ) self:DropToFloor() self.NextTime = CurTime() + 1 local phys = self:GetPhysicsObject() if phys:IsValid() then phys:Wake() end
end
function ENT:SpawnFunction( ply, tr, ClassName ) if ( !tr.Hit ) then return end local SpawnPos = tr.HitPos + tr.HitNormal * 10 local SpawnAng = ply:EyeAngles() SpawnAng.p = 0 SpawnAng.y = SpawnAng.y + 180 local ent = ents.Create( ClassName ) ent:SetPos( SpawnPos ) ent:SetAngles( SpawnAng ) ent:Spawn() ent:Activate() return ent
end
function ENT:AcceptInput(inp, activator, caller) if inp == "Use" && activator:IsPlayer() && self.NextTime < CurTime() then self.NextTime = CurTime() + 2 local teamNumbers = team.NumPlayers(WasiedGunSellerConfig.GunTeam) if teamNumbers == 0 then net.Start("Wasied:GunSeller:OpenFrame") net.WriteEntity(self) net.Send(activator) elseif teamNumbers > 0 then DarkRP.notify(activator, 0, 6, "Vous n'êtes pas autorisé à utiliser ce PNJ !") DarkRP.notify(activator, 0, 7, "Il n'est disponible que si aucun armurier n'est disponible.") DarkRP.notify(activator, 0, 8, "Il y a actuellement "..teamNumbers.." armurier(s) en ville.") end end
end
net.Receive("Wasied:GunSeller:RemoveMoney", function(len, ply) local wepid = net.ReadInt(6) local ent = net.ReadEntity() if ent:GetClass() != "gun_seller_npc" then return end if IsValid(ply) && ply:GetPos():DistToSqr(ent:GetPos()) < 250^2 --[[Juste une sécurité]] then local wep = WasiedGunSellerConfig.Weapons[wepid] if ply:canAfford(wep.price) then ply:addMoney(-wep.price) DarkRP.notify(ply, 0, 7, "Vous avez été débité de "..wep.price.."€.") --ply:Give(wep.weapon) local buyent = ents.Create(wep.weapon) if not buyent:IsValid() then error("Entity '" ..wep.weapon.. "' does not exist or is not valid.") end if buyent.Setowning_ent then buyent:Setowning_ent(ply) end buyent:SetPos(ent:GetPos()+Vector(0,-50,10)) buyent.SID = ply.SID buyent.allowed = wep.allowed ent.DarkRPItem = wep buyent:Spawn() buyent:Activate() buyent:CPPISetOwner(ply) local phys = buyent:GetPhysicsObject() if phys:IsValid() then phys:Wake() end print("["..WasiedGunSellerConfig.AddonName.."] "..ply:Nick().." vient d'acheter une arme "..wep.weapon.." !") else DarkRP.notify(ply, 0, 9, "Vous n'avez pas assez d'argent pour acheter ceci !") end end
end)
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 273
Score réaction
9 687
Points
1 845
@Wasied
 
  • Initiateur de la discussion
mrcodsv

mrcodsv

Geek suprême
Messages
214
Score réaction
33
Points
130
Merci de l'avoir identifié, j'ai finalement réussi mon bricolage lua en créant une fonction à l'initialisation du npc avec un count suivant la classe de l'objet acheté :D
Au final il faut bien faire des pauses et remettre la chose à légèrement plus tard et on fini par trouver
 
  • Initiateur de la discussion
mrcodsv

mrcodsv

Geek suprême
Messages
214
Score réaction
33
Points
130
Ah bah non ahah au final j'ai une erreur qui est pas ouf FailFish

Vis à vis de ma modification ça compte le nombre que j'ai acheté et non le nombre pour chaque classe :/ donc si quelqu'un à la solution je dirais pas non :D


Java:
AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
include("shared.lua")
util.AddNetworkString("Wasied:GunSeller:OpenFrame")
util.AddNetworkString("Wasied:GunSeller:RemoveMoney")
function ENT:Initialize() self:SetModel(WasiedGunSellerConfig.model) self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) self:SetUseType( SIMPLE_USE ) self:DropToFloor() self.NextTime = CurTime() + 1 local phys = self:GetPhysicsObject() if phys:IsValid() then phys:Wake() end self.ownedent = {}
end
function ENT:SpawnFunction( ply, tr, ClassName ) if ( !tr.Hit ) then return end local SpawnPos = tr.HitPos + tr.HitNormal * 10 local SpawnAng = ply:EyeAngles() SpawnAng.p = 0 SpawnAng.y = SpawnAng.y + 180 local ent = ents.Create( ClassName ) ent:SetPos( SpawnPos ) ent:SetAngles( SpawnAng ) ent:Spawn() ent:Activate() return ent
end
function ENT:AcceptInput(inp, activator, caller) if inp == "Use" && activator:IsPlayer() && self.NextTime < CurTime() then self.NextTime = CurTime() + 2 local teamNumbers = team.NumPlayers(WasiedGunSellerConfig.GunTeam) if teamNumbers == 0 then net.Start("Wasied:GunSeller:OpenFrame") net.WriteEntity(self) net.Send(activator) elseif teamNumbers > 0 then DarkRP.notify(activator, 0, 6, "Vous n'êtes pas autorisé à utiliser ce PNJ !") DarkRP.notify(activator, 0, 7, "Il n'est disponible que si aucun armurier n'est disponible.") DarkRP.notify(activator, 0, 8, "Il y a actuellement "..teamNumbers.." armurier(s) en ville.") end end
end
net.Receive("Wasied:GunSeller:RemoveMoney", function(len, ply) local wepid = net.ReadInt(6) local ent = net.ReadEntity() if ent:GetClass() != "gun_seller_npc" then return end if IsValid(ply) && ply:GetPos():DistToSqr(ent:GetPos()) < 250^2 --[[Juste une sécurité]] then local wep = WasiedGunSellerConfig.Weapons[wepid] local maxent = wep.max if table.Count(ent.ownedent) < maxent then if ply:canAfford(wep.price) then ply:addMoney(-wep.price) DarkRP.notify(ply, 0, 7, "Vous avez été débité de "..wep.price.."€.") --ply:Give(wep.weapon) local buyent = ents.Create(wep.weapon) if not buyent:IsValid() then error("Entity '" ..wep.weapon.. "' does not exist or is not valid.") end if buyent.Setowning_ent then buyent:Setowning_ent(ply) end buyent:SetPos(ent:GetPos()+Vector(0,-50,10)) buyent.SID = ply.SID buyent.allowed = wep.allowed buyent.DarkRPItem = wep buyent:Spawn() buyent:Activate() buyent:CPPISetOwner(ply) local phys = buyent:GetPhysicsObject() if phys:IsValid() then phys:Wake() end print("["..WasiedGunSellerConfig.AddonName.."] "..ply:Nick().." vient d'acheter une arme "..wep.weapon.." !") local id = -1 for i = 1 , maxent do if ent.ownedent[i] == nil then id = i break end end buyent.owner = ent buyent.id = id ent.ownedent[id] = buyent else DarkRP.notify(ply, 0, 9, "Vous n'avez pas assez d'argent pour acheter ceci !") end else DarkRP.notify(ply, 1, 9, "Vous avez atteint le maximum de ("..wep.name..") !") end end
end)
 
Wasied

Wasied

Psychopathe
Messages
911
Score réaction
398
Points
210
Cet addon est outdated ça va faire genre 6 mois j'y ai pas touché je déconseille totalement de l'utiliser et il doit être exploitable.
Je te conseille d'en refaire un si possible :)

Si tu veux vraiment le modifier mon discord : Wasied#9999 je verrai comment je peux te rediriger
 
Discord d'entraide
Rejoignz-nous sur Discord