Jump to content

Users info :O


TwiX!

Recommended Posts

сделал инфо в gui (grid)

но на какого бы я игрока не нажимал, показывает только моё инфо, как исправить?

client

как у меня..

  
function startGUI() 
--Start gui  
local sgn = getElementData(getLocalPlayer(), "info.signature") 
 -- и другие что в InfoUsers 
users_tab = guiCreateTab("Users",srtabpanel)  
--создал сам таб с игроками 
users_grid = guiCreateGridList(11,41,203,327,false,users_tab)  
-- players grid(выбор игрока0 
usersInfo_grid = guiCreateGridList(223,41,414,328,false,users_tab) 
--(грид где всё инфо) 
guiGridListSetSelectionMode(usersInfo_grid,2) 
namecolumn = guiGridListAddColumn(usersInfo_grid,"Name:",0.5) 
--создал где имя 
infocolumn = guiGridListAddColumn(usersInfo_grid,"Value:",0.5) 
-- и где значение 
InfoUsers = {{"Name: ", " "..string.gsub(getPlayerName(getLocalPlayer()),"#%x%x%x%x%x%x", "")},{"Country: ","  "..cny},{"E-Mail: ","  "..mail},{"Age: ","  "..age},{"Gender: ","  "..gender},{"Contact: ","  "..contact},{"Signature: ","  "..sgn},{"Money: ","  "..money},{"Rank: ","  "..rank},{"Wins: ","  "..DMWins},{"Loses: ","  "..Loses}}  
-- это для записи в "Name" и "Value"  
usersprogressbar = guiCreateProgressBar(278,7,358,28,false,users_tab) 
-- сам прогресс бар 
guiGridListSetSortingEnabled ( usersInfo_grid, false ) 
--выключил сортировку 
local column4 = guiGridListAddColumn( users_grid, "Users", 0.9 ) 
--добовляю юсерс 
if ( column4 ) then 
        for id, player in ipairs(getElementsByType("player")) do 
            row = guiGridListAddRow ( users_grid ) 
            guiGridListSetItemText ( users_grid, row, column4, string.gsub(getPlayerName ( player ),"#%x%x%x%x%x%x", ""), false, false ) 
        end 
    end 
--получил всех игроков убрал хекс 
end  
addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),startGUI) 
  
function gridlistPlayerSelect()  
-- функция выбора игрока 
    if source == users_grid then  
-- если кто то нажал на игрока в грид листе то 
        guiGridListClear(usersInfo_grid) 
-- очищаю правую колонку что бы он не копировал их ниже 
        if ( usersprogressbar ) then 
-- если это наш прогресс бар, то 
            guiProgressBarSetProgress(usersprogressbar, rank)  
-- устанавливаем прогресс 
            progress = guiProgressBarGetProgress(usersprogressbar) 
 -- проверяем какой сейчас он установлен 
            local selectedUsers = guiGridListGetItemText(users_grid, guiGridListGetSelectedItem(users_grid), 1) 
 -- сам выбор игрока 
            if ( selectedUsers ) then  
-- если игрок выбран то 
                for i,v in ipairs (InfoUsers) do 
                    local row = guiGridListAddRow (usersInfo_grid) 
--создаём  row 
                    guiGridListSetItemText (usersInfo_grid, row, 1, v[1], false, true) 
 --утсанавливаем значение что в "name" (UsersInfo) 
                    guiGridListSetItemText (usersInfo_grid, row, 2, v[2], false, true)  
-- что в "Value" 
                end 
            end 
        end 
    end 
end 
  
addEventHandler("onClientGUIClick", getResourceRootElement(getThisResource()), gridlistPlayerSelect) -- event 
  

478dfc4c97b7.png

Edited by Guest
Link to comment

А как оно будет меняться, если ты не добавил обработчик при клике на другой пункт? И ваще, выкладывай полные коды, у меня кофе нет, чтобы гадать, что же ты там от нас скрыл..

Link to comment

