Jump to content

ошибка spawnplayer


kino

Recommended Posts

я получаю координаты спавна из хмл координаты верные но я спавнюсь в нулях

вот код

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

я уже всю бошку вот

код загрузки хмл

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

это таблица какие вам ещё данные нужны?

У меня есть предположение что он координаты воспринимает как строку когдв я добавил tonumber он начал орать что не может найти y

posY="-1607.54"

Link to comment

Ну если ОНО было ранее определено как таблица, то проблем нет. Пример у xmlNodeGetAttribute на вики неправильный (пойду исправлю), эта функция всегда возвращает строку (или false), поэтому нужен конверт из строк в числа, где нужно.

... 
local spawnx = tonumber( xmlNodeGetAttribute (v,"posX") or 0 ) 
... 

Link to comment

после тономеризации при загрузки по вашему примеру возвращает ложь а если так

spawnPlayer (sourcec, tonumber( factions[f][4]), tonumber( factions[f][5]),tonumber( factions[f][6]))  

то все равно спавнюсь на 0

Link to comment

MX_Master,

причём тут таблица, когда автор темы ясно сказал, что в дебаг выводятся правильные координаты!?

kino,

Попробуйте вбить координаты в spawnPlayer вручную, если всёравно в 0 спавнит - то возможно баг.

P.S. Мб не в том месте код смотрите? xD

P.S.S. Ничто другое не мешает спавну? Например: у Вас имеется событие OnPlayerSpawn в котором устанавливается новая позиция игрока.

Link to comment

в ручную всё работает правда мои друзья координаты перепутали где русская там сват

я понял в чём проблема tonumber не возвращает число а почему я хз

Link to comment

[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

все, что взято отсюда http://linux.multitheftauto.com/ считается стабильным, все, что взято с других мест - тестовые версии и в них вполне могут быть ошибки и предъявить баги этих ошибок нужно в баг трекер. На линухе, кстати, ошибки свои, специфические. Попробуй другие сборки с этим тестовым примером

Link to comment
все, что взято отсюда http://linux.multitheftauto.com/ считается стабильным, все, что взято с других мест - тестовые версии и в них вполне могут быть ошибки и предъявить баги этих ошибок нужно в баг трекер. На линухе, кстати, ошибки свои, специфические. Попробуй другие сборки с этим тестовым примером

вот спасибо я грешил на себя а на сервер всё завелось блин я полгода убил

всё тему можно зокрыть

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