Jump to content

Вопрос к опытным скриптерам.


Recommended Posts

При сервере который включается у меня на ПК - скрипты работают нормально, как нужно, без проблем.

Но когда я загружаю их на хостинг - некоторые из них начинают работать только после перезагрузки скрипта. (При том, что в mtaserver они прописаны где надо).

Пользовался разными FTP менеджерами: Total Commander, FileZilla.

Все скрипты в UTF-8 или ANSI кодировке. Ошибок сервер не выдаёт.

Если нужно, могу скрипт скинуть на проверку. Может обнаружится что-то.

Link to comment
При сервере который включается у меня на ПК - скрипты работают нормально, как нужно, без проблем.

Но когда я загружаю их на хостинг - некоторые из них начинают работать только после перезагрузки скрипта. (При том, что в mtaserver они прописаны где надо).

Пользовался разными FTP менеджерами: Total Commander, FileZilla.

Все скрипты в UTF-8 или ANSI кодировке. Ошибок сервер не выдаёт.

Если нужно, могу скрипт скинуть на проверку. Может обнаружится что-то.

Такое чувство, что у вас серверный onResourceStart даёт команду клиентам (которые уже подключены ранее), а те кто после подключился - естественно ничего не получат, ибо скрипт уже запущен.

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

Но когда я загружаю их на хостинг - некоторые из них начинают работать только после перезагрузки скрипта. (При том, что в mtaserver они прописаны где надо).

Пользовался разными FTP менеджерами: Total Commander, FileZilla.

Все скрипты в UTF-8 или ANSI кодировке. Ошибок сервер не выдаёт.

Если нужно, могу скрипт скинуть на проверку. Может обнаружится что-то.

Такое чувство, что у вас серверный onResourceStart даёт команду клиентам (которые уже подключены ранее), а те кто после подключился - естественно ничего не получат, ибо скрипт уже запущен.

Может я не правильно понял, но скрипты не работают даже после обновления и перезагрузки хостинга. Даже после полного удаления и установки мода сначала - всё по старому. Я не думаю что тут дело в самих скриптах, так как они не изменялись.

в mtaserver пропиши загрузку ресурсов по 2 раза

кидай ресурсы которые не загружаются, позырим..

Кстати, это идея. Сейчас попробую.

Link to comment
Да, вы не правильно поняли.

Выкладывайте скрипты

Handling editor. (Там ничего не трогал).

Carlock:

Client:

  
  
-- local player 
localPlayer = getLocalPlayer ( ) 
  
-- playSoundNearElement 
addEvent ( "onPlaySoundNearElement", true ) 
function playSoundNearElement ( theElement, sound ) 
--  local sound = 5 
    local maxdist = 15.0 
    -- valid element 
    if ( theElement ) then 
        local x,y,z = getElementPosition ( theElement ) 
        local x2,y2,z2 = getElementPosition ( localPlayer ) 
        local dist = getDistanceBetweenPoints3D ( x, y, z, x2, y2, z2 )  
        -- distance is less than parameter maxdist 
        if ( dist < maxdist ) then 
            -- play parameter sound  
            playSoundFrontEnd ( 5 ) 
        --  outputChatBox ( "sound should play" ) 
        else 
        --  outputChatBox ( "not in range" ) 
        end 
    else 
        -- outputChatBox ( "invalid element" ) 
    end 
end 
addEventHandler ( "onPlaySoundNearElement", getRootElement(), playSoundNearElement ) 
  

Server:

  
function initCarLocks ()
    -- Initilize Player Element Data
    local players = getElementsByType ( "player" )
    for k,p in ipairs(players) do
        removeElementData ( p, "cl_ownedvehicle" )
        bindKey ( p, "3", "down", doToggleLocked )
        bindKey ( p, "4", "down", doToggleEngine )
        bindKey ( p, "5", "down", doToggleLights )
    end
 
    -- Initilize Vehicle Element Data
    local vehicles = getElementsByType ( "vehicle" )
    for k,v in ipairs(vehicles) do
        removeElementData ( v, "cl_vehicleowner" )
        removeElementData ( v, "cl_vehiclelocked" )
        removeElementData ( v, "cl_enginestate" )
        setVehicleLocked ( v, false )
        setVehicleOverrideLights ( v, 0 )
    end
