Jump to content

Общий мини "HELP ME" топик по скриптингу


Recommended Posts

Случайно, вот:

  
local numbers= { 
  
"один", 
"два", 
"три", 
"четыре" 
  
} 
  
for i, tableNumb in ipairs(numbers) do 
outputChatBox(numbers[Math.random(#numbers)], 255, 0, 0, true ) 
end 
  

да, это почти то что надо. только нужно чтобы сообщения не повторялись.

Link to comment
local tMessages = { "Раз", "Два", "Три", "Четыре" }; 
  
math.randomseed( os.time() ); 
  
for i = 1, #tMessages do 
    local iRand = math.random( #tMessages ); 
    outputChatBox( tMessages[ iRand ] ); 
    table.remove( tMessages, iRand ); 
end 

Link to comment

Здравствуйте, скажите где недочёт, никак не могу сохранить текст. Посылаю через setElementData, проверяю через outputChatBox работает - выводит текст, перезахожу - сохраняю (по идеи), проверяю, значение false. Ошибок никаких не выводит.

function onResStartStatus () 
    executeSQLQuery ( "CREATE TABLE IF NOT EXISTS AchStatus ( serial TEXT, nick TEXT, achStatus TEXT NULL )"); 
end 
addEventHandler ( "onResourceStart", getResourceRootElement ( getThisResource ( ) ), onResStartStatus ) 
-------------------------------- 
function onJoin ( ) 
    local serial = getPlayerSerial ( source ); 
    local Nick = getPlayerName(source); 
    local getAchStatus = executeSQLQuery ( "SELECT achStatus FROM AchStatus WHERE serial=?", serial ); 
    if #getAchStatus ~= 0 then 
        setElementData ( source, "AchStatus", tostring ( getAchStatus[1]["achStatus"]) ); 
    end 
        executeSQLQuery ( "UPDATE AchStatus SET nick=? WHERE serial=?", Nick, serial ); 
end 
addEventHandler ( "onPlayerJoin", root, onJoin) 
---------------------------------------- 
function onPlayerQuit ( ) 
    local getActualAchStatus = tostring ( getElementData ( source, "AchStatus" ) ); 
    local serial = getPlayerSerial ( source ); 
    local sqlAchStatus = executeSQLQuery ( "SELECT achStatus FROM AchStatus WHERE serial=?", serial ); 
     if getActualAchStatus then 
          executeSQLQuery ( "UPDATE AchStatus SET achStatus=?", getActualAchStatus, serial ); 
     end 
end 
addEventHandler("onPlayerQuit", root, onPlayerQuit) 

Link to comment

Литеральные строки должны быть заключены в одинарные или двойные кавычки и могут содержать следующие С-подобные escape-поледовательности: '\a' («звонок»), '\b' («забой»), '\f' («перевод страницы»), '\n' («перевод на новую строку»), '\r' («возврат каретки»), '\t' («горизонтальная табуляция»), '\v' («вертикальная табуляция»), '\\\"' («двойная кавычка»), and'\'' (апостроф [«одинарная кавычка»]). Кроме того, обратный слеш ставится перед концом строки в редакторе, когда для удобства набора длинные непрерывные строки записываются в несколько строк. Символ в строке также может быть представлен своим кодом с помощью escape-последовательности \ddd, где ddd- последовательность из не более чем трех цифр. (Заметим, что если после символа, записанного с помощью своего кода, должна идти цифра, то код символа в escape-последовательности должен содержать ровно три цифры). Строки в Lua могут содержать любые 8-битные значения, включая ноль, который записывается как '\0'.

Link to comment

Вот такой вопрос, я что то сам не догоню, прочитываю xml типо такого :

    local Root = xmlLoadFile ( "name.xml" ) 
    local pullo = xmlFindChild ( Root, "name", 0 ) 
    local min = xmlNodeGetValue ( pullo ) 
-- и делаю сравнение  
if(min == n) then -- n это передаваемое значение что вбивает игрок в панель gui 
  

пременная min прочитывает только число, как можно прочитать текст и число пример : name >Ruga12

Name в перем. min вместо Value не выходит, хочу что бы можно указывать число и текст, а не только число. вообщем дайте пояснение кому не сложно

Link to comment

Салют!

Вопрос таков: делаю банк-систему по координатам, коронам, интерьерам и пр. И дело в том, что если координаты корон входов-выходов по близости - телепортация идёт на другую корону. Допустим, корона входа в интерьер стоит у одного из входа в Лос Сантосе, а другая корона входа - в Лас Вентурасе. В интерьере также есть короны на эти два входа. Они в одной координате, в одном интерьере, но в разных мирах (dimensions) - почему телепорт идёт не туда куда надо?

Если не понятно, распишу подробнее.

Link to comment
Салют!

Вопрос таков: делаю банк-систему по координатам, коронам, интерьерам и пр. И дело в том, что если координаты корон входов-выходов по близости - телепортация идёт на другую корону. Допустим, корона входа в интерьер стоит у одного из входа в Лос Сантосе, а другая корона входа - в Лас Вентурасе. В интерьере также есть короны на эти два входа. Они в одной координате, в одном интерьере, но в разных мирах (dimensions) - почему телепорт идёт не туда куда надо?

Если не понятно, распишу подробнее.

Покажи код события, в котором игрок встает на корону.

Походу, проблема в том, что ты не проверяешь из какого мира игрок выходит.

Link to comment
я смутно понял, что ты хочешь, но по-моему это то
xmlNodeGetAttribute 

Да я думал об этом, но тогда нужно присваивать строке атрибут. В принципе так и сделаю))

Link to comment
Ребят расскажите подробней про функцию getVehicleComponentPosition и пример использования если можно

Это получает координаты меша авто, если потренироваться, то можно перемещать их и делать анимации

https://wiki.multitheftauto.com/wiki/Vehicle_component_manipulation

Link to comment
Салют!

Вопрос таков: делаю банк-систему по координатам, коронам, интерьерам и пр. И дело в том, что если координаты корон входов-выходов по близости - телепортация идёт на другую корону. Допустим, корона входа в интерьер стоит у одного из входа в Лос Сантосе, а другая корона входа - в Лас Вентурасе. В интерьере также есть короны на эти два входа. Они в одной координате, в одном интерьере, но в разных мирах (dimensions) - почему телепорт идёт не туда куда надо?

Если не понятно, распишу подробнее.

Покажи код события, в котором игрок встает на корону.

Походу, проблема в том, что ты не проверяешь из какого мира игрок выходит.

Если это то, что тебе нужно:

    "BANK 1" blip="true"> 
        "361.8298" posY="173.6187" posZ="1008.3828" ATM="false" ATMRot="0.0" interior="3" dimension="155484" /> 
        "2412.7126" posY="1123.8426" posZ="10.8203" teleX="387.8428" teleY="173.6187" teleZ="1008.3828" teleRot="90" teleInterior="3" teleDimension="155484"/> 
        "389.8428" posY="173.6187" posZ="1008.3828" teleX="2414.7126" teleY="1123.0426" teleZ="10.8203" teleRot="270" teleInterior="0" teleDimension="0" interior="3" dimension="155484" /> 
  
    "BANK 2" blip="true"> 
        "361.8301" posY="173.6190" posZ="1008.3831" ATM="false" ATMRot="0.0" interior="3" dimension="158548" /> 
        "1480.9760742188" posY="-1770.7427978516" posZ="18.795755386353" teleX="384.55975341797" teleY="173.64555358887" teleZ="1008.3828125" teleRot="90" teleInterior="3" teleDimension="158548"/> 
        "389.8428" posY="173.6187" posZ="1008.3828" teleX="1481.0814208984" teleY="-1768.5550537109" teleZ="18.795755386353" teleRot="0" teleInterior="0" teleDimension="0" interior="3" dimension="158548" /> 
    

Link to comment

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

Здравствуйте, скажите где недочёт, никак не могу сохранить текст "AchStatus". Посылаю через setElementData, проверяю тут же через outputChatBox работает - выводит текст. Перезахожу - сохраняю (по идеи кода), проверяю, значение всё-равно false. Код ошибок никаких не выводит.

function onResStartStatus () 
    executeSQLQuery ( "CREATE TABLE IF NOT EXISTS AchStatus ( serial TEXT, nick TEXT, achStatus TEXT NULL )"); 
end 
addEventHandler ( "onResourceStart", getResourceRootElement ( getThisResource ( ) ), onResStartStatus ) 
-------------------------------- 
function onJoin ( ) 
    local serial = getPlayerSerial ( source ); 
    local Nick = getPlayerName(source); 
    local getAchStatus = executeSQLQuery ( "SELECT achStatus FROM AchStatus WHERE serial=?", serial ); 
    if #getAchStatus ~= 0 then 
        setElementData ( source, "AchStatus", tostring ( getAchStatus[1]["achStatus"]) ); 
    end 
        executeSQLQuery ( "UPDATE AchStatus SET nick=? WHERE serial=?", Nick, serial ); 
end 
addEventHandler ( "onPlayerJoin", root, onJoin) 
---------------------------------------- 
function onPlayerQuit ( ) 
    local getActualAchStatus = tostring ( getElementData ( source, "AchStatus" ) ); 
    local serial = getPlayerSerial ( source ); 
    local sqlAchStatus = executeSQLQuery ( "SELECT achStatus FROM AchStatus WHERE serial=?", serial ); 
     if getActualAchStatus then 
          executeSQLQuery ( "UPDATE AchStatus SET achStatus=?", getActualAchStatus, serial ); 
     end 
end 
addEventHandler("onPlayerQuit", root, onPlayerQuit) 

Link to comment

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

Link to comment

Пожалуйста исправьте ошибку, я только учусь, вот простенький скрипт, суть бредовая но это для меня важно чисто для понимания.

Серверная часть:

  
function nickname (source) ---ф-ция показывающая наш ник 
    local PlayerNickname = getPlayerName ( source ) 
    outputChatBox ( "Мой ник: " ..PlayerNickname ) 
end 
  
addCommandHandler ( "name", nickname ) --вводим /name и запускается ф-ция "nickname" выдающая наш ник в чат-бокс 
  
addEvent ( "mynickname", true )  --- создаём ивент "mynickname" для того что бы делать всё то же самое но при нажатии на кнопочку 
addEventHandler( "mynickname", getRootElement(), nickname ) 
  

Клиентская часть

  
---///////GUI конструкция////////////--- 
---окна... кнопки... и прочеее не указываю ибо не важно 
GUIEditor_Button[1] = guiCreateButton(151,144,122,44,"Показать ник",false,GUIEditor_Window[1]) --- Наша кнопка показывающая ник 
  
addEventHandler("onClientGUIClick", GUIEditor_Button[1], 
     function () 
          triggerServerEvent ( "mynickname", getLocalPlayer() ) --- При нажатии кнопки запускается этот триггер вызывающий на серверной части функцию "nickname" 
     end 
    ,false) 

Ребят подскажите пожалуйста, вот когда ввожу "/name" , срабатывает обработчик addCommandHandler и всё ок, в чат боксе как положено пишет что и должно писать, Мой ник: такой-то. А вот с кнопочкой беда, её жмакаешь, но ничего не происходит. Для многих быть может этот момент покажется нубско смешным, но для меня это очень важно для понимания, пожалуйсто помогите. Спасибо.

Link to comment
Пожалуйста исправьте ошибку, я только учусь, вот простенький скрипт, суть бредовая но это для меня важно чисто для понимания.

Серверная часть:

  
function nickname (source) ---ф-ция показывающая наш ник 
    local PlayerNickname = getPlayerName ( source ) 
    outputChatBox ( "Мой ник: " ..PlayerNickname ) 
end 
  
addCommandHandler ( "name", nickname ) --вводим /name и запускается ф-ция "nickname" выдающая наш ник в чат-бокс 
  
addEvent ( "mynickname", true )  --- создаём ивент "mynickname" для того что бы делать всё то же самое но при нажатии на кнопочку 
addEventHandler( "mynickname", getRootElement(), nickname ) 
  

Клиентская часть

  
---///////GUI конструкция////////////--- 
---окна... кнопки... и прочеее не указываю ибо не важно 
GUIEditor_Button[1] = guiCreateButton(151,144,122,44,"Показать ник",false,GUIEditor_Window[1]) --- Наша кнопка показывающая ник 
  
addEventHandler("onClientGUIClick", GUIEditor_Button[1], 
     function () 
          triggerServerEvent ( "mynickname", getLocalPlayer() ) --- При нажатии кнопки запускается этот триггер вызывающий на серверной части функцию "nickname" 
     end 
    ,false) 

Ребят подскажите пожалуйста, вот когда ввожу "/name" , срабатывает обработчик addCommandHandler и всё ок, в чат боксе как положено пишет что и должно писать, Мой ник: такой-то. А вот с кнопочкой беда, её жмакаешь, но ничего не происходит. Для многих быть может этот момент покажется нубско смешным, но для меня это очень важно для понимания, пожалуйсто помогите. Спасибо.

взглядом пробежал, вроде ты неправильно использовал это

outputChatBox 

, почитай про эту функцию.

Link to comment

getPlayerMoney expected number at argument... got nil.

function money ( ) 
    randcash = math.random ( 400, 1200 ) 
    givePlayerMoney ( player, randcash ) 
    outputChatBox( "Денежный бонус в этом часу - #FFF700"..randcash.."#04F204.", 4, 242, 4, true ) 
end 
  
    setTimer ( money, 18000, 5 ) 

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