Jump to content

[AJUDA] Dar veiculo a alguem de uma gridlist


Recommended Posts

ola galera, quanto tempo nao apareço na wiki, nao? bem, vamos direto ao ponto, estou querendo criar um painel pra quem for da staff ajudante dar tal coisa para um player servidor, por exemplo um carro, mas nao consegui acha uma forma para isso, eu fiz algumas gambiarras, e nada, pois quero selecionar alguem da gridlist ou seja os players que vai ganhar o tal carro, e tentei isso

Server

  
function spawnvehicle ( Ajudante, Jogador, vehID ) 
    if Ajudante then 
    local Ajudante = getPlayerName(Ajudante) 
    local Jogador = triggerClientEvent(Ajudante, "jogadores", Ajudante) 
    if isElement(vehicle[source]) then 
        destroyElement(vehicle[source]) 
    end 
    local x, y, z = getElementPosition(Jogador) 
    vehicle[source] = createVehicle(vehID , x, y, z) 
    if vehID == 529 then 
    else 
    outputChatBox("#c1c1c1[#fff000ALERTA#c1c1c1] O ajudante #ffffff"..Ajudante.."#c1c1c1 te deu um carro de acordo com o seu pedido!", Jogador, 0, 255, 0, true) 
    outputChatBox("#c1c1c1[#fff000ALERTA#c1c1c1] Voce deu o carro com sucesso1 ", Ajudante, 0, 255, 0, true) 
    end 
    warpPedIntoVehicle( Jogador, vehicle[source] ) 
end 
end 
addEvent( "carro", true ) 
addEventHandler( "carro", root, spawnvehicle ) 

Client

function ObterJogador () 
    guiGridListClear(Grid) 
    for i, thePlayer in ipairs ( getElementsByType ( "player" ) ) do 
        local row = guiGridListAddRow( Grid ) 
        guiGridListSetItemText ( Grid, row, 1, getPlayerName( thePlayer ), false, false ) 
    end 
end 
addEvent("jogadores", true) 
addEventHandler("jogadores", getRootElement(), ObterJogador) 

Link to comment

Complicado ajudar sem o código todo, btw você precisa de duas funções no lado do servidor:

  1. Uma que mostre os players para o ajudante
  2. Outra que dê o carro para o player

Você esta misturando essas duas, não vai dar certo, Já no lado do cliente você pode checar da seguinte maneira qual jogador o ajudante escolheu:

local row = guiGridListGetSelectedItem ( Grid ) 
if ( row ~= -1 ) then -- a função guiGridListGetSelectedItem retorna -1 se o jogador não escolheu nenhum item 
    local playerNick    =   guiGridListGetItemText ( Grid, row, 1 ); 
    local player        =   getPlayerFromName ( playerNick ); 
     
    -- aqui voce usa o trigger para dar o veiculo para o jogador 
    -- playerNick = nick do jogador 
    -- player = jogador (elemento) 
    -- ... 
else 
    outputChatBox ( "Escolha um player", localPlayer, 255, 0, 0 ) 
end 

Link to comment

bom, o problema é outro, eu quero q ele de pra alguem da grid, mas ele esta dando para mim, funçoes:

server

Veiculo = {} 
function carro () 
if Veiculo[source] and isElement(Veiculo[source]) then 
destroyElement (Veiculo[source]) 
end 
local x, y, z = getElementPosition (source) 
Veiculo[source] = createVehicle (529, x, y, z) 
warpPedIntoVehicle (source, Veiculo[source]) 
outputChatBox("#C1C1C1[ #FFF000AJUDANTE #C1C1C1] Voce ganhou um carro, como pedido ao ajudantes", source, 0, 255, 0, true) 
  end 
addEvent( "onSpawnVeh", true ) 
addEventHandler( "onSpawnVeh", root, carro ) 
  

client:

PAINELAJUDANTE = guiCreateWindow(296, 142, 450, 434, "Painel Ajudante ", false) 
Carro = guiCreateButton(30, 152, 133, 27, "Dar Carro", false, PAINELAJUDANTE) 
Box = guiCreateEdit(328, 33, 108, 17, "", false, PAINELAJUDANTE) 
        Grid = guiCreateGridList(301, 66, 139, 317, false, PAINELAJUDANTE) 
  
function ObterJogador () 
    guiGridListClear(Grid) 
    for i, thePlayer in ipairs ( getElementsByType ( "player" ) ) do 
        local row = guiGridListAddRow( Grid ) 
        guiGridListSetItemText ( Grid, row, 1, getPlayerName( thePlayer ), false, false ) 
    end 
end 
  
function BuscarList() 
    guiGridListClear( Grid ) 
    local Nommbre = guiGetText( Box ) 
    for i, thePlayer in ipairs ( getElementsByType ( "player" ) ) do 
        if ( thePlayer ~= localPlayer )  then 
        if ( string.find( getPlayerName( thePlayer ):lower(), Nommbre:lower() ) ) then 
            local row = guiGridListAddRow ( Grid ) 
            guiGridListSetItemText ( Grid, row, 1, getPlayerName ( thePlayer ), false, false ) 
            end 
        end 
    end 
end 
addEventHandler ("onClientGUIClick", Box, BuscarList ,false) 
  
function carro () 
    local local = getLocalPlayer() 
    local x, y, z = getElementPosition ( local ) 
    local vehicle = guiGridListGetItemText ( Grid, guiGridListGetSelectedItem(Grid), 1) 
    if vehicle then 
        triggerServerEvent("onSpawnVeh", localPlayer, tonumber(vehicle)) 
        end 
    end 
addEventHandler ("onClientGUIClick", Carro, carro, false) 
  
  

Link to comment

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.
×
×
  • Create New...