end
addEventHandler ( "onResourceStart", getResourceRootElement ( getThisResource () ), initCarLocks )
addEventHandler ( "onResourceStop", getResourceRootElement ( getThisResource () ), initCarLocks )
 
-- player joins
function cl_PlayerJoin ( )
bindKey ( source, "3", "down", doToggleLocked )
 
end
addEventHandler ( "onPlayerJoin", getRootElement(), cl_PlayerJoin )
 
-- player quits
function cl_PlayerQuit ( )
    -- check for owned car
    local ownedVehicle = getElementData ( source, "cl_ownedvehicle" )
    if (ownedVehicle ~= false) then
        cl_RemoveVehicleOwner ( ownedVehicle )
    end
end
addEventHandler ( "onPlayerQuit", getRootElement(), cl_PlayerQuit )
 
-- player dies
function cl_PlayerWasted ( )
    -- check for owned car
    local ownedVehicle = getElementData ( source, "cl_ownedvehicle" )
    if (ownedVehicle ~= false) then
        cl_RemoveVehicleOwner ( ownedVehicle )
    end
end
addEventHandler ( "onPlayerWasted", getRootElement(), cl_PlayerWasted )
 
-- player tries to enter vehicle
function cl_VehicleStartEnter ( enteringPlayer, seat, jacked )
    local theVehicle = source
    local theOwner
    -- locked and not owner entering
    if ( getElementData ( theVehicle, "cl_vehiclelocked" ) == true ) then
        theOwner = getElementData ( theVehicle, "cl_vehicleowner" )
        if theOwner ~= false and theOwner ~= enteringPlayer then
            -- make sure they dont enter
            --cancelEvent();
        end
     end
end
addEventHandler ( "onVehicleStartEnter", getRootElement(), cl_VehicleStartEnter )
 
-- player enters a vehicle
function cl_PlayerDriveVehicle ( player, seat, jacked )
    -- Driver Enter
    if ( seat == 0 ) then
        oldVehicle = getElementData ( player, "cl_ownedvehicle" )
        -- not entering player's own owned vehicle
        if ( (cl_VehicleLocked(source) == true) and (cl_VehicleOwner(source) ~= player) ) then
            removePedFromVehicle(player)
            Err_Msg("Этот транспорт закрыт.", player)
            return false
        end
        -- set element data for vehicle and owner
        cl_SetVehicleOwner ( source, player )
    end
    return true
end
addEventHandler ( "onVehicleEnter", getRootElement(), cl_PlayerDriveVehicle )
 
-- vehicle respawns
function cl_VehicleRespawn ( exploded )
    cl_RemoveVehicleOwner ( source )
end
addEventHandler ( "OnVehicleRespawn", getRootElement(), cl_VehicleRespawn )
 
-- vehicle explosion
function cl_VehicleExplode ( )
    local theOwner = getElementData ( source, "cl_vehicleowner" )
    if ( theOwner ~= false ) then
        cl_RemoveVehicleOwner ( source )
    end
end
addEventHandler ( "onVehicleExplode", getRootElement(), cl_VehicleExplode )
 
-- set vehicle owner
function cl_SetVehicleOwner ( theVehicle, thePlayer )
    local oldVehicle = getElementData ( thePlayer, "cl_ownedvehicle" )
    if ( oldVehicle ~= false ) then
        -- unlock old car      
        removeElementData ( oldVehicle, "cl_vehicleowner" )
        removeElementData ( oldVehicle, "cl_vehiclelocked" )
        removeElementData ( oldVehicle, "cl_enginestate" )
        setVehicleLocked ( oldVehicle, false )
        -- set vars for new car
    end
    setElementData ( theVehicle, "cl_vehicleowner", thePlayer )
    setElementData ( theVehicle, "cl_vehiclelocked", false )
    setElementData ( thePlayer, "cl_ownedvehicle", theVehicle )
    setElementData( theVehicle, "cl_enginestate", true )
 
end
 
function cl_RemoveVehicleOwner ( theVehicle )
    local theOwner = getElementData ( theVehicle, "cl_vehicleowner" )
    if ( theOwner ~= false ) then
        removeElementData ( theOwner, "cl_ownedvehicle" )
        removeElementData ( theVehicle, "cl_vehicleowner" )
        removeElementData ( theVehicle, "cl_vehiclelocked" )
        removeElementData ( owned, "cl_enginestate" )
    end
    setVehicleLocked ( theVehicle, false )
 
