TheNormalnij Posted January 3, 2014 Share Posted January 3, 2014 attachElements( elem, elemTo, x, y, z ) -- читайте вики внимательно Link to comment
nikitafloy Posted January 3, 2014 Share Posted January 3, 2014 attachElements( elem, elemTo, x, y, z ) -- читайте вики внимательно Бессонные ночи, трудовые будни. Link to comment
BeSS0n Posted January 3, 2014 Share Posted January 3, 2014 Как использовать один массив в разных ресурсах ? В одном ресурсе код такой: banksInfo = { } banksInfo[ 0 ] = { } banksInfo[ 0 ].name = "bankname"; print(banksInfo[0].name); А во втором print(banksInfo[0].name); Но во втором выводит nil, думал с помощью exports сделать, но там вроде как функции только, а насчёт массивов не знаю как... Link to comment
TheNormalnij Posted January 3, 2014 Share Posted January 3, 2014 В первом скрипте делаешь функцию, которую собирался включать со второго, со второго через экспорт ее активируешь. или же создай функцию в первом скрипте, которая будет возвращать таблицу. Link to comment
BeSS0n Posted January 3, 2014 Share Posted January 3, 2014 В первом скрипте делаешь функцию, которую собирался включать со второго, со второго через экспорт ее активируешь.или же создай функцию в первом скрипте, которая будет возвращать таблицу. т.е в meta.xml первого скрипта добавляем <export function="getBanksTable" type="server"/> в первом скрипте дописываем: function getBanksTable() return banksInfo end и во втором экспортим: print(exports["one"]:getBanksTable()); Выводит: .table: 000000 вместо нулей разные значения постоянно. Как например вывести banksInfo[0].name ? ----------------------------------------------------------------------------------------------------------------------- Вроде сделал ф-ю немного переделал: function getBanksTable(index,name) return banksInfo[index].name end Экспорт такой: print(exports["one"]:getBanksTable(0,name)); Но опять же проблема, если например: banksInfo[ 0 ].mytest = "testmytest"; и сделать экспорт так: print(exports["one"]:getBanksTable(0,testmy)); То всё равно выведет banksInfo[ 0 ].name Если в самой функции поменять name на sname к примеру function getBanksTable(index,sname) return banksInfo[index].sname end То при print(exports["one"]:getBanksTable(0,name)); print(exports["one"]:getBanksTable(0,testmy)); Выведет .nil Что я не так делаю ? Link to comment
TheNormalnij Posted January 3, 2014 Share Posted January 3, 2014 return banksInfo[index][name] Link to comment
BeSS0n Posted January 4, 2014 Share Posted January 4, 2014 return banksInfo[index][name] Так тоже nil выводит... Link to comment
nikitafloy Posted January 4, 2014 Share Posted January 4, 2014 Впервые юзаю setElementData и getElementData. Пытался разобраться, выводит ошибку [ got boolean ], это очевидно, ведь выход bool. Подправьте меня, пожалуйста: local oSkin = getElementModel ( source ) setElementData ( source, "oldskin", oSkin ) -- Требуется получить старый скин local oskin = getElementData ( hitElement, "oldskin" ) -- Требуется изъять данные о старом скине setElementModel ( occupant, oskin ) -- Здесь собственно его 'вмонтирование' Link to comment
Kenix Posted January 4, 2014 Share Posted January 4, 2014 Полный кусок кода покажи, мы не телепаты. Link to comment
nikitafloy Posted January 4, 2014 Share Posted January 4, 2014 Полный кусок кода покажи, мы не телепаты. Сжал: function stJW ( source ) if isGuestAccount ( getPlayerAccount ( source ) ) then return else local account = getPlayerAccount (source) local saveolskin = setAccountData (account, "oldskin", tostring (getElementModel (source))) setElementModel ( source, 181 ) end end addCommandHandler ( "stJW", stJW ) function MarkerHit( hitElement, matchingDimension ) if getElementType(hitElement) == "player" then veh = getPedOccupiedVehicle ( hitElement ) elseif getElementType(hitElement) == "vehicle" then veh = hitElement local occupant = getVehicleOccupant(veh) local account = getPlayerAccount (hitElement) local loadskin = getAccountData ( account, "oldskin" ) setElementModel ( occupant, loadskin ) end end Link to comment
TwiX! Posted January 4, 2014 Share Posted January 4, 2014 function myCmd ( p ) if isGuestAccount ( getPlayerAccount ( p ) ) then return else local account = getPlayerAccount ( p ); local saveolskin = setAccountData ( account, "oldskin", tostring ( getElementModel ( p ) ) ); setElementModel ( p, 181 ); end end addCommandHandler ( "stJW", myCmd ) function MarkerHit( hitElement, matchingDimension ) if getElementType ( hitElement ) == "vehicle" then local veh = getPedOccupiedVehicle ( hitElement ) ; local occupant = getVehicleOccupant ( veh ); local account = getPlayerAccount ( hitElement ); local loadskin = getAccountData ( account, "oldskin" ); setElementModel ( occupant, tostring ( loadskin ) ); end end addEventHandler( "onMarkerHit", root, MarkerHit ) Link to comment
FranklinRoosevelt Posted January 5, 2014 Share Posted January 5, 2014 Люди помогите понять структуру скриптов, я вроде уже все по чучуть понял, но путаюсь с агрументами в скобках возле функции (выделил): function playerDied[u][b](totalAmmo, killer, killerWeapon, bodypart)[/b][/u] outputChatBox(getPlayerName(source).." умер!") end addEventHandler("onPlayerWasted",getRootElement(),playerDied) объясните кому не лень просто и ясно что за что отвечает и когда оно нужно когда нет, желательно на каком-то ясном примере, буду очень признателен. Кидать ссылки на мта-вики и уроки lua не надо, а хотя если есть очень толковый туториал давайте Link to comment
nikitafloy Posted January 5, 2014 Share Posted January 5, 2014 function myCmd ( p ) if isGuestAccount ( getPlayerAccount ( p ) ) then return else local account = getPlayerAccount ( p ); local saveolskin = setAccountData ( account, "oldskin", tostring ( getElementModel ( p ) ) ); setElementModel ( p, 181 ); end end addCommandHandler ( "stJW", myCmd ) function MarkerHit( hitElement, matchingDimension ) if getElementType ( hitElement ) == "vehicle" then local veh = getPedOccupiedVehicle ( hitElement ) ; local occupant = getVehicleOccupant ( veh ); local account = getPlayerAccount ( hitElement ); local loadskin = getAccountData ( account, "oldskin" ); setElementModel ( occupant, tostring ( loadskin ) ); end end addEventHandler( "onMarkerHit", root, MarkerHit ) Благодарю, решением являлось преобразование bool в string. _______________________________________________________________ Люди помогите понять структуру скриптов, я вроде уже все по чучуть понял, но путаюсь с агрументами в скобках возле функции (выделил): function playerDied[u][b](totalAmmo, killer, killerWeapon, bodypart)[/b][/u] outputChatBox(getPlayerName(source).." умер!") end addEventHandler("onPlayerWasted",getRootElement(),playerDied) объясните кому не лень просто и ясно что за что отвечает и когда оно нужно когда нет, желательно на каком-то ясном примере, буду очень признателен. Кидать ссылки на мта-вики и уроки lua не надо, а хотя если есть очень толковый туториал давайте Они 'обзывают' аргументы, которые используются внутри функции. Но не везде они одинаковые, на wiki в примерах они перечисляются. Link to comment
FranklinRoosevelt Posted January 5, 2014 Share Posted January 5, 2014 nikitafloy, "'обзывают"? Link to comment
nikitafloy Posted January 5, 2014 Share Posted January 5, 2014 nikitafloy, "'обзывают"? Дают название. То же самое тебе написали в другой теме. "Даже weapon может быть thePlayer" Link to comment
CocaColaBear Posted January 5, 2014 Share Posted January 5, 2014 Дают название. То же самое тебе написали в другой теме."Даже weapon может быть thePlayer" Зачем людей в заблуждение заводить? После таких вот объяснений любой подумает примерно так: "если я напишу thePlayer, значит это будет игрок ,если я напишу weapon, это будет оружие". На самом деле все куда проще можно было бы объяснить, назвав слово - "указатель", т.е. переменная, которая содержит адрес какого либо объекта (не путать с игровыми объектами), либо nil. Link to comment
Bzz335 Posted January 5, 2014 Share Posted January 5, 2014 Здорово,Комьюнити. У меня вопрос. Как достать значение из таблицы и вставить его в аргументы? local StatsTable = {69,70,71,72,73,74,75,76,77,78,79,80,81} function SetStats(player) setPlayerStat ( player, ЗдесьЗначенияИзТаблицы(все), 1000 ) end ---- Что-то Я не то накодил,нужна помощь. Link to comment
DakiLLa Posted January 5, 2014 Share Posted January 5, 2014 Пройтись по всем элементам массива в цикле: for i, statID in ipairs( StatsTable ) do setPedStat( player, statID, 1000 ) end Link to comment
Bzz335 Posted January 5, 2014 Share Posted January 5, 2014 Пройтись по всем элементам массива в цикле: for i, statID in ipairs( StatsTable ) do setPedStat( player, statID, 1000 ) end О,спасибо.Про цикл забыл! Link to comment
Bzz335 Posted January 5, 2014 Share Posted January 5, 2014 Ошибка.Дебаг пишет: "bad argument #1 to "ipairs"(table expected,got number)" local StatsTable = {69,70,71,72,73,74,75,76,77,78,79,80,81} function SetStats(player,StatsTable) for i, statID in ipairs( StatsTable ) do setPedStat( player, statID, 1000 ) end end addEventHandler("onPlayerSpawn", getRootElement(),SetStats) addEventHandler("onPlayerLogin", getRootElement(),SetStats) Link to comment
DakiLLa Posted January 5, 2014 Share Posted January 5, 2014 Почитайте внимательней на вики, как крепятся события "onPlayerSpawn" и "onPlayerLogin" к функции и какие они передают параметры в функцию; гляньте, там даже примеры есть. Ну а в вашем случае это будет выглядеть так: local StatsTable = {69,70,71,72,73,74,75,76,77,78,79,80,81} function setStats() -- передавать массив в функцию не надо, он глобально определен выше for i, statID in ipairs( StatsTable ) do -- source - переменная, ссылающаяся на игрока, который только что заспавнился setPedStat( source, statID, 1000 ) end end addEventHandler("onPlayerSpawn", getRootElement(), setStats) Крепить onPlayerLogin не вижу смысла, судя по всему на вашем сервере сразу за авторизацией последует спавн, поэтому два раза выполнять одну и ту же операцию не нужно. Link to comment
Bzz335 Posted January 5, 2014 Share Posted January 5, 2014 Как конвертнуть в номер? Допустим, function GetPlayerSkin() skin = getElementModel(source) --Мне надо конвертнуть это значение в число. end addEventHandler("onPlayerWasted",getRootElement(),GetPlayerSkin) function SaveSkin(skin) setElementModel(source,skin) -- Здесь сменить . end Link to comment
nikitafloy Posted January 5, 2014 Share Posted January 5, 2014 Как конвертнуть в номер?Допустим, function GetPlayerSkin() skin = getElementModel(source) --Мне надо конвертнуть это значение в число. end addEventHandler("onPlayerWasted",getRootElement(),GetPlayerSkin) function SaveSkin(skin) setElementModel(source,skin) -- Здесь сменить . end tonumber ( ) Link to comment
Bzz335 Posted January 5, 2014 Share Posted January 5, 2014 function GetPlayerSkin() skin = getElementModel(source) skin = tonumber ( skin ) end addEventHandler("onPlayerWasted",getRootElement(),GetPlayerSkin) function SaveSkin(skin) setElementModel(source,skin) end addEventHandler("onPlayerSpawn", getRootElement(), SaveSkin) Не работает. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now