kino Posted November 19, 2011 Share Posted November 19, 2011 я получаю координаты спавна из хмл координаты верные но я спавнюсь в нулях вот код outputChatBox( "gg " ..factions[f][4].."," ..factions[f][5] .."," .." "..factions[f][6].."team" .. getTeamName(team[f]) .."!", source,255,255,255,true) spawnPlayer (source, factions[f][4], factions[f][5], factions[f][6]) вывод дебага INFO: gg 2227.3000488281,-1180.5, 25.89999961853teamРусская Мафия! Link to comment
MX_Master Posted November 20, 2011 Share Posted November 20, 2011 первый код откуда ваще? там есь source, а в каком обработчике и для какого события очень трудно было указать ? (: Link to comment
kino Posted November 20, 2011 Author Share Posted November 20, 2011 function spawnf(ff,r) local f if ff then --outputDebugString ("200 " ..f.." ") f=ff end local r2 sourcea=getPlayerAccount(source) if sourcea then outputDebugString("acc find") end if (not getAccountData(sourcea,"team")) then local status = setAccountData(sourcea,"team",f) else f=getAccountData(sourcea,"team") outputDebugString ("200 " ..f.." ") end --local f2 =tonumber if not r then r2=7 else r2=7+r end outputChatBox( "gg " ..factions[f][4].."," ..factions[f][5] .."," .." "..factions[f][6].."team" .. getTeamName(team[f]) .."!", source,255,255,255,true) -- spawnPlayer (s, factions[f][4], factions[f][5], factions[f][6], 0, factions[f][7], 0, 0, team[f]) -- spawns player with random skin spawnPlayer (source, factions[f][4], factions[f][5], factions[f][6]) if team[f] then setPlayerTeam ( source,team[f]) outputDebugString ( "gg " ..factions[f][4].."," ..factions[f][5] .."," .." "..factions[f][6].."team" .. getTeamName(team[f]) .."!") end setCameraTarget (source, source) fadeCamera (source, true) setElementData(source,"fnum",f) setElementData(source,"frank",r) end addEventHandler("onPlayerLogin", root,function(thePreviousAccount, theCurrentAccount) if (not getAccountData(theCurrentAccount,"team")) then --local teams --for i, v in ipairs(factions[i][1]) do --teams[i]=tostring(v) --end triggerClientEvent ( source, "regt", getRootElement(), teams )-- return 0 else spawnf(source,getAccountData(theCurrentAccount,"team")) outputDebugString (tostring( getAccountData(theCurrentAccount,"team"))) end end ) Link to comment
MX_Master Posted November 20, 2011 Share Posted November 20, 2011 не зная что такое factions, могу только предположить что вместо factions[f][4], factions[f][5], factions[f][6] возможно factions[f][1], factions[f][2], factions[f][3] Link to comment
kino Posted November 21, 2011 Author Share Posted November 21, 2011 я уже всю бошку вот код загрузки хмл function loadFactions () if fileExists ( ":mode0/conf/f.xml" ) then local rooti = xmlLoadFile (":mode0/conf/f.xml") local factionroot = xmlFindChild (rooti,"factiones",0) if (factionroot) then for i,v in ipairs (xmlNodeGetChildren(factionroot)) do local name = xmlNodeGetAttribute (v,"name") -- local leader = tonumber(xmlNodeGetAttribute (v,"leader")) local fnum = tonumber(xmlNodeGetAttribute (v,"num")) local spawnx = xmlNodeGetAttribute (v,"posX") local spawny = xmlNodeGetAttribute (v,"posY") local spawnz = xmlNodeGetAttribute (v,"posZ") local rang1 = xmlNodeGetAttribute (v,"rang1") local rang2 = xmlNodeGetAttribute (v,"rang2") local rang3 = xmlNodeGetAttribute (v,"rang3") local rang4 = xmlNodeGetAttribute (v,"rang4") local rang5 = xmlNodeGetAttribute (v,"rang5") local skin1 = tonumber(xmlNodeGetAttribute (v,"skin1")) local skin2 = tonumber(xmlNodeGetAttribute (v,"skin2")) local skin3 = tonumber(xmlNodeGetAttribute (v,"skin3")) local skin4 = tonumber(xmlNodeGetAttribute (v,"skin4")) local skin5 = tonumber(xmlNodeGetAttribute (v,"skin5")) local ftype = tonumber(xmlNodeGetAttribute (v,"type")) local fmoney = tonumber(xmlNodeGetAttribute (v,"money")) local r = tonumber(xmlNodeGetAttribute (v,"r")) local g = tonumber(xmlNodeGetAttribute (v,"g")) local b = tonumber(xmlNodeGetAttribute (v,"b")) if spawnx then --outputDebugString(i.. "x "..spawnz) end factions[i]={name,1,fnum,spawnx,spawny,spawnz,rang1,rang2,rang3,rang4,rang5,skin1,skin2,skin3,skin4,skin5,ftype,fmoney,r,g,b} teams[i]=name team[i]=createTeam(name,r,g,b) --local dx,dy,dz = factions[i][1],factions[i][4], factions[i][5] outputDebugString(name .." "..fnum .." "..spawnx .." "..spawny .." "..spawnz .." "..rang1 .." "..rang2 .." "..rang3 .." "..rang4 .." "..rang5 .." "..skin1 .." "..skin2 .." "..skin3 .." "..skin4 .." "..skin5 .." "..ftype .." "..fmoney .." "..r .." "..g .." "..b) teams[i]=name local f=tonumber(i) -- outputDebugString( tonumber(factions[f][4]) .. "!!!") outputDebugString(tostring(team[i]) .. "load2") end else outputDebugString ("Factions no loaded!") end outputDebugString ("Factions loaded!") else outputDebugString ("404") end end код spawna function spawnf(sourcec,ff,r) local f if (ff) then f=ff --outputDebugString ("200 " ..f.." ") --outputDebugString ("200 " ..f.." ") end local r2 sourcea=getPlayerAccount(sourcec) if sourcea then outputDebugString("acc find") end if (not getAccountData(sourcea,"team")) then local status = setAccountData(sourcea,"team",f) else f=tonumber( getAccountData(sourcea,"team")) outputDebugString ("200 " ..f.." ") end --local f2 =tonumber if not r then r2=7 else r2=7+r end outputChatBox( "gg " ..factions[f][4].."," ..factions[f][5] .."," .." "..factions[f][6].."team" .. getTeamName(team[f]) .."!", sourcec,255,255,255,true) -- spawnPlayer (s, factions[f][4], factions[f][5], factions[f][6], 0, factions[f][7], 0, 0, team[f]) -- spawns player with random skin spawnPlayer (sourcec, factions[f][4], factions[f][5], factions[f][6]) if team[f] then setPlayerTeam ( sourcec,team[f]) outputDebugString ( "gg " ..factions[f][4].."," ..factions[f][5] .."," .." "..factions[f][6].."team" .. getTeamName(team[f]) .."!") end setCameraTarget (source, source) fadeCamera (source, true) setElementData(source,"fnum",f) setElementData(source,"frank",r) end Link to comment
MX_Master Posted November 21, 2011 Share Posted November 21, 2011 factions = {} -- нужно объявить `factions` как таблицу function loadFactions () ... end оно? на основе этого куска ну больше ничего не приходит на ум Link to comment
kino Posted November 21, 2011 Author Share Posted November 21, 2011 это таблица какие вам ещё данные нужны? У меня есть предположение что он координаты воспринимает как строку когдв я добавил tonumber он начал орать что не может найти y posY="-1607.54" Link to comment
MX_Master Posted November 21, 2011 Share Posted November 21, 2011 Ну если ОНО было ранее определено как таблица, то проблем нет. Пример у xmlNodeGetAttribute на вики неправильный (пойду исправлю), эта функция всегда возвращает строку (или false), поэтому нужен конверт из строк в числа, где нужно. ... local spawnx = tonumber( xmlNodeGetAttribute (v,"posX") or 0 ) ... Link to comment
kino Posted November 22, 2011 Author Share Posted November 22, 2011 после тономеризации при загрузки по вашему примеру возвращает ложь а если так spawnPlayer (sourcec, tonumber( factions[f][4]), tonumber( factions[f][5]),tonumber( factions[f][6])) то все равно спавнюсь на 0 Link to comment
Kernell Posted November 22, 2011 Share Posted November 22, 2011 MX_Master, причём тут таблица, когда автор темы ясно сказал, что в дебаг выводятся правильные координаты!? kino, Попробуйте вбить координаты в spawnPlayer вручную, если всёравно в 0 спавнит - то возможно баг. P.S. Мб не в том месте код смотрите? P.S.S. Ничто другое не мешает спавну? Например: у Вас имеется событие OnPlayerSpawn в котором устанавливается новая позиция игрока. Link to comment
kino Posted November 23, 2011 Author Share Posted November 23, 2011 в ручную всё работает правда мои друзья координаты перепутали где русская там сват я понял в чём проблема tonumber не возвращает число а почему я хз Link to comment
Kernell Posted November 23, 2011 Share Posted November 23, 2011 Какая версия сервера? Такой баг уже решили.. http://bugs.mtasa.com/view.php?id=5764 Link to comment
kino Posted November 23, 2011 Author Share Posted November 23, 2011 [2011-11-23 17:27:19] Starting resources................. [2011-11-23 17:27:20] ERROR: [gamemodes]/mode0/score.lua:46: bad argument #2 to 'format' (string expected, got nil) [2011-11-23 17:27:20] Server started and is ready to accept connections! [2011-11-23 17:27:20] Type 'help' for a list of commands. [2011-11-23 17:27:43] MTA:SA Server v1.1.1-release-3464 46 outputDebugString(string.format("po=%q",spawnx)) Link to comment
MX_Master Posted November 23, 2011 Share Posted November 23, 2011 outputDebugString( tostring( tonumber("-1941.1945") ) ) выводит nil ? Link to comment
kino Posted November 23, 2011 Author Share Posted November 23, 2011 [2011-11-23 17:27:43] MTA:SA Server v1.1.1-release-3464 Link to comment
_Dark_ Posted November 23, 2011 Share Posted November 23, 2011 так точно Странно, но у меня outputDebugString(tostring(tonumber("-1941.1945"))) выводит все как надо. Версия - 1.1.1-release-3447. Сейчас обновлюсь и проверю. Link to comment
_Dark_ Posted November 23, 2011 Share Posted November 23, 2011 Обновился, все работает. Link to comment
kino Posted November 23, 2011 Author Share Posted November 23, 2011 я с бинарников обнавляюсь и у меня линукс Link to comment
MX_Master Posted November 23, 2011 Share Posted November 23, 2011 все, что взято отсюда http://linux.multitheftauto.com/ считается стабильным, все, что взято с других мест - тестовые версии и в них вполне могут быть ошибки и предъявить баги этих ошибок нужно в баг трекер. На линухе, кстати, ошибки свои, специфические. Попробуй другие сборки с этим тестовым примером Link to comment
kino Posted November 23, 2011 Author Share Posted November 23, 2011 все, что взято отсюда http://linux.multitheftauto.com/ считается стабильным, все, что взято с других мест - тестовые версии и в них вполне могут быть ошибки и предъявить баги этих ошибок нужно в баг трекер. На линухе, кстати, ошибки свои, специфические. Попробуй другие сборки с этим тестовым примером вот спасибо я грешил на себя а на сервер всё завелось блин я полгода убил всё тему можно зокрыть 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