Итак, этот совет еще актуален

А как оно будет меняться, если ты не добавил обработчик при клике на другой пункт?

и откуда у тебя там source в функции, если эта функция не является обработчиком какого-либо события?

Link to comment
Итак, этот совет еще актуален
А как оно будет меняться, если ты не добавил обработчик при клике на другой пункт?

и откуда у тебя там source в функции, если эта функция не является обработчиком какого-либо события?

можно просто исправить и показать где ошибка, а не гадать что делать..

Link to comment
Мы можем опмочь тебе с кодом,а не делать его за тебя.

Так что выкладывай полный код.

Или найми скриптера.

это полный код, зачем мне скриптер если я сам могу сделать?

тем более если он сделает, я то ничё не пойму.. незнаю пример же можно показать..

я попросил помощи только как сделать проверку, чтобы показывал инфо и другого игрока, а не сделать весь код, исправить мой.

как бы мне сразу с сампа (pwn) на lua сложновато перейти..

Edited by Guest
Link to comment
они пытаются показать тебе как исправить чтобы в дальнейшем ты не тупил...

как то не заметно где они показывают это

Автор топика, ответь на вопрос, откуда у тебя в той функции взялась переменная source? Это же обычный вопрос.

..как мне ещё тогда проверку сделать по другому?

Link to comment

Qwert123,

Вы выложили полную кашу в место нормального логичного кода, и ещё возмущаетесь. Вам правильно всё говорят.

Поставим вопрос по другому: что такое source в Вашем коде?

Link to comment
Qwert123,

Вы выложили полную кашу в место нормального логичного кода, и ещё возмущаетесь. Вам правильно всё говорят.

Поставим вопрос по другому: что такое source в Вашем коде?

подправил код, и описал..

эм.. как бы просто source :D:?::?

Link to comment

ВОТ! Мы как раз и ждали 49 строку.

Тебе надо таблицу InfoUsers обновлять в этой функции, потому что InfoUsers всегда содержит данные локального игрока, т.е. ТВОИ. Откуда ты берешь данные игрока - неизвестно, так что тебе лучше знать откуда брать данные других игроков для обновления таблицы InfoUsers. Ну или нужно хранить данные всех игроков с помощью ElementData, чтобы потом можно было их легко вставить в GUI.

Link to comment
ВОТ! Мы как раз и ждали 49 строку.

Тебе надо таблицу InfoUsers обновлять в этой функции, потому что InfoUsers всегда содержит данные локального игрока, т.е. ТВОИ. Откуда ты берешь данные игрока - неизвестно, так что тебе лучше знать откуда брать данные других игроков для обновления таблицы InfoUsers. Ну или нужно хранить данные всех игроков с помощью ElementData, чтобы потом можно было их легко вставить в GUI.

вся статистика у меня сохраняется, как тогда сделать выбор игрока, и показать его статистику? а не только свою

Link to comment

Ну значит названия параметров ElementData ты все знаешь, при клике на гуевый ник игрока, вписываешь в нужные поля данные из ElementData игрока. Ты попробуй, еси чо потом подправим

Link to comment
Ну значит названия параметров ElementData ты все знаешь, при клике на гуевый ник игрока, вписываешь в нужные поля данные из ElementData игрока. Ты попробуй, еси чо потом подправим

значит эта функция

function gridlistPlayerSelect()  

у меня не правильная вся?

подправил 1 пост

Link to comment
там ты берешь данные из таблицы, а нужно из ElementData нужного игрока

я тогда не понимаю как в грид листе показать чью то информацию

так как InfoUsers берёт данные из ElementData

