Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2017-01-09, 20:40


Wilkuu*

InsideMTA.pl






Wiek: 23
Na forum: 3573 dni
Posty: 50
Nick w MP: Wilku.

Piwa: 268

Respekt: 30,5

Witam serdecznie mam taki problem gdy chcia?em przerobi? te domki na domki z markerem na pickup to niestety co? sz?o nie tak i nie wiem co pr?bowa?em to zrobi? ale nic z tego. Prosz? o pomoc daje R* i :piwo:


local sql = { Query executeSQLQuery };

addEventHandler'onResourceStart'resourceRoot, function()
  sql.Query"CREATE TABLE IF NOT EXISTS house_data (\
    ID INTEGER, en_X REAL, en_Y REAL, en_Z REAL,\
    en_tX REAL, en_tY REAL, en_tZ REAL,\
    ex_X REAL, ex_Y REAL, ex_Z REAL,\
    ex_tX REAL, ex_tY REAL, ex_tZ REAL,\
    int INTEGER, dim INTEGER, cost INTEGER, owner TEXT, key TEXT )"
  );
  for iv in ipairsgetElementsByType'player' ) ) do
    setElementDatav'k_len'tonumberget'keyLength' ) ) );
    local acc getPlayerAccount);
    if not isGuestAccountacc then
      setElementDatav'HS_accountName'getAccountNameacc ) );
    end;
    setElementDatav'mrk_in'nil );
  end;
  local hr sql.Query"SELECT * FROM house_data" );
  for 1#hr do
    createHousefalsehr[i].IDhr[i].ownerhr[i].keyhr[i].en_Xhr[i].en_Yhr[i].en_Zhr[i].en_tXhr[i].en_tYhr[i].en_tZhr[i].ex_Xhr[i].ex_Yhr[i].ex_Zhr[i].ex_tXhr[i].ex_tYhr[i].ex_tZhr[i].inthr[i].dimhr[i].cost );
  end;
end );

addEventHandler'onResourceStop'resourceRoot, function()
  for iv in ipairsgetElementsByType'player' ) ) do
    setElementDatav'k_len'nil );
    setElementDatav'HS_accountName'nil );
  end;
end );

addEventHandler'onPlayerJoin'root, function()
  setElementDatasource'k_len'tonumberget'keyLength' ) ) );
end );

addEventHandler'onPlayerLogin'root, function( _acc )
  setElementDatasource'HS_accountName'getAccountNameacc ) );
end );

addEventHandler'onPlayerLoout'root, function( _acc )
  setElementDatasource'HS_accountName'nil );
end );

addCommandHandler'hpanel', function( player )
  if isObjectInACLGroup'user.'..getAccountNamegetPlayerAccountplayer ) ), aclGetGroup'Admin' ) ) or hasObjectPermissionToplayer'function.banPlayer'false then
    if not getElementDataplayer'HP_Opened' ) and not getElementDataplayer'mrk_in' then
      triggerClientEventplayer'HP_SetVisible'roottrue );
    end;
  else
    outputChatBox'* Access denied for this command!'player2553651 );
  end;
end );

addEvent'onPlayerAttemptCreateHouse'true );
addEventHandler'onPlayerAttemptCreateHouse'root, function( rt )
  createHousetrue#sql.Query( "SELECT * FROM house_data" ) + 1, '', '', unpack( rt ) );
  outputChatBox'* The new house has been created successfully!'client255255);
end );

