Jump to content

Instity

Members
  • Posts

    20
  • Joined

  • Last visited

Posts posted by Instity

  1. 10 hours ago, DNL291 said:

    source naquelas funções estarão como nil por padrão, não terá conflito por não estar em um evento

    A skin não salva ou não seta no jogador ao logar? Você precisa descobrir onde surge o erro. Na função 'dardados' só consta o setElementData; não vejo setElementModel no carregamento. Um erro que acabei de perceber, setElementData ao comprar a skin está armazenando uma boolean.

    Ela não salva ao sair do servidor ou entrar, vou ver aqui os erros


  2. 1 hour ago, Tommy. said:

    Envie a tabela skins e uma parte do client-side para que eu possa entender melhor o seu código.

    skins ={{{"Masculina",108,200},{"Masculina",20,200},{"Masculina",21,200},{"Masculina",24,200},{"Masculina",25,200},{"Criança",31,200},{"Criança",34,200},{"Feminina",85,200},{"Feminina",88,200},{"Masculina",18,200},{"Masculina",19,200},{"Feminina",89,200},{"Feminina",90,200},{"Masculina",2,200},{"Masculina",23,200},{"Feminina",188,200},{"Feminina",249,200},{"Masculina",115,200},{"Masculina",176,200},{"Masculina",271,200},{"Masculina",306,200},}}
    function render() 
    		dxDrawText("Enter - Comprar",711,630,770,650, tocolor(255,255,255,255),0.90,"clear","left","top",false,false,false,false,false)
    		dxDrawRectangle(568,601,238,77, tocolor(,,,181),false)--FUNDO
            dxDrawText("Roupas",620,607,715,622, tocolor(255,255,255,184),1.00,"clear","left","top",false,false,false,false,false)
            dxDrawText("Roupa:"..skins[t][page][1],578,637,637,650, tocolor(255,255,255,255),0.90,"clear","left","top",false,false,false,false,false)
            dxDrawText("Valor:"..skins[t][page][3],578,660,637,673, tocolor(255,255,255,255),0.90,"clear","left","top",false,false,false,false,false)endfunction panel(asd)ifnot show then
    		t = asd
    		page =1
    		show =true
    		setElementFrozen(localPlayer,true)
    		toggleAllControls(false)
    		setElementPosition(localPlayer,199.78810119629,-1588.57592773438,1000.5234375)
    		showChat(false)
    		setElementDimension(localPlayer,50)
    		addEventHandler("onClientRender", root, render)
    		setElementInterior(localPlayer,14)
    		ped = createPed(skins[t][page][2],199.78810119629,-158.57592773438,1000.5234375,219)
    		setElementInterior(ped,14)
    		setElementDimension(ped,50)
    		camera = setCameraMatrix(201.98789978027,-161.17990112305,1001.8842773438,201.35806274414,-160.43432617188,1001.6665039063)endend
    addEvent("skinPanel",true)
    addEventHandler("skinPanel", root, panel)

    skins[t]


    [1] -- Nome , skins[t]


    [2] -- Skin , skins[t]


    [3] --Valor

    2 hours ago, MesaDowN said:

    Porquê voce faz uma variavel de source? Sendo que source é uma variavel predefinida do MTA?

    Bem não fiz só acabei pegando este código para testar

  3. Quero salvar a skin após a compra mas não ela não salva o que pode ser?

    function SkinsBVR(thePlayer, page, t)
    	if getPlayerMoney(thePlayer) >= skins[t][page][3] then
    		takePlayerMoney(thePlayer, skins[t][page][3])
    		setElementModel(thePlayer, skins[t][page][2])
    		setElementData(thePlayer, "v.Skin"..skins[t][page][2], true)
    		outputChatBox("#FFFFFFVocê comprou uma skin!", thePlayer, 255, 255, 255, true)
    	else
    		outputChatBox("#FFFFFFDinheiro insuficiente!", thePlayer, 255, 255, 255, true)
    	end
    end
    
    --Save
    function salvardados(conta)
    	if conta then
    	local source = getAccountPlayer(conta)
    	local skin = getElementData(source, "v.Skin"..skins[t][page][2])
    	setAccountData ( conta, "v.Skin"..skins[t][page][2], skin )
    	end	
    end
    
    function dardados(conta)
    	if not (isGuestAccount (conta)) then
    		if (conta) then	
    			local source = getAccountPlayer(conta)	
    			local skin2 = getAccountData(conta, "v.Skin"..skins[t][page][2])
    			setElementData ( source, "v.Skin"..skins[t][page][2], skin2)
    		end
    	end	
    end
    
    addEventHandler("onPlayerLogin", root,
      function( _, acc )
    	setTimer(dardados,50,1,acc)
      end
    )
    
    function startScript ( res )
    	if res == getThisResource() then
    		for i, player in ipairs(getElementsByType("player")) do
    			local acc = getPlayerAccount(player)
    			if not isGuestAccount(acc) then
    				dardados(acc)
    			end
    		end
    	end
    end
    addEventHandler ( "onResourceStart", getRootElement(), startScript )
    
    function stopScript( res )
        if res == getThisResource() then
    		for i, player in ipairs(getElementsByType("player")) do
    			local acc = getPlayerAccount(player)
    			if not isGuestAccount(acc) then
    				salvardados(acc)
    			end
    		end
    	end
    end 
    addEventHandler ( "onResourceStop", getRootElement(), stopScript )
    
    function sair ( quitType )
    	local acc = getPlayerAccount(source)
    	if not (isGuestAccount (acc)) then
    		if acc then
    			salvardados(acc)
    		end
    	end
    end
    addEventHandler ( "onPlayerQuit", getRootElement(), sair )
    function startScript ( res )
    	if res == getThisResource() then
    		for i, player in ipairs(getElementsByType("player")) do
    			local acc = getPlayerAccount(player)
    			if not isGuestAccount(acc) then
    				dardados(acc)
    			end
    		end
    	end
    end
    addEventHandler ( "onResourceStart", getRootElement(), startScript )
    
    function stopScript( res )
        if res == getThisResource() then
    		for i, player in ipairs(getElementsByType("player")) do
    			local acc = getPlayerAccount(player)
    			if not isGuestAccount(acc) then
    				salvardados(acc)
    			end
    		end
    	end
    end 
    addEventHandler ( "onResourceStop", getRootElement(), stopScript )
    
    function sair ( quitType )
    	local acc = getPlayerAccount(source)
    	if not (isGuestAccount (acc)) then
    		if acc then
    			salvardados(acc)
    		end
    	end
    end
    addEventHandler ( "onPlayerQuit", getRootElement(), sair )

     

  4. 1 hour ago, [M]ister said:

    Tente:

    
    function adicionarCorp(thePlayer, _, id)
        if (isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup("Admin"))) then
            if (setElementData(getPlayerID(tonumber(id)), "INT:BTS", true)) then
                outputChatBox("[INT]: #ffffffVocê colocou o jogador [ID]:"..id.." na corporação!", thePlayer,255,255,255, true)
            end
        end
    end
    addCommandHandler("corp", adicionarCorp)
    
    function removeCorp(thePlayer, _, id)
        if (isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup("Admin"))) then
            if (removeElementData(getPlayerID(tonumber(id)), "INT:BTS")) then
                outputChatBox("[INT]: #ffffffVocê removeu o jogador [ID]:"..id.." da corporação!", thePlayer,255,255,255, true)
            end
        end
    end
    addCommandHandler("rcorp", removeCorp)
    

    Obs: getPlayerID não é uma função nativa do MTA, espero que esteja importando/incluindo no seu código.

    Funcionou perfeitamente sim o código está incluido.

  5. Fiz um comando para setar um elementData por id so que em vez de setar pro player esta setando para mim, mesma coisa ao tentar remover o elementData

    function adicionarCorp(thePlayer, id)
    	local player = getPlayerID(tonumber(id))
    	if isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup("Admin")) then
    	setElementData(player, "INT:BTS", tonumber(id))
    	outputChatBox("[INT]: #ffffffVocê colocou o jogador [ID]:"..id.." na corporação!", thePlayer,255,255,255, true)
    	end
    end
    addCommandHandler("corp", adicionarCorp)
    
    function removeCorp(thePlayer, id)
    	local player = getPlayerID(tonumber(id))
    	if isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup("Admin")) then
    	removeElementData(player, "INT:BTS", tonumber(id))
    	outputChatBox("[INT]: #ffffffVocê removeu o jogador [ID]:"..id.." da corporação!", thePlayer,255,255,255, true)
    	end
    end
    addCommandHandler("rcorp", removeCorp)

     

     

  6. 17 hours ago, Lord Henry said:

    Tente isso:

    
    function verificarACL ()
    	local resourceName = getResourceName (resource) -- resource é uma variável predefinida pelo MTA, ela é = getThisResource()
    	if not isObjectInACLGroup ("resource."..resourceName, aclGetGroup("Admin")) then
    		outputDebugString (resourceName..": Adicione este resource na ACL Group 'Admin'")
    		cancelEvent ()
    	end
    end
    addEventHandler ("onResourceStart", resourceRoot, verificarACL) -- Ativa essa função quando este resource for iniciado.
    -- resourceRoot também é predefinida pelo MTA, ela é = getResourceRootElement(getThisResource())
    

    Predefined_variables_list

    Obs: É necessário estar com /debugscript 3 ativado para ver a mensagem.

    Entendi a mensagem apareceu normalmente eo script não foi inicado, obrigado!

  7. Então no caso ficaria assim mas ainda continua do mesmo jeito

    function verificarACL(playerSource)
    local thisResource = getThisResource()
    local resourceName = getResourceName(thisResource)
    if not isObjectInACLGroup ( "resource." ..resourceName, aclGetGroup("Admin")) then
    outputChatBox ("Adicione o script na admin", playerSource, 255, 255, 255, true)
    stopResource(thisResource)
    end
    end

     

    • Like 1
  8. Aqui está o código

    function verificarACL(playerSource)
    local thisResource = getThisResource()
    local resourceName = getResourceName(thisResource)
    if not isObjectInACLGroup ( "resource."..resourceName, aclGetGroup("Admin")) then
    stopResource(resourceName)
    outputChatBox ("Adicione o script na admin", playerSource, 255, 255, 255, true)
    end
    end

     

  9. 8 minutes ago, KronoS Lettify said:

    Essa função que você mencionou pode ser usada também para pegar o nome do resource e colocar como parâmetro da função isObjectInACLGroup.

    Vejamos, o 1° parâmetro do isObjectInACLGroup é o Objeto(string) que ficará à disposição do grupo da ACL, tendo como exemplos: "user.Jim"; "resource.ctf".
    Usando o objeto resourcevocê deverá usar o nome do resource para usar como objeto, e vai conseguir isso usando as funções: getResourceName e getThisResource. Lembrando que usando o getThisResource vai pegar o resource onde foi executada a função, para pegar qualquer outro resource use getResourceFromName.


    Após compreendido o uso do 1° argumento do isObjectInACLGroup, a hipótese poderá ficar da seguinte forma:

    
    local este_resource = getResourceName(getThisResource())
    
    if (isObjectInACLGroup("resource."..este_resource, aclGetGroup("GrupoACL"))) then
      --
    else
      --
    end
    


    Este exemplo é bem parecido com uns que são frequentemente usados, veja só:

    
    local account_name = getAccountName(getPlayerAccount(thePlayer))
    
    if (isObjectInACLGroup('user.'..account_name, aclGetGroup("GrupoACL"))) then
      --
    else
      --
    end
    

     

    Qualquer dúvida sobre esta resposta, só marcar :D 

    Obrigado entendi eu estava usando if  isObjectInACLGroup ( "resource."..resourceName, aclGetGroup("Admin")) then

×
×
  • Create New...