Wysłany: 2016-02-18, 12:29
P.Wiśnia
Programista LUA
Wiek: 24 Na forum: 4045 dni Posty: 568
Nick w MP: P.Wiśnia
Piwa : 376
Kod: local gRoot = getRootElement();
local gResRoot = getResourceRootElement( getThisResource () );
local sql = { Query = executeSQLQuery };
addEventHandler( 'onResourceStart', gResRoot,
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 )"
);
local hr = sql.Query( "SELECT * FROM house_data" );
for i = 1, #hr do
createHouse( false, hr[i].ID, hr[i].owner, hr[i].key, hr[i].en_X, hr[i].en_Y, hr[i].en_Z, hr[i].en_tX, hr[i].en_tY, hr[i].en_tZ, hr[i].ex_X, hr[i].ex_Y, hr[i].ex_Z, hr[i].ex_tX, hr[i].ex_tY, hr[i].ex_tZ, hr[i].int, hr[i].dim, hr[i].cost );
end;
for i, v in ipairs( getElementsByType( 'player' ) ) do
setElementData( v, 'k_len', tonumber( get( 'keyLength' ) ) );
end;
addEventHandler( 'onPlayerJoin', gRoot,
function()
setElementData( source, 'k_len', tonumber( get( 'keyLength' ) ) );
end
);
end
);
addCommandHandler( 'hpanel',
function( player )
if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( player ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( player, 'function.banPlayer', false ) then
if not getElementData( player, 'HP_Opened' ) then
triggerClientEvent( player, 'HP_SetVisible', gRoot, true );
end;
else
outputChatBox( '* Access denied for this command!', player, 255, 36, 51 );
end;
end
);
addEvent( 'onPlayerAttemptCreateHouse', true );
addEventHandler('onPlayerAttemptCreateHouse', gRoot,
function( rt )
createHouse( true, #sql.Query( "SELECT * FROM house_data" )+1, 'none', '', unpack( rt ) );
end
);
function createHouse( add, ID, owner, key, eX, eY, eZ, etX, etY, etZ, exX, exY, exZ, extX, extY, extZ, int, dim, cost )
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..", 'none', '' )" );
end;
local m_Enter = createMarker( eX, eY, eZ - 1, 'cylinder', 1.25, 0, 153, 255, 150 );
setElementData( m_Enter, 'HS_INFO', { etX, etY, etZ, int, dim, cost, owner, key, ID } );
if getElementData( m_Enter, 'HS_INFO' )[7] ~= 'none' then
setMarkerColor( m_Enter, 255, 51, 36, 150 );
end;
addEventHandler( 'onMarkerHit', m_Enter,
function( player )
if getElementType( player ) == 'player' and not getPedOccupiedVehicle( player ) then
if not getElementData( player, 'HP_Opened' ) then
setElementData( player, 'mrk_in', getElementData( source, 'HS_INFO' )[9] );
onPlayerHouseMarkerHit( player, source, true );
triggerEvent( 'setFrozen', player, true );
end;
end;
end
);
addEventHandler( 'onMarkerLeave', m_Enter,
function( player )
if getElementType( player ) == 'player' and not getPedOccupiedVehicle( player ) then
setElementData( player, 'mrk_in', nil );
end;
end
);
local m_Exit = createMarker( exX, exY, exZ - 1, 'cylinder', 1.25, 0, 153, 255, 150 );
setElementData( m_Exit, 'parent', m_Enter );
setElementInterior( m_Exit, int );
setElementDimension( m_Exit, dim );
setElementData( m_Exit, 'extX', extX );
setElementData( m_Exit, 'extY', extY );
setElementData( m_Exit, 'extZ', extZ );
addEventHandler( 'onMarkerHit', m_Exit,
function( player, dim )
if getElementType( player ) == 'player' and dim then
toggleAllControls( player, false );
fadeCamera( player, false );
setTimer( function( player, mrk )
local x = getElementData( mrk, 'extX' );
local y = getElementData( mrk, 'extY' );
local z = getElementData( mrk, 'extZ' );
setElementInterior( player, 0, x, y, z );
setElementDimension( player, 0 );
toggleAllControls( player, true );
fadeCamera( player, true );
end, 1200, 1, player, source );
end;
end
);
end;
function getHouseByID( ID )
for i, v in ipairs( getElementsByType( 'marker' ) ) do
if getElementData( v, 'HS_INFO' ) then
if getElementData( v, 'HS_INFO' )[9] == ID then
return v;
end;
end;
end;
return false;
end;
function getPlayerByHouseID( ID )
for i, v in ipairs( getElementsByType( 'player' ) ) do
if getElementData( v, 'mrk_in' ) == ID then
return v;
end;
end;
return false;
end;
addEvent( 'setFrozen', true );
addEventHandler( 'setFrozen', gRoot,
function( state )
setPedFrozen( source, state );
end
);
function onPlayerHouseMarkerHit( player, mrk, cursor )
local tts = { [1] = true, [2] = false, [3] = false, [4] = false, [5] = false, [6] = false };
if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( player ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( player, 'function.banPlayer', false ) then
tts[6] = true;
end;
local owner = string.upper( getElementData( mrk, 'HS_INFO' )[7] );
local pName = string.upper( getPlayerName( player ) );
if owner == pName and pName ~= 'NONE' then
tts[1] = false;
tts[2] = true;
tts[3] = true;
tts[4] = true;
tts[5] = true;
end;
if owner ~= pName and owner ~= 'NONE' then
tts[1] = false;
end;
if owner == 'NONE' and isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( player ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( player, 'function.banPlayer', false ) then
tts[4] = true;
end;
tts[7] = getElementData( mrk, 'HS_INFO' )[9];
tts[8] = getElementData( mrk, 'HS_INFO' )[7];
tts[9] = getElementData( mrk, 'HS_INFO' )[6];
triggerClientEvent( player, 'openHouseManagementWnd', gRoot, tts, cursor );
end;
addEvent( 'HOUSE_Buy', true );
addEventHandler( 'HOUSE_Buy', gRoot,
function( cost, key )
local houseCounter = 0;
for i, v in ipairs( getElementsByType( 'marker' ) ) do
if getElementData( v, 'HS_INFO' ) then
local owner = getElementData( v, 'HS_INFO' )[7];
if string.upper( owner ) == string.upper( getPlayerName( source ) ) then
houseCounter = houseCounter + 1;
end;
end;
end;
if houseCounter >= tonumber( get( 'playerHouseCounter' ) ) then
outputChatBox( '* You can not buy more than #00FF00'..get( 'playerHouseCounter' )..' house(-s)#FF3324 at the same time!', source, 255, 51, 36, true );
setPedFrozen( source, false );
return false;
end;
if string.upper( getPlayerName( source ) ) == 'NONE' then
setPedFrozen( source, false );
return outputChatBox( '* Change your nickname before this action!', source, 255, 51, 36 );
end;
if getPlayerMoney( source ) >= tonumber( cost ) then
outputChatBox( '* Key has been set to #00FF00'..key, source, 255, 51, 36, true );
outputChatBox( '* Congratulations! You have bought a house!', source, 255, 255, 0 );
sql.Query( "UPDATE house_data SET owner = '"..getPlayerName( source ).."', key = '"..key.."' WHERE ID = ?", getElementData( source, 'mrk_in' ) );
takePlayerMoney( source, cost );
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
local t = {};
for i = 1, 6 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
t[7] = getPlayerName( source );
t[8] = key;
t[9] = getElementData( source, 'mrk_in' );
setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
setMarkerColor( mrk, 255, 51, 36, 150 );
setTimer( onPlayerHouseMarkerHit, 850, 1, source, mrk, true );
else
outputChatBox( "* You don't have enough money!", source, 255, 51, 36 );
onPlayerHouseMarkerHit( source, getHouseByID( getElementData( source, 'mrk_in' ) ), true );
end;
end
);
addEvent( 'HOUSE_Sell', true );
addEventHandler( 'HOUSE_Sell', gRoot,
function()
local empty = 'none';
sql.Query( "UPDATE house_data SET owner = '"..empty.."', key = '' WHERE ID = ?", getElementData( source, 'mrk_in' ) );
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
givePlayerMoney( source, getElementData( mrk, 'HS_INFO' )[6] / 2 );
local t = {};
for i = 1, 6 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
t[7] = 'none';
t[8] = '';
t[9] = getElementData( source, 'mrk_in' );
setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
setMarkerColor( mrk, 0, 153, 255, 150 );
setTimer( onPlayerHouseMarkerHit, 850, 1, source, mrk, false );
end
);
addEvent( 'HOUSE_Enter', true );
addEventHandler( 'HOUSE_Enter', gRoot,
function()
setPedFrozen( source, false );
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
local t = {};
for i = 1, 5 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
fadeCamera( source, false );
toggleAllControls( source, false );
setTimer( function( player, t )
setElementInterior( player, t[4], t[1], t[2], t[3] );
setElementDimension( player, t[5] );
toggleAllControls( player, true );
fadeCamera( player, true );
end, 1200, 1, source, t );
end
);
addEvent( 'HOUSE_ChangeKey', true );
addEventHandler( 'HOUSE_ChangeKey', gRoot,
function( newKey )
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
sql.Query( "UPDATE house_data SET key = '"..newKey.."' WHERE ID = ?", getElementData( source, 'mrk_in' ) );
local t = {};
for i = 1, 6 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
t[7] = getPlayerName( source );
t[8] = newKey;
t[9] = getElementData( source, 'mrk_in' );
setElementData( mrk, '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', gRoot,
function( name )
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
sql.Query( "UPDATE house_data SET owner = '"..name.."' WHERE ID = ?", getElementData( source, 'mrk_in' ) );
local res = sql.Query( "SELECT key, owner FROM house_data WHERE ID = ?", getElementData( source, 'mrk_in' ) );
local t = {};
for i = 1, 6 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
t[7] = res[1].owner;
t[8] = res[1].key;
t[9] = getElementData( source, 'mrk_in' );
setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
setTimer( onPlayerHouseMarkerHit, 850, 1, source, mrk, false );
outputChatBox( '* #FFFF00'..getPlayerName( source )..'#00FF00 has given you his house!', getPlayerFromName( name ), 0, 255, 0, true );
end
);
addEvent( 'HOUSE_Destroy', true );
addEventHandler( 'HOUSE_Destroy', gRoot,
function()
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
for ii, v in ipairs( getElementsByType( 'marker' ) ) do
if getElementData( v, 'parent' ) == mrk then
destroyElement( v );
end;
end;
local hr = sql.Query( "SELECT * FROM house_data" );
for i = getElementData( source, 'mrk_in' ), #hr do
if getHouseByID( i ) ~= mrk then
sql.Query( "UPDATE house_data SET ID = "..tonumber(tostring(i-1)).." WHERE ID = ?", i );
local res = sql.Query( "SELECT owner, key FROM house_data WHERE ID = ?", i-1 );
local nextMrk = getHouseByID( i );
local t = {};
for i = 1, 6 do
t[i] = getElementData( nextMrk, 'HS_INFO' )[i];
end;
t[7] = res[1].owner;
t[8] = res[1].key;
t[9] = i-1;
setElementData( nextMrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
local player = getPlayerByHouseID( i );
setElementData( player, 'mrk_in', i - 1 );
else
sql.Query( "DELETE FROM house_data WHERE ID = ?", i );
destroyElement( mrk );
end;
end;
outputChatBox( '* A house #'..getElementData( source, 'mrk_in' )..' has been destroyed!', source, 255, 255, 0 );
setPedFrozen( source, false );
end
);
Wysłany: 2016-02-18, 12:32
_Wicek_
Majstersztyk
Wiek: 25 Na forum: 4260 dni Posty: 747
Nick w MP: Wicek
Piwa : 1841
Podpis
Support-Team: 25.01.2016
Moderator: 10.07.2016
GG: 51274621
Skype : kuba_wicinski
Wysłany: 2016-02-18, 16:34
P.Wiśnia
Programista LUA
Wiek: 24 Na forum: 4045 dni Posty: 568
Nick w MP: P.Wiśnia
Piwa : 376
dlaczego to niedzia?a
local m_Enter = createPickup ( eX, eY, eZ - 1, 1272, [ int respawnTime = 30000, int ammo = 50 ] )
setElementData( m_Enter, 'HS_INFO', { etX, etY, etZ, int, dim, cost, owner, key, ID } );
Wysłany: 2016-02-18, 17:45
marcin778
Krytyk serwerów MTA
Wiek: 24 Na forum: 4149 dni Posty: 2268
Nick w MP: Marcineg
Piwa : 4662
local m_Enter = createPickup ( eX , eY , eZ - 1 , 1272 , [ int respawnTime = 30000 , int ammo = 50 ] )
setElementData ( m_Enter , 'HS_INFO' , { etX , etY , etZ , int , dim , cost , owner , key , ID } );
Masz gdzie? zdefiniowace eX, eY, eZ ?
Je?li nie to zdefiniuj, lub w tamto miejsce wstaw koordy.
Wysłany: 2016-02-18, 17:52
P.Wiśnia
Programista LUA
Wiek: 24 Na forum: 4045 dni Posty: 568
Nick w MP: P.Wiśnia
Piwa : 376
nadal nic
to ca?y skrypt
Kod: local gRoot = getRootElement();
local gResRoot = getResourceRootElement( getThisResource () );
local sql = { Query = executeSQLQuery };
addEventHandler( 'onResourceStart', gResRoot,
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 )"
);
local hr = sql.Query( "SELECT * FROM house_data" );
for i = 1, #hr do
createHouse( false, hr[i].ID, hr[i].owner, hr[i].key, hr[i].en_X, hr[i].en_Y, hr[i].en_Z, hr[i].en_tX, hr[i].en_tY, hr[i].en_tZ, hr[i].ex_X, hr[i].ex_Y, hr[i].ex_Z, hr[i].ex_tX, hr[i].ex_tY, hr[i].ex_tZ, hr[i].int, hr[i].dim, hr[i].cost );
end;
for i, v in ipairs( getElementsByType( 'player' ) ) do
setElementData( v, 'k_len', tonumber( get( 'keyLength' ) ) );
end;
addEventHandler( 'onPlayerJoin', gRoot,
function()
setElementData( source, 'k_len', tonumber( get( 'keyLength' ) ) );
end
);
end
);
addCommandHandler( 'hpanel',
function( player )
if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( player ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( player, 'function.banPlayer', false ) then
if not getElementData( player, 'HP_Opened' ) then
triggerClientEvent( player, 'HP_SetVisible', gRoot, true );
end;
else
outputChatBox( '* Access denied for this command!', player, 255, 36, 51 );
end;
end
);
addEvent( 'onPlayerAttemptCreateHouse', true );
addEventHandler('onPlayerAttemptCreateHouse', gRoot,
function( rt )
createHouse( true, #sql.Query( "SELECT * FROM house_data" )+1, 'none', '', unpack( rt ) );
end
);
function createHouse( add, ID, owner, key, eX, eY, eZ, etX, etY, etZ, exX, exY, exZ, extX, extY, extZ, int, dim, cost )
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..", 'none', '' )" );
end;
local m_Enter = createMarker( eX, eY, eZ - 1, 'cylinder', 1.25, 0, 153, 255, 150 );
setElementData( m_Enter, 'HS_INFO', { etX, etY, etZ, int, dim, cost, owner, key, ID } );
if getElementData( m_Enter, 'HS_INFO' )[7] ~= 'none' then
setMarkerColor( m_Enter, 255, 51, 36, 150 );
end;
addEventHandler( 'onMarkerHit', m_Enter,
function( player )
if getElementType( player ) == 'player' and not getPedOccupiedVehicle( player ) then
if not getElementData( player, 'HP_Opened' ) then
setElementData( player, 'mrk_in', getElementData( source, 'HS_INFO' )[9] );
onPlayerHouseMarkerHit( player, source, true );
triggerEvent( 'setFrozen', player, true );
end;
end;
end
);
addEventHandler( 'onMarkerLeave', m_Enter,
function( player )
if getElementType( player ) == 'player' and not getPedOccupiedVehicle( player ) then
setElementData( player, 'mrk_in', nil );
end;
end
);
local m_Exit = createMarker( exX, exY, exZ - 1, 'cylinder', 1.25, 0, 153, 255, 150 );
setElementData( m_Exit, 'parent', m_Enter );
setElementInterior( m_Exit, int );
setElementDimension( m_Exit, dim );
setElementData( m_Exit, 'extX', extX );
setElementData( m_Exit, 'extY', extY );
setElementData( m_Exit, 'extZ', extZ );
addEventHandler( 'onMarkerHit', m_Exit,
function( player, dim )
if getElementType( player ) == 'player' and dim then
toggleAllControls( player, false );
fadeCamera( player, false );
setTimer( function( player, mrk )
local x = getElementData( mrk, 'extX' );
local y = getElementData( mrk, 'extY' );
local z = getElementData( mrk, 'extZ' );
setElementInterior( player, 0, x, y, z );
setElementDimension( player, 0 );
toggleAllControls( player, true );
fadeCamera( player, true );
end, 1200, 1, player, source );
end;
end
);
end;
function getHouseByID( ID )
for i, v in ipairs( getElementsByType( 'marker' ) ) do
if getElementData( v, 'HS_INFO' ) then
if getElementData( v, 'HS_INFO' )[9] == ID then
return v;
end;
end;
end;
return false;
end;
function getPlayerByHouseID( ID )
for i, v in ipairs( getElementsByType( 'player' ) ) do
if getElementData( v, 'mrk_in' ) == ID then
return v;
end;
end;
return false;
end;
addEvent( 'setFrozen', true );
addEventHandler( 'setFrozen', gRoot,
function( state )
setPedFrozen( source, state );
end
);
function onPlayerHouseMarkerHit( player, mrk, cursor )
local tts = { [1] = true, [2] = false, [3] = false, [4] = false, [5] = false, [6] = false };
if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( player ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( player, 'function.banPlayer', false ) then
tts[6] = true;
end;
local owner = string.upper( getElementData( mrk, 'HS_INFO' )[7] );
local pName = string.upper( getPlayerName( player ) );
if owner == pName and pName ~= 'NONE' then
tts[1] = false;
tts[2] = true;
tts[3] = true;
tts[4] = true;
tts[5] = true;
end;
if owner ~= pName and owner ~= 'NONE' then
tts[1] = false;
end;
if owner == 'NONE' and isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( player ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( player, 'function.banPlayer', false ) then
tts[4] = true;
end;
tts[7] = getElementData( mrk, 'HS_INFO' )[9];
tts[8] = getElementData( mrk, 'HS_INFO' )[7];
tts[9] = getElementData( mrk, 'HS_INFO' )[6];
triggerClientEvent( player, 'openHouseManagementWnd', gRoot, tts, cursor );
end;
addEvent( 'HOUSE_Buy', true );
addEventHandler( 'HOUSE_Buy', gRoot,
function( cost, key )
local houseCounter = 0;
for i, v in ipairs( getElementsByType( 'marker' ) ) do
if getElementData( v, 'HS_INFO' ) then
local owner = getElementData( v, 'HS_INFO' )[7];
if string.upper( owner ) == string.upper( getPlayerName( source ) ) then
houseCounter = houseCounter + 1;
end;
end;
end;
if houseCounter >= tonumber( get( 'playerHouseCounter' ) ) then
outputChatBox( '* You can not buy more than #00FF00'..get( 'playerHouseCounter' )..' house(-s)#FF3324 at the same time!', source, 255, 51, 36, true );
setPedFrozen( source, false );
return false;
end;
if string.upper( getPlayerName( source ) ) == 'NONE' then
setPedFrozen( source, false );
return outputChatBox( '* Change your nickname before this action!', source, 255, 51, 36 );
end;
if getPlayerMoney( source ) >= tonumber( cost ) then
outputChatBox( '* Key has been set to #00FF00'..key, source, 255, 51, 36, true );
outputChatBox( '* Congratulations! You have bought a house!', source, 255, 255, 0 );
sql.Query( "UPDATE house_data SET owner = '"..getPlayerName( source ).."', key = '"..key.."' WHERE ID = ?", getElementData( source, 'mrk_in' ) );
takePlayerMoney( source, cost );
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
local t = {};
for i = 1, 6 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
t[7] = getPlayerName( source );
t[8] = key;
t[9] = getElementData( source, 'mrk_in' );
setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
setMarkerColor( mrk, 255, 51, 36, 150 );
setTimer( onPlayerHouseMarkerHit, 850, 1, source, mrk, true );
else
outputChatBox( "* You don't have enough money!", source, 255, 51, 36 );
onPlayerHouseMarkerHit( source, getHouseByID( getElementData( source, 'mrk_in' ) ), true );
end;
end
);
addEvent( 'HOUSE_Sell', true );
addEventHandler( 'HOUSE_Sell', gRoot,
function()
local empty = 'none';
sql.Query( "UPDATE house_data SET owner = '"..empty.."', key = '' WHERE ID = ?", getElementData( source, 'mrk_in' ) );
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
givePlayerMoney( source, getElementData( mrk, 'HS_INFO' )[6] / 2 );
local t = {};
for i = 1, 6 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
t[7] = 'none';
t[8] = '';
t[9] = getElementData( source, 'mrk_in' );
setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
setMarkerColor( mrk, 0, 153, 255, 150 );
setTimer( onPlayerHouseMarkerHit, 850, 1, source, mrk, false );
end
);
addEvent( 'HOUSE_Enter', true );
addEventHandler( 'HOUSE_Enter', gRoot,
function()
setPedFrozen( source, false );
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
local t = {};
for i = 1, 5 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
fadeCamera( source, false );
toggleAllControls( source, false );
setTimer( function( player, t )
setElementInterior( player, t[4], t[1], t[2], t[3] );
setElementDimension( player, t[5] );
toggleAllControls( player, true );
fadeCamera( player, true );
end, 1200, 1, source, t );
end
);
addEvent( 'HOUSE_ChangeKey', true );
addEventHandler( 'HOUSE_ChangeKey', gRoot,
function( newKey )
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
sql.Query( "UPDATE house_data SET key = '"..newKey.."' WHERE ID = ?", getElementData( source, 'mrk_in' ) );
local t = {};
for i = 1, 6 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
t[7] = getPlayerName( source );
t[8] = newKey;
t[9] = getElementData( source, 'mrk_in' );
setElementData( mrk, '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', gRoot,
function( name )
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
sql.Query( "UPDATE house_data SET owner = '"..name.."' WHERE ID = ?", getElementData( source, 'mrk_in' ) );
local res = sql.Query( "SELECT key, owner FROM house_data WHERE ID = ?", getElementData( source, 'mrk_in' ) );
local t = {};
for i = 1, 6 do
t[i] = getElementData( mrk, 'HS_INFO' )[i];
end;
t[7] = res[1].owner;
t[8] = res[1].key;
t[9] = getElementData( source, 'mrk_in' );
setElementData( mrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
setTimer( onPlayerHouseMarkerHit, 850, 1, source, mrk, false );
outputChatBox( '* #FFFF00'..getPlayerName( source )..'#00FF00 has given you his house!', getPlayerFromName( name ), 0, 255, 0, true );
end
);
addEvent( 'HOUSE_Destroy', true );
addEventHandler( 'HOUSE_Destroy', gRoot,
function()
local mrk = getHouseByID( getElementData( source, 'mrk_in' ) );
for ii, v in ipairs( getElementsByType( 'marker' ) ) do
if getElementData( v, 'parent' ) == mrk then
destroyElement( v );
end;
end;
local hr = sql.Query( "SELECT * FROM house_data" );
for i = getElementData( source, 'mrk_in' ), #hr do
if getHouseByID( i ) ~= mrk then
sql.Query( "UPDATE house_data SET ID = "..tonumber(tostring(i-1)).." WHERE ID = ?", i );
local res = sql.Query( "SELECT owner, key FROM house_data WHERE ID = ?", i-1 );
local nextMrk = getHouseByID( i );
local t = {};
for i = 1, 6 do
t[i] = getElementData( nextMrk, 'HS_INFO' )[i];
end;
t[7] = res[1].owner;
t[8] = res[1].key;
t[9] = i-1;
setElementData( nextMrk, 'HS_INFO', { t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9] } );
local player = getPlayerByHouseID( i );
setElementData( player, 'mrk_in', i - 1 );
else
sql.Query( "DELETE FROM house_data WHERE ID = ?", i );
destroyElement( mrk );
end;
end;
outputChatBox( '* A house #'..getElementData( source, 'mrk_in' )..' has been destroyed!', source, 255, 255, 0 );
setPedFrozen( source, false );
end
);
Tagi: jak :: zrobić :: pickup
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: