kino Posted November 19, 2011 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Русская Мафия!
MX_Master Posted November 20, 2011 Posted November 20, 2011 первый код откуда ваще? там есь source, а в каком обработчике и для какого события очень трудно было указать ? (:
kino Posted November 20, 2011 Author 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 )
MX_Master Posted November 20, 2011 Posted November 20, 2011 не зная что такое factions, могу только предположить что вместо factions[f][4], factions[f][5], factions[f][6] возможно factions[f][1], factions[f][2], factions[f][3]
kino Posted November 21, 2011 Author 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
MX_Master Posted November 21, 2011 Posted November 21, 2011 factions = {} -- нужно объявить `factions` как таблицу function loadFactions () ... end оно? на основе этого куска ну больше ничего не приходит на ум
kino Posted November 21, 2011 Author Posted November 21, 2011 это таблица какие вам ещё данные нужны? У меня есть предположение что он координаты воспринимает как строку когдв я добавил tonumber он начал орать что не может найти y posY="-1607.54"
MX_Master Posted November 21, 2011 Posted November 21, 2011 Ну если ОНО было ранее определено как таблица, то проблем нет. Пример у xmlNodeGetAttribute на вики неправильный (пойду исправлю), эта функция всегда возвращает строку (или false), поэтому нужен конверт из строк в числа, где нужно. ... local spawnx = tonumber( xmlNodeGetAttribute (v,"posX") or 0 ) ...
kino Posted November 22, 2011 Author Posted November 22, 2011 после тономеризации при загрузки по вашему примеру возвращает ложь а если так spawnPlayer (sourcec, tonumber( factions[f][4]), tonumber( factions[f][5]),tonumber( factions[f][6])) то все равно спавнюсь на 0
Kernell Posted November 22, 2011 Posted November 22, 2011 MX_Master, причём тут таблица, когда автор темы ясно сказал, что в дебаг выводятся правильные координаты!? kino, Попробуйте вбить координаты в spawnPlayer вручную, если всёравно в 0 спавнит - то возможно баг. P.S. Мб не в том месте код смотрите? P.S.S. Ничто другое не мешает спавну? Например: у Вас имеется событие OnPlayerSpawn в котором устанавливается новая позиция игрока.
kino Posted November 23, 2011 Author Posted November 23, 2011 в ручную всё работает правда мои друзья координаты перепутали где русская там сват я понял в чём проблема tonumber не возвращает число а почему я хз
Kernell Posted November 23, 2011 Posted November 23, 2011 Какая версия сервера? Такой баг уже решили.. http://bugs.mtasa.com/view.php?id=5764
kino Posted November 23, 2011 Author 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))
MX_Master Posted November 23, 2011 Posted November 23, 2011 outputDebugString( tostring( tonumber("-1941.1945") ) ) выводит nil ?
kino Posted November 23, 2011 Author Posted November 23, 2011 [2011-11-23 17:27:43] MTA:SA Server v1.1.1-release-3464
_Dark_ Posted November 23, 2011 Posted November 23, 2011 так точно Странно, но у меня outputDebugString(tostring(tonumber("-1941.1945"))) выводит все как надо. Версия - 1.1.1-release-3447. Сейчас обновлюсь и проверю.
kino Posted November 23, 2011 Author Posted November 23, 2011 я с бинарников обнавляюсь и у меня линукс
MX_Master Posted November 23, 2011 Posted November 23, 2011 все, что взято отсюда http://linux.multitheftauto.com/ считается стабильным, все, что взято с других мест - тестовые версии и в них вполне могут быть ошибки и предъявить баги этих ошибок нужно в баг трекер. На линухе, кстати, ошибки свои, специфические. Попробуй другие сборки с этим тестовым примером
kino Posted November 23, 2011 Author Posted November 23, 2011 все, что взято отсюда http://linux.multitheftauto.com/ считается стабильным, все, что взято с других мест - тестовые версии и в них вполне могут быть ошибки и предъявить баги этих ошибок нужно в баг трекер. На линухе, кстати, ошибки свои, специфические. Попробуй другие сборки с этим тестовым примером вот спасибо я грешил на себя а на сервер всё завелось блин я полгода убил всё тему можно зокрыть
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