function createHouseaddIDownerkeyeXeYeZetXetYetZexXexYexZextXextYextZintdimcost )
  if add then
    sql.Query"INSERT INTO house_data ( ID, en_X, en_Y, en_Z, en_tX, en_tY, en_tZ, ex_X, ex_Y, ex_Z, ex_tX, ex_tY, ex_tZ, int, dim, cost, owner, key ) VALUES ( "..ID..", "..eX..", "..eY..", "..eZ..", "..etX..", "..etY..", "..etZ..", "..exX..", "..exY..", "..exZ..", "..extX..", "..extY..", "..extZ..", "..int..", "..dim..", "..cost..", '', '' )" );
  end;
  
  local m_Enter createMarkereXeYeZ 1'cylinder'1.250153255150 );
  setElementDatam_Enter'HS_INFO', { etXetYetZintdimcostownerkeyID } );
  
  if getElementDatam_Enter'HS_INFO' )[7] ~= '' then
    setMarkerColorm_Enter2555136150 );
  end;
  
  addEventHandler'onMarkerHit'm_Enter, function( player )
    if getElementTypeplayer ) == 'player' and not getPedOccupiedVehicleplayer then
      if not getElementDataplayer'HP_Opened' then
        if not isGuestAccountgetPlayerAccountplayer ) ) then
          setElementDataplayer'mrk_in'getElementDatasource'HS_INFO' )[9] );
          onPlayerHouseMarkerHitplayersourcetrue );
          setPedFrozenplayertrue );
        else
          outputChatBox'* You must be logged in to get in this house!'player2555136 );
        end;
      end;
    end;
  end );
  
  addEventHandler'onMarkerLeave'm_Enter, function( player )
    if getElementTypeplayer ) == 'player' and not getPedOccupiedVehicleplayer then
      setElementDataplayer'mrk_in'nil );
    end;
  end );
  
  local m_Exit createMarkerexXexYexZ 1'cylinder'1.250153255150 );
  setElementDatam_Exit'parent'm_Enter );
  setElementInteriorm_Exitint );
  setElementDimensionm_Exitdim );
  
  setElementDatam_Exit'extX'extX );
  setElementDatam_Exit'extY'extY );
  setElementDatam_Exit'extZ'extZ );
  
  addEventHandler'onMarkerHit'm_Exit, function( playerdim )
    if getElementTypeplayer ) == 'player' and dim then
      toggleAllControlsplayerfalse );
      fadeCameraplayerfalse );
      setTimer( function( playermrk )
        if getPedOccupiedVehicleplayer then removePedFromVehicleplayer ); end;
        local xygetElementDatamrk'extX' ), getElementDatamrk'extY' ), getElementDatamrk'extZ' );
        setElementPositionplayerxy);
        setElementInteriorplayer);
        setElementDimensionplayer);
        toggleAllControlsplayertrue );
        fadeCameraplayertrue );
      end12001playersource );
    end;
  end );
end;

function onPlayerHouseMarkerHitplayermrkcursor )
  local acc getPlayerAccountplayer );
  if isGuestAccountacc then
    outputChatBox'* You must be logged in to get in this house!'player2555136 );
    setElementDataplayer'mrk_in'nil );
    setPedFrozenplayerfalse );
    return false;
  end;
  local tts = { [1] = true, [2] = false, [3] = false, [4] = true, [5] = false, [6] = false };
  if isObjectInACLGroup'user.'..getAccountNameacc ), aclGetGroup'Admin' ) ) or hasObjectPermissionToplayer'function.banPlayer'false then
    tts[6] = true;
  end;
  local owner getElementDatamrk'HS_INFO' )[7];
  local accName getAccountNameacc );
  if owner == accName then
    tts[1] = false;
    tts[2] = true;
    tts[3] = true;
    tts[4] = true;
    tts[5] = true;
  end;
  if owner ~= accName and owner ~= '' then
    tts[1] = false;
  end;
  if owner == '' then
    if isObjectInACLGroup'user.'..getAccountNameacc ), aclGetGroup'Admin' ) ) or hasObjectPermissionToplayer'function.banPlayer'false then
      tts[4] = true;
    else
      tts[4] = false;
    end;
  end;
  tts[7] = getElementDatamrk'HS_INFO' )[9];
  tts[8] = getElementDatamrk'HS_INFO' )[7];
  tts[9] = getElementDatamrk'HS_INFO' )[6];
  triggerClientEventplayer'openHouseManagementWnd'rootttscursor );
