GTA Közösség - A magyar GTA fórum

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Segítségkérés => A témát indította: Daniii - 2017. December 23. - 15:12:47

Cím: Többször spawnol le az autó
Írta: Daniii - 2017. December 23. - 15:12:47
Azt akarom, hogy 3 alapkocsi lespawnoljon, és ha felrobbannak respawnoljanak. Az a baj, hogy amikor fellépek a szerverre már egymás hegyén hátán van rengeteg autó.
 
Kód:
 

function Alapkocsi()
    local alapkocsi1 = createVehicle(411, 61.015625 , -57.197265625 , 0.609375)
    toggleVehicleRespawn(alapkocsi1, true)
    
    local alapkocsi2 = createVehicle(411, 64.0302734375 , -63.6484375 + 10 , 0.609375)
    toggleVehicleRespawn(alapkocsi2, true)
    
    local alapkocsi3 = createVehicle(411, 68.33203125 , -69.7998046875 + 10, 0.609375)
    toggleVehicleRespawn(alapkocsi3, true)
    
end
addEventHandler(\"onResourceStart\", getRootElement(), Alapkocsi)

 
 
Cím: Többször spawnol le az autó
Írta: Robika1 - 2017. December 25. - 18:16:21
Szia!
 
Nem teszteltem a kódod, de szerintem az lesz a baj, hogy az onResourceStart eventnél root van megadva, azaz ha 15 másik modot újraindítasz/elindítasz, a kocsispawnolást mindig meg fogja hívni. A getRootElementet cseréld ki erre: getResourceRootElement(getThisResource()) (ebben az esetben csak ennek a scriptnek az indulására hívódik meg az Alapkocsi funkciód).
Cím: Többször spawnol le az autó
Írta: Daniii - 2017. December 26. - 18:15:08
Még egy problémám van. Azt írja : [2017-12-26 18:08:53] SCRIPT ERROR: scriptek/server.lua:27: \'then\' expected near \',\'
[2017-12-26 18:08:53] ERROR: Loading script failed: scriptek/server.lua:27: \'then\' expected near \',\'
[2017-12-26 18:08:53] ERROR: More than one default resource specified!
 

addEventHandler(\"onResourceStart\", getResourceRootElement(getThisResource()),
function()
   createPickup(134.8515625, 1930.1376953125, 19.217227935791, 1239)
   createPickup(135.3369140625, 1954.451171875, 19.424501419067, 1239)
end
)
addCommandHandler(\"kapu\",
function(player, command)
   if getElementPosition(player) == 134.8515625, 1930.1376953125, 19.217227935791 then
      setElementPosition(player, 135.3369140625, 1954.451171875, 19.424501419067)
   elseif getElementPosition(player) == 135.3369140625, 1954.451171875, 19.424501419067 then
      setElementPosition(player, 134.8515625, 1930.1376953125, 19.217227935791)
   else
      outputChatBox(\"Nem vagy a kapunál!\", player)
   end   
end
)

 
 
Cím: Többször spawnol le az autó
Írta: Robika1 - 2017. December 26. - 18:28:59

getElementPosition(player) == 134.8515625, 1930.1376953125, 19.217227935791

 
Ezzel lesz a baja, így szerintem nem lehet megadni egy feltételt, hogy vesszővel elválasztva több érték. A pozíciót 3 változóba tedd bele, és azokat hasonlítgasd.
Cím: Többször spawnol le az autó
Írta: Daniii - 2017. December 26. - 18:29:30
Úgy is próbáltam, de ugyanez.
Cím: Többször spawnol le az autó
Írta: thegergo02 - 2017. December 27. - 17:09:01

addEventHandler(\"onResourceStart\", getResourceRootElement(getThisResource()),
function()
   createPickup(134.8515625, 1930.1376953125, 19.217227935791, 1239)
   createPickup(135.3369140625, 1954.451171875, 19.424501419067, 1239)
end
)
addCommandHandler(\"kapu\",
function(player, command)
   pX,pY,pZ = getElementPosition(player)
   if pX,pY,pZ == 134.8515625, 1930.1376953125, 19.217227935791 then
      setElementPosition(player, 135.3369140625, 1954.451171875, 19.424501419067)
   elseif pX,pY,pZ == 135.3369140625, 1954.451171875, 19.424501419067 then
      setElementPosition(player, 134.8515625, 1930.1376953125, 19.217227935791)
   else
      outputChatBox(\"Nem vagy a kapunál!\", player)
   end   
end
)

 
Szerintem igy jó, de ugye tudod hogy soha az életben nem fog senki pontosan úgy állni hogy ezek legyenek a kordinátái?
 
Használj markert.
Cím: Többször spawnol le az autó
Írta: AlexSwamp - 2017. December 28. - 10:19:00
Idézetet írta: thegergo02 date=1514390941


   

addEventHandler(\"onResourceStart\", getResourceRootElement(getThisResource()),
function()
   createPickup(134.8515625, 1930.1376953125, 19.217227935791, 1239)
   createPickup(135.3369140625, 1954.451171875, 19.424501419067, 1239)
end
)
addCommandHandler(\"kapu\",
function(player, command)
   pX,pY,pZ = getElementPosition(player)
   if pX,pY,pZ == 134.8515625, 1930.1376953125, 19.217227935791 then
      setElementPosition(player, 135.3369140625, 1954.451171875, 19.424501419067)
   elseif pX,pY,pZ == 135.3369140625, 1954.451171875, 19.424501419067 then
      setElementPosition(player, 134.8515625, 1930.1376953125, 19.217227935791)
   else
      outputChatBox(\"Nem vagy a kapunál!\", player)
   end   
end
)

   
      Szerintem igy jó, de ugye tudod hogy soha az életben nem fog senki pontosan úgy állni hogy ezek legyenek a kordinátái?
   
   
      Használj markert.
   


Vagy col-t. :) De jogos, ne akarj fix pozíciót megadni, inkább marker vagy col-t használj, mert abban akkor használható is lesz. :)