Link to comment
addEventHandler("onClientGUIClick", users_grid, 
    function ()  
     
        guiGridListClear(usersInfo_grid) 
        if (usersprogressbar) then 
            guiProgressBarSetProgress(usersprogressbar, rank)  
            progress = guiProgressBarGetProgress(usersprogressbar) 
            local selectedUsers = guiGridListGetItemText(users_grid, guiGridListGetSelectedItem(users_grid), 1) 
            if (selectedUsers) then 
                local player = getPlayerFromName(selectedUsers) 
                if player then 
                    InfoUsers = { 
                        {"Name: ", " " .. string.gsub(selectedUsers, "#%x%x%x%x%x%x", "")}, 
                        {"Country: ", "  " .. cny}, 
                        {"E-Mail: ", "  " .. mail}, 
                        {"Age: ", "  " .. age}, 
                        {"Gender: ", "  " .. gender}, 
                        {"Contact: ", "  " .. contact}, 
                        {"Signature: ", "  " .. getElementData(player, "info.signature")}, 
                        {"Money: ", "  " .. money}, 
                        {"Rank: ", "  " .. rank}, 
                        {"Wins: ", "  " .. DMWins}, 
                        {"Loses: ", "  " .. Loses} 
                    }  -- Сам получай эти значения 
     
                    for _, info in ipairs (InfoUsers) do 
                        local row = guiGridListAddRow (usersInfo_grid) 
                        guiGridListSetItemText(usersInfo_grid, row, 1, info[1], false, true) 
                        guiGridListSetItemText(usersInfo_grid, row, 2, info[2], false, true)  
                    end 
                end 
            end 
        end 
    end,  
    false 
) 

Обработчик события при клике.

Link to comment
function getInfoUsers() 
    local cnt = getElementData(getLocalPlayer(), "info.country") 
    local age = getElementData(getLocalPlayer(), "info.age") 
    local email = getElementData(getLocalPlayer(), "info.email") 
    local gebder = getElementData(getLocalPlayer(), "info.gender") 
    local contact = getElementData(getLocalPlayer(), "info.contact") 
    local sgn = getElementData(getLocalPlayer(), "info.signature") 
    local DMWins = getElementData(getLocalPlayer(),"Wins") 
    local Loses = getElementData(getLocalPlayer(),"Loses") 
    local money = getElementData(getLocalPlayer(), "data.money") 
    guiGridListClear(usersInfo_grid) 
    local selectedUsers = guiGridListGetItemText(users_grid, guiGridListGetSelectedItem(users_grid), 1) 
    if (selectedUsers) then 
        local Player = findPlayerByName(selectedUsers) 
        if Player then 
            if (usersprogressbar) then 
                guiProgressBarSetProgress(usersprogressbar, ratio) 
                progress = guiProgressBarGetProgress(usersprogressbar) 
                InfoUsers = {{"Name: ", " "..string.gsub(getPlayerName(getLocalPlayer()),"#%x%x%x%x%x%x", "")},{"Country: ","  "..cnt},{"E-Mail: ","  "..email},{"Age: ","  "..age},{"Gender: ","  "..Edit5},{"Contact: ","  "..contact},{"Signature: ","  "..sgn},{"Money: ","  "..money},{"Rank: ","  "..rank},{"Wins: ","  "..DMWins},{"Loses: ","  "..Loses}} 
                for _, info in ipairs (InfoUsers) do 
                    local row = guiGridListAddRow (usersInfo_grid) 
                    guiGridListSetItemText(usersInfo_grid, row, 1, info[1], false, true) 
                    guiGridListSetItemText(usersInfo_grid, row, 2, info[2], false, true) 
                end 
            end 
        end 
    end 
end 
addEventHandler("onClientGUIClick",getResourceRootElement(getThisResource()), getInfoUsers) 

или

addEventHandler ( "onClientGUIClick", users_grid, getInfoUsers, false ) 

всё равно только моё инфо

  
function findPlayerByName (name) 
    local player = getPlayerFromName(name) 
    if player then return player end 
    for i, player in ipairs(getElementsByType("player")) do 
        if string.find(string.gsub(getPlayerName(player):lower(),"#%x%x%x%x%x%x", ""), name:lower(), 1, true) then 
            return player 
        end 
    end 
return false 
end 

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...