Szerző Téma: Drift Score elmentése, betöltése!  (Megtekintve 1530 alkalommal)

Drift Score elmentése, betöltése!
« Dátum: 2015. december 20. - 20:10:54 »
0 Show voters
Sziasztok! Kezdem érteni ezt a setElementData meg getElementData dolgok de mégis kellene egy kis segítség:  :unsure:
Client oldali script. iMaxScore-t elmentem driftscore néven setElementData-val amikor véget ér a drift. Ezt le is ellenőrzöm, elmenti. Ezt amikor kilép a player server oldalon lekérem. De aztán mikor belép a játékos hogy töltsem ezt neki be az iMaxScore-ba hogy lássa mennyivel lépett ki előzőleg?! :(
Client:
 
local iDriftScore = 0;
local iMaxScore = 0;
local iScore = 0;
local iMyCombo = 1;
local fCustomFontScale = 2;
local bJustFinished = false;
local player = getLocalPlayer( )
 
addEventHandler( \"onClientMapStarting\", root,
function( tMapInfo )
iMaxScore = 0;
iDriftScore = 0;
iMyCombo = 0;
txtBestScore: text( \"Best score:\" );
for i, v in pairs( tMapInfo ) do
   outputDebugString( tostring( i )  .. \" :  \" .. tostring( v ) );
end
end
);
 
addEventHandler( \"onClientResourceStart\", resourceRoot,
function(  )
dxSetTestMode( \"none\" );
 
txtCombo = dxText: create( \"x2\", screenSize[ 1 ] - 100, screenSize[ 2 ] / 2 , false, \"default-bold\", 5 );
txtCombo: type( \"shadow\", 4 );
txtCombo: visible( false );
txtComboTitle = dxText: create( \"COMBO\", screenSize[ 1 ] * 0.9, screenSize[ 2 ] / 2 - 60, false, \"default-bold\", 3 );
txtComboTitle: type( \"shadow\", 3 );
txtComboTitle: visible( false );
txtScoreTitle = dxText: create( \"DRIFT\", screenSize[ 1 ] / 2, screenSize[ 2 ] / 5.6, false, \"default-bold\", 3 );
txtScoreTitle: type( \"shadow\", 3 );
txtScoreTitle: visible( false );
txtScore = dxText: create( \"\", screenSize[ 1 ] / 2, screenSize[ 2 ] / 4, false, \"default-bold\", 3 );
txtScore: visible( false );
txtScore: type( \"shadow\", 3 );
txtBestScore = dxText: create( \"Best score: 0\", screenSize[ 1 ] * 0.8, 20, false, \"arial\", 2 );
txtBestScore: type( \"shadow\", 2 );
ftDigitalism = dxCreateFont( \"digitalism.ttf\", 20, true );
if ftDigitalism then
   txtCombo: font( ftDigitalism );
   txtCombo: scale( fCustomFontScale );
   txtComboTitle: font( ftDigitalism );
   txtComboTitle: scale( fCustomFontScale*.7 );
   txtScore: font( ftDigitalism );
   txtScore: scale( fCustomFontScale );
   txtScoreTitle: font( ftDigitalism );
   txtScoreTitle: scale( fCustomFontScale );
   txtBestScore: font( ftDigitalism );
   txtBestScore: scale( fCustomFontScale/2 );
end
end
)
addEventHandler( \"onClientVehicleStartDrift\", root,
function( )
addEventHandler( \"onClientVehicleDrift\", root, drift );
if not bJustFinished then
   txtScore: text( \"0\" );
   txtScore: visible( true );
   txtScoreTitle: visible( true );
   local r,g,b,a = txtScore: color( );
   txtScore: color( r, g, b, 255 );
end
end
)
addEventHandler( \"onClientVehicleEndDrift\", root,
function( )
removeEventHandler( \"onClientVehicleDrift\", root, drift );
iLastScore = iDriftScore * iMyCombo;
 
txtCombo: visible( false );
txtComboTitle: visible( false );
txtScore: text( tostring( iLastScore ) );
Animation.createAndPlay( txtScore,
   Animation.presets.dxTextMove(
      screenSize[ 1 ] / 2,
      screenSize[ 2 ] / 4,
      100, false,
      screenSize[ 1 ] * .3,
      screenSize[ 2 ] / 4
      )
);
--Animation.createAndPlay( txtScore, Animation.presets.dxTextFadeIn( 100 ) );
Animation.createAndPlay( txtScoreTitle,
   Animation.presets.dxTextMove(
      screenSize[ 1 ] / 2,
      screenSize[ 2 ] / 5.6,
      100, false,
      screenSize[ 1 ] * .7,
      screenSize[ 2 ] / 5.6
      )
);
--Animation.createAndPlay( txtScoreTitle, Animation.presets.dxTextFadeIn( 300 ) );
 
if iLastScore > iMaxScore then
   txtBestScore: text( \"Best Score: \" .. tostring( iLastScore ) );
   iMaxScore = iLastScore;
 
end
bJustFinished = true;
setTimer( changeFinishedState, 2000, 1 );
setTimer( centreScore, 100, 1 );
iDriftScore = 0;
iMyCombo = 1;
setElementData(player, \"driftscore\", iMaxScore)
lol = getElementData(player, \"driftscore\")
outputChatBox(lol)
 
end
)
addEventHandler( \"onClientVehicleDriftCombo\", root,
function( iCombo )
txtCombo: text( \"x\"..tostring( iCombo ) );
txtCombo: visible( true );
txtComboTitle: visible( true );
playSoundFrontEnd( 43 );
Animation.createAndPlay( txtCombo, Animation.presets.dxTextMoveResize(
   screenSize[ 1 ] * 0.9,
   screenSize[ 2 ] / 2 - 10,
   ftDigitalism and fCustomFontScale*.75 or 5,
   300, false, -- time, loop,
   screenSize[ 1 ] * 0.9,
   screenSize[ 2 ] / 2 - 10,
   ftDigitalism and fCustomFontScale*3 or 15 ) );
Animation.createAndPlay( txtCombo, Animation.presets.dxTextFadeIn( 300 ) );
iMyCombo = iCombo;
end
);
 
function drift( fAngle, fSpeed, sSide, iDriftTime )
local iNewScore = math.ceil( iDriftScore + (fAngle/25) * (fSpeed/15) );
if not bJustFinished then
txtScore: text( tostring( iNewScore ) );
txtScore: visible( true );
txtScoreTitle: visible( true );
local r,g,b = txtScore: color( );
txtScore: color( r, g, b, 255 );
end
iDriftScore = iNewScore;
end
function centreScore( )
txtScore: position( screenSize[ 1 ] / 2, screenSize[ 2 ] / 4, false )
txtScoreTitle: position( screenSize[ 1 ] / 2, screenSize[ 2 ] / 5.6, false );
end
function changeFinishedState( )
bJustFinished = false;
if iDriftScore == 0 then
txtScore: visible( false );
txtScoreTitle: visible( false );
else
txtScore: text( tostring( iDriftScore ) );
end
end
function iMaxScore()
iMaxScore = getElementData(player, \"driftscore\")
end
addEventHandler(\"onClientResourceStart\",root,iMaxScore)
 

 
Server:
 

local iMaxScore = getElementData(source, \"driftscore\")
 
end
addEventHandler(\"onPlayerQuit\",myscore)]

Drift Score elmentése, betöltése!
« Válasz #1 Dátum: 2015. december 20. - 22:02:28 »
0 Show voters
Meta fáljba mentéssel megoldhatod vagy egy egyszerű mysql mentés , lekéréssel.

Drift Score elmentése, betöltése!
« Válasz #2 Dátum: 2015. december 20. - 23:34:13 »
0 Show voters
Sajnos egyikhez sem értek, de jó lenne megtanulni. Vagy ha esetleg írnál legalább az egyikre, mondjuk az XML-re egy egyszerű példát akkor azt megköszönnöm! :)

Drift Score elmentése, betöltése!
« Válasz #3 Dátum: 2015. december 21. - 01:40:17 »
0 Show voters
Vagy használd a setAccountData-t

Drift Score elmentése, betöltése!
« Válasz #4 Dátum: 2015. december 21. - 10:29:46 »
0 Show voters
Az mivel másabb mint az element data? Ja és az AccountData az szerver oldali. Hogyan kellene az egészet megoldanom elméletben?
« Utoljára szerkesztve: 2015. december 21. - 10:36:24 írta antal1208 »

Drift Score elmentése, betöltése!
« Válasz #5 Dátum: 2015. december 21. - 12:12:17 »
0 Show voters
Ugye van alapból a /login és a /register parancs. Ez a felhasználóra menti az adatot és be is tölti. De Itt találhatsz róla infót és példát is.
« Utoljára szerkesztve: 2015. december 21. - 12:14:21 írta asdpudingasd »

Drift Score elmentése, betöltése!
« Válasz #6 Dátum: 2015. december 21. - 12:31:38 »
0 Show voters
Sikerült megoldanom a betöltés és a mentést is. fileCreat, fileRead stb funkciókkal, csak ugye, ezzel az a gond, hogy a normális felhasználó, ha egy kicsit leleményes simán át tudja írni.... van ez ellen valami védelem? :hmmm:

Drift Score elmentése, betöltése!
« Válasz #7 Dátum: 2015. december 21. - 23:34:53 »
0 Show voters
Tudtommal nincs. ( DE ez nem biztos ). Én személy szerint jobban ajánlom az AccountData-t vagy a MySQL-t

Drift Score elmentése, betöltése!
« Válasz #8 Dátum: 2015. december 22. - 00:08:46 »
0 Show voters
MySql nagyon bonyolult?

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Drift Score elmentése, betöltése!
« Válasz #9 Dátum: 2015. december 22. - 00:43:38 »
0 Show voters
Idézetet írta: antal1208 date=1450739326\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"58743\" data-ipsquote-contentclass=\"forums_Topic
MySql nagyon bonyolult?
 
https://wiki.multitheftauto.com/wiki/Modules/MTA-MySQL ha nem tudod az alap MTA programok fogalmát akkor a MySQL is nehéz lesz neked.. viszont ha már dolgoztál MySQL -el akkor lehet könnyű, mivel a pawno és a mta MySQL majdnem ugyan az.. sőt még a weboldalaknak is, csak másképpen írják a kódokat.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal