18 Kasım 2018, 22:33:48

Gönderen Konu: [YARDIM] Freeroam Warp Dimension  (Okunma sayısı 387 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Mahlukat

  • VIP
  • *
  • İleti: 370
[YARDIM] Freeroam Warp Dimension
« : 19 Mart 2017, 14:10:47 »
Merhaba, serverimde çoklu dünya sistemi yapma yolunda ilerliyorum da ama 1 soruna takıldım.
Farklı dimensiondan warp olmasını istemiyorum
Daha açıkca anlatmak gerekirse 2. dimensionda olan birisi 0. dimensiondaki kişiye f1 panel>map üzerinden ışınlanamıcak.
Standart freeroam panelinde başka dimensiondaki birine ışınlanınca otomatikmen ışınlandığın kişinin dimensionuna atıyor seni. Denediğim kod da bunu önledim fakat. Işınlanılan kişi araç içindeyse o aracı 2 dimensionda da gösteriyor ve bir çeşit bug oluşuyor

client.lua
Kod: Lua
  1. function updatePlayerBlips()                   
  2.         if not g_PlayerData then
  3.                 return
  4.         end
  5.         local wnd = isWindowOpen(wndSpawnMap) and wndSpawnMap or wndSetPos
  6.         local mapControl = getControl(wnd, 'map')
  7.         for elem,player in pairs(g_PlayerData) do
  8.                 if not player.gui.mapBlip then
  9.                         player.gui.mapBlip = guiCreateStaticImage(0, 0, 9, 9, elem == g_Me and 'localplayerblip.png' or 'playerblip.png', false, mapControl)
  10.                         player.gui.mapLabelShadow = guiCreateLabel(0, 0, 100, 14, player.name, false, mapControl)
  11.                         local labelWidth = guiLabelGetTextExtent(player.gui.mapLabelShadow)
  12.                         guiSetSize(player.gui.mapLabelShadow, labelWidth, 14, false)
  13.                         guiSetFont(player.gui.mapLabelShadow, 'default-normal')
  14.                         guiLabelSetColor(player.gui.mapLabelShadow, 255, 255, 255)
  15.                         player.gui.mapLabel = guiCreateLabel(0, 0, labelWidth, 14, player.name, false, mapControl)
  16.                         guiSetFont(player.gui.mapLabel, 'default-normal')
  17.                         guiLabelSetColor(player.gui.mapLabel, 0, 0, 0)
  18.                         for i,name in ipairs({'mapBlip', 'mapLabelShadow'}) do
  19.                                 addEventHandler('onClientGUIDoubleClick', player.gui[name],
  20.                                         function()
  21.                         server.warpMe(elem)
  22.                         closeWindow(wnd)                                                                                               
  23.                                         end,
  24.                                         false
  25.                                 )
  26.                         end
  27.                 end
  28.                 local x, y = getElementPosition(elem)
  29.                 x = math.floor((x + 3000) * g_MapSide / 6000) - 4
  30.                 y = math.floor((3000 - y) * g_MapSide / 6000) - 4
  31.                 guiSetPosition(player.gui.mapBlip, x, y, false)
  32.                 guiSetPosition(player.gui.mapLabelShadow, x + 14, y - 4, false)
  33.                 guiSetPosition(player.gui.mapLabel, x + 13, y - 5, false)
  34.         end
  35. end
server.lua
Kod: Lua
  1. function warpMe(targetPlayer)
  2.         if isPedDead(source) then
  3.                 spawnMe()
  4.         end
  5.  
  6.         local vehicle = getPedOccupiedVehicle(targetPlayer)
  7.         local interior = getElementInterior(targetPlayer)
  8.         if not vehicle then
  9.  
  10.                 local x, y, z = getElementPosition(targetPlayer)
  11.                 clientCall(source, 'setPlayerPosition', x + 2, y, z)
  12.                 setElementInterior(source, interior)
  13.                 setCameraInterior(source, interior)
  14.         else
  15.  
  16.                 if getPedOccupiedVehicle(source) then
  17.  
  18.                         outputChatBox('Get out of your vehicle first.', source)
  19.                         return
  20.                 end
  21.                 local numseats = getVehicleMaxPassengers(vehicle)
  22.                 for i=0,numseats do
  23.                         if not getVehicleOccupant(vehicle, i) then
  24.                                 if isPedDead(source) then
  25.                                         local x, y, z = getElementPosition(vehicle)
  26.                                         spawnMe(x + 4, y, z + 1)
  27.                                 end
  28.                                 local dimLocal = getElementDimension(source)
  29.                 for k,v in ipairs(getElementsByType("player")) do
  30.                 local dimRoot = getElementDimension(v)
  31.                 if not dimLocal == dimRoot then
  32.                                  outputChatBox('Bu oyuncu başka bir boyutta', source)
  33.                                  return
  34.                  end
  35.                 end                              
  36.                                 setElementInterior(source, interior)
  37.                                 setCameraInterior(source, interior)
  38.                                 warpPedIntoVehicle(source, vehicle, i)
  39.                                 return
  40.                         end
  41.                 end
  42.                 outputChatBox('No free seats left in ' .. getPlayerName(targetPlayer) .. '\'s vehicle.', source, 255, 0, 0)
  43.         end
  44. end
Ve benim eklediğim kod da server tarafında şu;
Kod: Lua
  1. local dimLocal = getElementDimension(source)
  2.            for k,v in ipairs(getElementsByType("player")) do
  3.                 local dimRoot = getElementDimension(v)
  4.                 if not dimLocal == dimRoot then
  5.                 outputChatBox('Bu oyuncu başka bir boyutta', source)
  6.          return
  7.                  end
  8.           end          
Yardmcı olabilcek varmı acaba  :-\
« Son Düzenleme: 23 Ocak 2018, 21:14:25 Gönderen: Narkoz »
Linkleri Görebilmek İçin Kayıt Olun veya Giriş Yapın
 

MTASA-TURK | Türkiye'nin En Güncel MTA Platformu

[YARDIM] Freeroam Warp Dimension
« : 19 Mart 2017, 14:10:47 »

Paradox

  • Kurucu
  • *
  • İleti: 698
  • SH Gaming
Ynt: [Yardım]Freeroam Warp Dimension
« Yanıtla #1 : 19 Mart 2017, 14:20:31 »
Server
Kod: Lua
  1. function warpMe(targetPlayer)
  2.     if getElementDimension(targetPlayer)==getElementDimension(source) then
  3.         if isPedDead(source) then
  4.                 spawnMe()
  5.         end
  6.  
  7.         local vehicle = getPedOccupiedVehicle(targetPlayer)
  8.         local interior = getElementInterior(targetPlayer)
  9.         if not vehicle then
  10.  
  11.                 local x, y, z = getElementPosition(targetPlayer)
  12.                 clientCall(source, 'setPlayerPosition', x + 2, y, z)
  13.                 setElementInterior(source, interior)
  14.                 setCameraInterior(source, interior)
  15.         else
  16.  
  17.                 if getPedOccupiedVehicle(source) then
  18.  
  19.                         outputChatBox('Get out of your vehicle first.', source)
  20.                         return
  21.                 end
  22.                 local numseats = getVehicleMaxPassengers(vehicle)
  23.                 for i=0,numseats do
  24.                         if not getVehicleOccupant(vehicle, i) then
  25.                                 if isPedDead(source) then
  26.                                         local x, y, z = getElementPosition(vehicle)
  27.                                         spawnMe(x + 4, y, z + 1)
  28.                                 end                          
  29.                                 setElementInterior(source, interior)
  30.                                 setCameraInterior(source, interior)
  31.                                 warpPedIntoVehicle(source, vehicle, i)
  32.                                 return
  33.                         end
  34.                 end
  35.         end
 
Mesajı Beğenenler: Mahlukat

Mahlukat

  • VIP
  • *
  • İleti: 370
Ynt: [Yardım]Freeroam Warp Dimension
« Yanıtla #2 : 19 Mart 2017, 15:04:59 »
Çok teşekkür ederim oldu. Konu kilitlenebilir
Teşekkürler Paradox
Linkleri Görebilmek İçin Kayıt Olun veya Giriş Yapın
 

CruzerGq

  • Süper Moderatör
  • *
  • İleti: 501
    • MTASATURK
Ynt: [Yardım]Freeroam Warp Dimension
« Yanıtla #3 : 19 Mart 2017, 15:09:30 »
Konu sahibinin isteği üzerine @Konu Kilit.