/)ssasin

[Ayuda] falied to call gang_system:getGangData [string"?"]

Recommended Posts

Hola necesito ayuda con este script . Lo que quiero hacer es que se vea el dxdrawtext en el color del gang.

Me tira este error cuando lo inicio falied to call gang_system:getGangData[string"?"]

Creo que no funciona porque el export getGangData es solo para server , no habra alguna forma de hacerlo para que funcione en el client

Pd: Es el gang_system de Castillo

Aqui el codigo

Client

Spoiler

addEventHandler("onClientRender",getRootElement(),
   function()
      local px,py,pz,tx,ty,tz,dist
      px,py,pz = getCameraMatrix()
      for k,v in ipairs(getElementsByType("player")) do
        if (v~=getLocalPlayer()) then
            tx,ty,tz = getElementPosition(v)
            dist = math.sqrt((px-tx)^2 + (py-ty)^2 + (pz-tz)^4)
            if dist < 30.0 then
                  local sx,sy,sz = getPedBonePosition(v,5)
                  local x,y = getScreenFromWorldPosition(sx,sy,sz+0.3)
                  if x then
                    local gangName = getElementData ( v, "gang" )
                    if gangName ~= "None" or gangName ~= "" or gangName ~= nil then    
                    local scale =  0.65+(15-dist)*0.02;
                    local text = "Miembro de "..gangName
                    local w = dxGetTextWidth( text, scale, "bankgothic" )
                    local r, g, b = unpack(exports.gang_system:getGangData(gangName, "color") or {255, 255, 255})
                    dxDrawText(text,x-w/2,y,x,y,tocolor( r, g, b,255),scale,"bankgothic")
                  end
               end
         end
      end
   end
   end
)
 

 

 

Share this post


Link to post

Hola Assasin, en este subforo solo se permiten posts en inglés. En español debes hacerlos aquí: https://forum.mtasa.com/forum/167-scripting/

Con respecto a tu pregunta, lo que puedes hacer es desde el server side asignarle a los jugadores a través de un element data el color de su gang, algo así:

addEventHandler("onPlayerLogin", root,
  function ()
    r, g, b = exports.gang_system:getGangData(getElementData(source, "gang"), "color")
    setElementData(source, "gang_color", {r, g, b})
  end
)

-- y entonces, desde el cliente:

r, g, b = unpack(getElementData(v, "gang_color"))

 

  • Thanks 1

Share this post


Link to post
14 hours ago, Tomas said:

Hola Assasin, en este subforo solo se permiten posts en inglés. En español debes hacerlos aquí: https://forum.mtasa.com/forum/167-scripting/

Con respecto a tu pregunta, lo que puedes hacer es desde el server side asignarle a los jugadores a través de un element data el color de su gang, algo así:


addEventHandler("onPlayerLogin", root,
  function ()
    r, g, b = exports.gang_system:getGangData(getElementData(source, "gang"), "color")
    setElementData(source, "gang_color", {r, g, b})
  end
)

-- y entonces, desde el cliente:

r, g, b = unpack(getElementData(v, "gang_color"))

Me tira este error bad argument #1 to "unpack" (table expected, got boolean) :v

Share this post


Link to post
On 21/8/2017 at 15:29, /)ssasin said:

Me tira este error bad argument #1 to "unpack" (table expected, got boolean) :v

Postea todo el código

Share this post


Link to post
--Client-side

addEventHandler("onClientRender",getRootElement(),
   function()
      local px,py,pz,tx,ty,tz,dist
      px,py,pz = getCameraMatrix()
      for k,v in ipairs(getElementsByType("player")) do
        if (v~=getLocalPlayer()) then
            tx,ty,tz = getElementPosition(v)
            dist = math.sqrt((px-tx)^2 + (py-ty)^2 + (pz-tz)^4)
            if dist < 30.0 then
                  local sx,sy,sz = getPedBonePosition(v,5)
                  local x,y = getScreenFromWorldPosition(sx,sy,sz+0.3)
                  if x then
                    local gangName = getElementData ( v, "gang" )
                    if gangName ~= "None" or gangName ~= "" or gangName ~= nil then    
                    local scale =  0.65+(15-dist)*0.02;
                    local text = "Miembro de "..gangName
                    local w = dxGetTextWidth( text, scale, "bankgothic" )
                    local color = getElementData(localPlayer, "gang_color") or {255, 255, 255}
                    dxDrawText(text,x-w/2,y,x,y,tocolor( color[1], color[2], color[3], 255),scale,"bankgothic")
                  end
               end
         end
      end
   end
   end
)
--Server-side

local gs = exports.gang_system

addEventHandler("onPlayerLogin", root
	function()
		local gang = gs:getPlayerGang(source)
		if gang ~= "None" then
			local color = gs:getGangData(gang, "color")
			setElementData(source, "gang_color", color)
		end
	end
)

 

Edited by #Dv^

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.