Jump to content

[HELP]setTimer


TwiX!

Recommended Posts

Проблема в том, что он не хочет вызывать функцию сервера, я незнаю почему.. вроде всё правильно

Client

  
function getMaps() 
    totalServerMaps = 0 
    totalDmMaps = 0 
    totalDdMaps = 0 
    setTimer(callServerFunction,500,1,"getServerMaps",getLocalPlayer()) 
end 
addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),getMaps) 

Server

  
function getServerMaps (loadList) 
    local tableOut 
    if loadList then 
        tableOut = {} 
        -- local deletedMaps = {} 
        local gamemodes = {} 
        gamemodes = call(getResourceFromName("mapmanager"), "getGamemodes") 
        for id,gamemode in ipairs (gamemodes) do 
            tableOut[id] = {} 
            tableOut[id].name = getResourceInfo(gamemode, "name") or getResourceName(gamemode) 
            tableOut[id].resname = getResourceName(gamemode) 
            tableOut[id].maps = {} 
            local maps = call(getResourceFromName("mapmanager"), "getMapsCompatibleWithGamemode" , gamemode) 
            for _,map in ipairs (maps) do 
                table.insert(tableOut[id]["maps"] ,{name = getResourceInfo(map, "name") or getResourceName(map), resname = getResourceName(map)}) 
            end 
            table.sort(tableOut[id]["maps"], sortCompareFunction) 
        end 
        table.sort((tableOut), sortCompareFunction) 
        table.insert(tableOut, {name = "no gamemode", resname = "no gamemode", maps = {}}) 
        local countGmodes = #tableOut 
        local maps = call(getResourceFromName("mapmanager"), "getMapsCompatibleWithGamemode") 
        for id,map in ipairs (maps) do 
            -- if fileOpen(":"..getResourceName(map).."/deleted") then 
                -- table.insert(deletedMaps ,{name = getResourceInfo(map, "name") or getResourceName(map), resname = getResourceName(map)}) 
            -- else 
                table.insert(tableOut[countGmodes]["maps"] ,{name = getResourceInfo(map, "name") or getResourceName(map), resname = getResourceName(map)}) 
            -- end 
        end 
        -- table.sort(deletedMaps, sortCompareFunction) 
        table.sort(tableOut[countGmodes]["maps"], sortCompareFunction) 
        -- table.insert(tableOut, {name = "deleted maps", resname = "deleted maps", maps = {}}) 
        -- local countGmodes = countGmodes + 1 
        -- tableOut[countGmodes]["maps"] = deletedMaps 
    end 
    local map = call(getResourceFromName("mapmanager"), "getRunningGamemodeMap") 
    local gamemode = call(getResourceFromName("mapmanager"), "getRunningGamemode") 
    gamemode = gamemode and getResourceName(gamemode) or "N/A" 
    map = map and getResourceName(map) or "N/A" 
    callClientFunction(loadList,"loadMaps", tableOut, gamemode, map) 
end 

в meta.xml

<include resource="mapmanager" /> 

тоже добавил

758ad05eace1.png

в чём может быть проблема?

"loadmaps" функция есть, могу выложить

Edited by Guest
Link to comment

теперь другая проблема..

  
function loadMaps(gamemodeMapTable, gamemode, map) 
    guiGridListClear(maps_grid) 
    if gamemodeMapTable then 
        aGamemodeMapTable = gamemodeMapTable 
        for id,gamemode in pairs (gamemodeMapTable) do 
            if (gamemode.name == "race") then 
                for id,map in ipairs (gamemode.maps) do 
                    local row = guiGridListAddRow ( maps_grid ) 
                    guiGridListSetItemText ( maps_grid, row, 1, map.name, false, false ) 
                    guiGridListSetItemData ( maps_grid, row, 1, map.resname) 
                    totalServerMaps = totalServerMaps+1 
                    if (string.find(map.name,"[DM]",1,true)) then 
                        totalDmMaps = totalDmMaps+1 
                    elseif (string.find(map.name,"[DD]",1,true)) then 
                        totalDdMaps = totalDdMaps+1 
                    end 
                    updateMapLabels(1) 
                end 
            end 
        end 
    end 
end 

ee4d3d567a54.png

другая проблема

если поставить "Race" с большой буквы, то много варнингов то что не может установить текст в лабел

с маленькой буквы race то, вот этот варнинг..

Link to comment
теперь другая проблема..
  
function loadMaps(gamemodeMapTable, gamemode, map) 
    guiGridListClear(maps_grid) 
    if gamemodeMapTable then 
        aGamemodeMapTable = gamemodeMapTable 
        for id,gamemode in pairs (gamemodeMapTable) do 
            if (gamemode.name == "race") then 
                for id,map in ipairs (gamemode.maps) do 
                    local row = guiGridListAddRow ( maps_grid ) 
                    guiGridListSetItemText ( maps_grid, row, 1, map.name, false, false ) 
                    guiGridListSetItemData ( maps_grid, row, 1, map.resname) 
                    totalServerMaps = totalServerMaps+1 
                    if (string.find(map.name,"[DM]",1,true)) then 
                        totalDmMaps = totalDmMaps+1 
                    elseif (string.find(map.name,"[DD]",1,true)) then 
                        totalDdMaps = totalDdMaps+1 
                    end 
                    updateMapLabels(1) 
                end 
            end 
        end 
    end 
end 

ee4d3d567a54.png

другая проблема

если поставить "Race" с большой буквы, то много варнингов то что не может установить текст в лабел

с маленькой буквы race то, вот этот варнинг..

Во-первых, поставьте Race с большой буквы и исправляйте дальнейшие ошибки. У вас не существует переменной race, поэтому одна ошибка. Хватит судить о правильности кода по количеству ошибок. Это вам не компилятор, что бы все сразу давать. Если вы исправили ошибку, а их стало еще больше (имеется в виду, тех, которые не связаны с тем, что вы исправили) - все верно. Исправляйте другие.

Link to comment

В МТА происходит следующие: программа выполняет код, если нашёл ошибку, то прекращает работу функции (function). Поэтому исправил одну ошибку, появились другие, значит исправил правильно, исправляй другие. Хотя оно не всегда так, ошибки могут быть общие.

Link to comment
В МТА происходит следующие: программа выполняет код, если нашёл ошибку, то прекращает работу функции (function). Поэтому исправил одну ошибку, появились другие, значит исправил правильно, исправляй другие. Хотя оно не всегда так, ошибки могут быть общие.

Это не в МТА так, а в Lua. Lua прерывает выполнение скрипта при любой ошибки. (Это можно проверить функцией error или assert).

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