end
 
-- flash the lights twice
function cl_FlashLights ( thePlayer )
    setTimer ( doToggleLights, 300, 4, thePlayer, true )
end
 
-- flash once
function cl_FlashOnce ( thePlayer )
    setTimer ( doToggleLights, 300, 2, thePlayer, true )
end
 
-- get vehicle owner ( according to vehicle's element data )
function cl_VehicleOwner ( theVehicle )
    return getElementData( theVehicle, "cl_vehicleowner" )
 
end
-- is vehicle locked ( according to vehicle's element data )
function cl_VehicleLocked ( theVehicle )
    return getElementData( theVehicle, "cl_vehiclelocked" )
end
-- messaging functions
-- send red error message
function Err_Msg ( strout, thePlayer )
    outputChatBox ( strout, thePlayer, 200, 0, 10 )
end
 
-- send message to all occupants of vehicle
function Car_Msg ( strout, theVehicle )
    numseats = getVehicleMaxPassengers ( theVehicle )
    for s = 0, numseats do
        local targetPlayer = getVehicleOccupant ( theVehicle, s )
        if targetPlayer ~= false then
            outputChatBox ( strout, targetPlayer, 30, 144, 255 )
        end
    end
end
-- send aquamarine message to player
function Info_Msg ( strout, thePlayer )
    outputChatBox ( strout, thePlayer, 102, 205, 170 )
end
 
-- commands
function doToggleLocked ( source )
    local theVehicle , strout
    if ( getElementType(source) == "vehicle" ) then
        theVehicle = source
    end
    if ( getElementType(source) == "player" ) then
        theVehicle = getElementData ( source, "cl_ownedvehicle" )
    end
 
    if ( theVehicle ) then
        local vehiclename = getVehicleName ( theVehicle )
        -- already locked
        if ( getElementData ( theVehicle, "cl_vehiclelocked") == true ) then
            doUnlockVehicle ( source )
        else
            doLockVehicle ( source )
        end
    else
        Err_Msg("Заспавните транспорт чтобы закрывать или открывать его.", source)
    end
end 
 
function doLockVehicle ( source )
    local theVehicle , strout
    if ( getElementType(source) == "vehicle" ) then
        theVehicle = source
    end
    if ( getElementType(source) == "player" ) then
        theVehicle = getElementData ( source, "cl_ownedvehicle" )
    end
 
    if ( theVehicle ) then
        local vehiclename = getVehicleName ( theVehicle )
        -- already locked
        if ( getElementData ( theVehicle, "cl_vehiclelocked") == true ) then
            strout = "Транспорт " .. vehiclename .. " уже закрыт."
            Err_Msg(strout, source)
        else
            setElementData ( theVehicle, "cl_vehiclelocked", true)
            setVehicleLocked ( theVehicle, true )
            Car_Msg( "Траснпорт " .. vehiclename .. " закрыт.", theVehicle)
            if ( getVehicleController ( theVehicle ) == false ) then
                cl_FlashLights ( source )
            end
        end
    else
        Err_Msg("Заспавните транспорт что бы закрыть его.", source)
    end
end
 
function doUnlockVehicle ( source )
    local theVehicle, strout
    if ( getElementType(source) == "vehicle" ) then
        theVehicle = source
    end
    if ( getElementType(source) == "player" ) then
        theVehicle = getElementData ( source, "cl_ownedvehicle" )
    end
    if ( theVehicle ) then
    local vehiclename = getVehicleName ( theVehicle )
        if ( getElementData ( theVehicle, "cl_vehiclelocked") == false ) then
            strout = "Транспорт " .. vehiclename .. " уже открыт."
            Err_Msg(strout, source)
        else
            setElementData ( theVehicle, "cl_vehiclelocked", false)
            setVehicleLocked ( theVehicle, false )
            Car_Msg( "Транспорт " .. vehiclename .. " открыт.", theVehicle )
            if ( getVehicleController ( theVehicle ) == false ) then
                cl_FlashOnce ( source )
            end
        end
    else
        Err_Msg("Заспавните транспорт чтобы открыть его.", source)
    end
end
 
function doToggleLights ( source, beep )
    local theVehicle
    if (
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...