end;

addEvent'HOUSE_Buy'true );
addEventHandler'HOUSE_Buy'root, function( costkey )
  local accName getAccountNamegetPlayerAccountclient ) );
  local houseCounter 0;
  for iv in ipairsgetElementsByType'marker'getResourceRootElement() ) ) do
    if getElementDatav'HS_INFO' then
      local owner getElementDatav'HS_INFO' )[7];
      if owner == accName then
        houseCounter houseCounter 1;
      end;
    end;
  end;
  if houseCounter >= tonumberget'playerHouseCounter' ) ) then
    outputChatBox'* You can not buy more than #00FF00'..get'playerHouseCounter' )..' house(-s)#FF3324 at the same time!'client2555136true );
    setPedFrozenclientfalse );
    return false;
  end;
  if getPlayerMoneyclient ) >= tonumbercost then
    outputChatBox'* Key has been set to #00FF00'..keyclient2555136true );
    outputChatBox'* Congratulations! You have bought a house!'client255255);
    sql.Query"UPDATE house_data SET owner = '"..accName.."', key = '"..key.."' WHERE ID = ?"getElementDataclient'mrk_in' ) );
    takePlayerMoneyclientcost );
    local mrk getHouseByIDgetElementDataclient'mrk_in' ) );
    local t = {};
    for 1do
      t[i] = getElementDatamrk'HS_INFO' )[i];
    end;
    t[7] = accName;
    t[8] = key;
    t[9] = getElementDataclient'mrk_in' );
    setElementDatamrk'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
    setMarkerColormrk2555136150 );
    setTimeronPlayerHouseMarkerHit501clientmrktrue );
  else
    outputChatBox'* You do not have enough money!'client2555136 );
    onPlayerHouseMarkerHitclientgetHouseByIDgetElementDataclient'mrk_in' ) ), true );
  end;
end );

addEvent'HOUSE_Sell'true );
addEventHandler'HOUSE_Sell'root, function()
  sql.Query"UPDATE house_data SET owner = '', key = '' WHERE ID = ?"getElementDataclient'mrk_in' ) );
    local mrk getHouseByIDgetElementDataclient'mrk_in' ) );
    givePlayerMoneyclientgetElementDatamrk'HS_INFO' )[6] / );
    local t = {};
    for 1do
      t[i] = getElementDatamrk'HS_INFO' )[i];
    end;
    t[7] = '';
    t[8] = '';
    t[9] = getElementDataclient'mrk_in' );
    setElementDatamrk'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
    setMarkerColormrk0153255150 );
    setTimeronPlayerHouseMarkerHit501clientmrkfalse );
  end
);

addEvent'HOUSE_Enter'true );
addEventHandler'HOUSE_Enter'root, function()
  setPedFrozenclientfalse );
  local mrk getHouseByIDgetElementDataclient'mrk_in' ) );
  local t = {};
  for 1do
    t[i] = getElementDatamrk'HS_INFO' )[i];
  end;
  fadeCameraclientfalse );
  toggleAllControlsclientfalse );
  setTimer( function( player)
    if getPedOccupiedVehicleplayer then removePedFromVehicleplayer ); end;
    setElementInteriorplayert[4], t[1], t[2], t[3] );
    setElementDimensionplayert[5] );
    toggleAllControlsplayertrue );
    fadeCameraplayertrue );
    setElementDataplayer'mrk_in'nil )
  end12001client);
end );

addEvent'HOUSE_ChangeKey'true );
addEventHandler'HOUSE_ChangeKey'root, function( newKey )
  local mrk getHouseByIDgetElementDataclient'mrk_in' ) );
  sql.Query"UPDATE house_data SET key = '"..newKey.."' WHERE ID = ?"getElementDataclient'mrk_in' ) );
  local t = {};
  for 1do
    t[i] = getElementDatamrk'HS_INFO' )[i];
  end;
  t[7] = getAccountNamegetPlayerAccountclient ) );
  t[8] = newKey;
  t[9] = getElementDataclient'mrk_in' );
  setElementDatamrk'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
