Jump to content

Вопросы и ответы по MTA.


Recommended Posts

  • Other Languages Moderators
Копайся сам в своем коде. Ищи createBlip или createBlipAttachedTo

Я их найду, не переживай. Вопрос имел упор на стандартное отображение игроков на радаре/карте.

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

Link to comment
Изначально на миникарте никто не отображается. Это все сделано скриптингом.

Вот блин.. Я просто тестил преимущественно сам, поэтому этого не замечал. Думал, что у меня один из модов убирает отображение игроков на миникарте и основной карте на весь экран.

Значит буду копать в другой направлении.

Link to comment
    local moneyam = getElementData(thePlayer, "money") 
  
    if(moneyam > 0) then 
        return moneyam 
    elseif moneyam == 0 then 
        return 0 

ERROR: global/s_money_globals.lua:134: attempt to concatenate local 'moneyam' (a boolean valu 
e) 
  

Что тут не так? Возвращать то должно число, а не bool

Link to comment
Значит переменная возвращает false. Проверьте значение в том месте где вы присваиваете эту элемент дату.

Она не может возвращать false, ибо через outputchatbox выводится то кол-во денег, которое имею с собой в игре.

Неправильно задано условие может?

Link to comment

Ошибка в дебаге свидетельствует о том, что переменная 'moneyam' возвращает именно булевое значение, а значит это может быть либо true, либо false. Не могли бы вы скинуть полный код в таком случае.

Link to comment

Наверное, вы не ту строку нам скинули, эта может дать ошибку типа 'attempt to compare number with boolean'. Где-то должна быть операция скленивания строк ( та которая 'concatenate', .. ).

Link to comment
function getMoney(thePlayer) 
    local moneyam = getElementData(thePlayer, "money") 
  
    if(moneyam > 0) then 
        return moneyam 
    elseif moneyam == 0 then 
        return 0 
    end 
end 

Этот код правильный, но он мало о чем говорит. Вы не привели момент, где вы присваиваете эту элемент дату и момент, где пытаетесь конкатенировать (склеить) эту дату с чем-либо.

Link to comment

Проблема еще может быть в том, что до того, как вы вызываете getMoney(), у игрока нет установленных на нем данных в ключе "money". Поэтому getElementData возвращает false. Предварительно установите ему какое-нибудь значение в этом ключе, например при заходе на сервер:

addEventHandler( 'onPlayerJoin', root, function() 
  setElementData( source, "money", 0 ) 
end ) 

Link to comment
Проблема еще может быть в том, что до того, как вы вызываете getMoney(), у игрока нет установленных на нем данных в ключе "money". Поэтому getElementData возвращает false. Предварительно установите ему какое-нибудь значение в этом ключе, например при заходе на сервер:
addEventHandler( 'onPlayerJoin', root, function() 
  setElementData( source, "money", 0 ) 
end ) 

Проверю наличие установки данных о деньгах в этом ключе :) Спасибо

upd1 С маркерами на карте разобрался, спасибо всем за инфу

Link to comment

Вот интересно стало

Почему в запросе sql используется для последней колонки такой вид

INSERT INTO asd SET ....., rotation='" .. mysql:escape_string(rotation) .. "',`limit`=5555") 
 

В предыдущие поля подставляются значения посредством ' " .. mysql:escape_string(argument) .. " ', а в последнее так. Причём если сделать его, как и остальные - вечные ошибки при запросе. Кто просветит меня? (:

Link to comment

Если ввести в автомобиле

outputChatBox( tostring( not getVehicleType( theVehicle ) == 'Automobile' ) ) 

то выводит false, однако если ввести

outputChatBox( tostring( not getVehicleType( theVehicle ) == 'Plane' ) ) 

то выводит все равно false. В чем проблема?

И как узнать какое расстояние прошел автомобиль за какой-то промежуток времени? (можно по разнице координат, но может он ездит вперед, назад)

Link to comment
Если ввести в автомобиле
outputChatBox( tostring( not getVehicleType( theVehicle ) == 'Automobile' ) ) 

то выводит false, однако если ввести

outputChatBox( tostring( not getVehicleType( theVehicle ) == 'Plane' ) ) 

то выводит все равно false. В чем проблема?

И как узнать какое расстояние прошел автомобиль за какой-то промежуток времени? (можно по разнице координат, но может он ездит вперед, назад)

По первому вопросу, возможно элемент theVehicle возвращает false, проверьте сперва это.

Насчет второго вопроса, как вариант, рендер на клиенте + вычисление разницы 3D координат. И неважно, едите вы вперед или назад.

Link to comment
По первому вопросу, возможно элемент theVehicle возвращает false, проверьте сперва это.

Нет, элемент theVehicle существует, просто во втором случае он не хочет инвертировать (not).

Еще вопрос: функция

setHelicopterRotorSpeed 

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

Link to comment

Подскажите, какой функцией можно получить текущую дату и время сервера через скрипт?

Нужно для записи в поле "дата регистрации" в mysql. По аналогии с php'шной NOW()

Link to comment
  • Other Languages Moderators
Подскажите, какой функцией можно получить текущую дату и время сервера через скрипт?

Нужно для записи в поле "дата регистрации" в mysql. По аналогии с php'шной NOW()

https://wiki.multitheftauto.com/wiki/GetRealTime оно? И функция NOW() же не из php а из SQL вроде как.

Link to comment
Подскажите, какой функцией можно получить текущую дату и время сервера через скрипт?

Нужно для записи в поле "дата регистрации" в mysql. По аналогии с php'шной NOW()

Так это ж mysql'ная фунция. В запросе ее пропиши. Например вот так

INSERT INTO 'table' ('lal') VALUES (NOW()) 
// or 
UPDATE table SET lal = NOW() WHERE 1; 

UPD:

Не видел прошлый ответ, т.к. открыл много разных страниц и начал читать, пока дошло до этой - появился ответ выше.

Link to comment

Спасибо, ребят. Попробую воспользоваться стандартным NOW() в запросе (перепутал php и mysql :D))

А функций, определяющих страну, или модулей, нет случайно? :mrgreen:

Link to comment

Функция getPlayerCountry (если не ошибаюсь) в ресурсе admin от lil Toady. Проверяет по базе geo ip.

P.s до этого просили аналог NOW только в Lua, собственно вот, если нужен формат timestamp, кому надо для динамических операций используйте.

https://wiki.multitheftauto.com/wiki/GetTimestamp

Link to comment

На виндовом сервере наотрез отказывается запускать модуль mysql

Всё время пишет

MODULE: Unable to load modules/mta_mysql.dll!

Модуль сам лежит в папке modules. В чём соль?

Link to comment
  • Other Languages Moderators
На виндовом сервере наотрез отказывается запускать модуль mysql

Всё время пишет

MODULE: Unable to load modules/mta_mysql.dll!

Модуль сам лежит в папке modules. В чём соль?

Нужна библиотека libmysql.dll и mta_mysql.dll должна соответствовать разрядности сервера.

Модуль уже старый и я не советую его использовать. Лучше пользоваться встроенными функциями.

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