Kenix Posted April 3, 2011 Share Posted April 3, 2011 вообщем есть проблема функция getSkillFunc function getSkillFunc(player,Levelids) if (Levelids == tonumber) then local skillsID = tonumber triggerClientEvent(source, "selectSkill", source,skillsID) return true else return false end end клиент addEvent("selectSkill",true) addEventHandler( "selectSkill", getRootElement(), function(skillsID) if (tonumber(skillsID)) then guiGridListSetItemText(GUIEditor_Grid[211],tonumber(skillsID),5,"purchased",false,false) guiGridListSetItemColor (GUIEditor_Grid[211],tonumber(skillsID),5,0,255,0) outputChatBox("текст изменился на "..tonumber(skillsID)) end end ) вызывается так getSkillFunc(1,source) функция skillButtonFunc function skillButtonFunc (Levelids, Levelnames,Levelmoneys,LevelLevels ,LevelStatus) outputChatBox("skill buy") if (Levelids == "0") then outputChatBox("0") getThisElementData(4,source) takeMoneyFunc(3250,4,source) getSkillFunc(0,source) setPedStat(source, 71, 99) elseif (Levelids == "1") then getThisElementData(1,source) takeMoneyFunc(5500,1,source) getSkillFunc(1,source) setPedStat(source, 71, 299) end end addEvent ("PlayerSkillBuy", true) addEventHandler ("PlayerSkillBuy", getRootElement(),skillButtonFunc) не работает функция вообщем суть такова когда игрок покупает скилл он должен проверять Levelids и тригером менять текст в гридлисте. но я не знаю как перенести аргумент из функции skillButtonFunc. помогите пожалуйста. Link to comment
Lex128 Posted April 18, 2011 Share Posted April 18, 2011 function getSkillFunc(player,Levelids) вызывается так getSkillFunc(1,source) Может быть нужно аргументы поменять на getSkillFunc(source,1), ведь у тебя в функции сначала идет игрок, а потом уровень чего-то там. И вот тут заменить source на player, ведь ты не событие создаешь привязанное к игроку, а просто вызываешь функцию function getSkillFunc(player,Levelids) .... triggerClientEvent(player, "selectSkill", player, skillsID) и ещё у тебя вот тут такие магические строчки if (Levelids == tonumber) then local skillsID = tonumber наверное что-то не дописал Это только поверхностный взгляд на код, в сути не разбирался Link to comment
Kenix Posted April 18, 2011 Author Share Posted April 18, 2011 lex128 я уже исправил но не до конца вообще такая проблемка ведь set/get elementdata к примеру "SkillBought" и к примеру число 1 но как сохранять множество чисел в одной дате??? не сохранять же к примеру 30 разных дат .... помогите пожалуйста с этим недорозумением. сама функция получает уровень,деньги,ID скилла. function getSkillFunc(player,data,cashs,Levelids) if (getElementData(player,"Level") >= tonumber(data)) then outputChatBox("уровень подходит") if (getPlayerMoney (player) >= tonumber(cashs)) then takePlayerMoney (player,cashs) outputChatBox("деньги подходят") if (Levelids) then outputChatBox("отправлен к клиенту") triggerClientEvent(player, "selectSkill", getRootElement(), Levelids) return true else return false end end end end используется так getSkillFunc(source,0,1,0) эвент в клиенте: addEvent("selectSkill",true) addEventHandler( "selectSkill", getLocalPlayer(), function(skillsIDIn) skillsID = skillsIDIn if (tonumber(skillsID)) then guiGridListSetItemText(MainGrid,tonumber(skillsID),5,"purchased",false,false) guiGridListSetItemColor (MainGrid,tonumber(skillsID),5,0,255,0) local datasSk = setElementData(getLocalPlayer(),"SkillBuy",skillsID) outputChatBox("set data skill "..tostring(skillsID).." , "..tostring(datasSk)) outputChatBox("text change "..tonumber(skillsID)) end end ) используем тут bindKey ("F5", "down", function() if (guiGetVisible(MainWindowLevel) == false) then guiSetVisible(MainWindowLevel,true) showCursor(true) if (skillsID) then if (getElementData(getLocalPlayer(),"SkillBuy") == tonumber(skillsID)) then -- вообщем нужно получить как нибудь из одной даты много чисел если соответствуют к примеру если есть число 1 и 2 то сетим текст в строку 1 и 2 ))) outputChatBox("get element data") local textAddSkill = guiGridListSetItemText(MainGrid,tonumber(skillsID),5,"purchased",false,false) local textAddSkill2 = guiGridListSetItemColor (MainGrid,tonumber(skillsID),5,0,255,0) outputChatBox("text add "..tostring(textAddSkill).." , "..tostring(textAddSkill2).." , "..tostring(getElementData(getLocalPlayer(),"SkillBuy")).."") end end elseif (guiGetVisible(MainWindowLevel) == true) then guiSetVisible(MainWindowLevel,false) showCursor(false) end end ) Link to comment
Lex128 Posted April 19, 2011 Share Posted April 19, 2011 Например так: setElementData(element,"Data",{arg1,arg2,arg3,arg4}) И брать local arg2 = getElementData(element,"Data")[2] local arg1,arg2,arg3,arg4 = unpack(getElementData(element,"Data")) 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