end );

addEvent'HOUSE_ChangeOwner'true );
addEventHandler'HOUSE_ChangeOwner'root, function( name )
  local mrk getHouseByIDgetElementDataclient'mrk_in' ) );
  local accName getAccountNamegetPlayerAccountgetPlayerFromNamename ) ) );
  sql.Query"UPDATE house_data SET owner = '"..accName.."' WHERE ID = ?"getElementDataclient'mrk_in' ) );
  local res sql.Query"SELECT key, owner FROM house_data WHERE ID = ?"getElementDataclient'mrk_in' ) );
  local t = {};
  for 1do
    t[i] = getElementDatamrk'HS_INFO' )[i];
  end;
  t[7] = res[1].owner;
  t[8] = res[1].key;
  t[9] = getElementDataclient'mrk_in' );
  setElementDatamrk'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
  setTimeronPlayerHouseMarkerHit501clientmrkfalse );
  outputChatBox'* #FFFF00'..getPlayerNameclient )..'#00FF00 has given you his house!'getPlayerFromNamename ), 02550true );
end );

addEvent'HOUSE_Destroy'true );
addEventHandler'HOUSE_Destroy'root, function()
  local mrk getHouseByIDgetElementDataclient'mrk_in' ) );
  for iiv in ipairsgetElementsByType'marker'getResourceRootElement() ) ) do
    if getElementDatav'parent' ) == mrk then
      destroyElement);
    end;
  end;
  local hr sql.Query"SELECT * FROM house_data" );
  for getElementDatasource'mrk_in' ), #hr do
    if getHouseByID) ~= mrk then
      sql.Query"UPDATE house_data SET ID = "..( ).." WHERE ID = ?");
      local res sql.Query"SELECT owner, key FROM house_data WHERE ID = ?");
      local nextMrk getHouseByID);
      local t = {};
      for 1do
        t[i] = getElementDatanextMrk'HS_INFO' )[i];
      end;
      t[7] = res[1].owner;
      t[8] = res[1].key;
      t[9] = 1;
      setElementDatanextMrk'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
      local player getPlayerByHouseID);
      setElementDataplayer'mrk_in');
    else
      sql.Query"DELETE FROM house_data WHERE ID = ?");
      destroyElementmrk );
    end;
  end;
  outputChatBox'* House #'..getElementDatasource'mrk_in' )..' has been destroyed!'source255255);
  setPedFrozensourcefalse );
  setElementDatasource'mrk_in'nil );
end );

function getHouseByIDid )
  for iv in ipairsgetElementsByType'marker'getResourceRootElement() ) ) do
    if getElementDatav'HS_INFO' ) and getElementDatav'HS_INFO' )[9] == id then
      return v;
    end;
  end;
  return false;
end;

function getPlayerByHouseIDid )
  for iv in ipairsgetElementsByType'player' ) ) do
    if getElementDatav'mrk_in' ) == id then
      return v;
    end;
  end;
  return false;
end;

addEvent'setFrozen'true );
addEventHandler'setFrozen'root, function( state )
  setPedFrozenclientstate );
end );

addEventHandler'onPlayerWasted'root, function()
  if getElementDatasource'mrk_in' then
    setElementDatasource'mrk_in'nil );
    setPedFrozensourcefalse );
  end;
end );


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-09, 21:35


_Haze

Peace Yo!






Wiek: 24
Na forum: 4185 dni
Posty: 1648
Nick w MP: Haze

Piwa: 2628

Respekt: 1020
Respekt: 1020

Podmie? onMarkerHit na onPickupHit tak samo z leave i daj createPickup zamiast createMarker tylko zobacz na wiki bo tworzenie pickupa ma inne argumenty

Postaw piwo autorowi tego posta
 

 
Tagi: skrypt :: domiki.
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Skrypt na Domiki. Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku