Szerző Téma: setElementData CLIENT SIDE!  (Megtekintve 1371 alkalommal)

setElementData CLIENT SIDE!
« Dátum: 2015. december 18. - 17:47:55 »
0 Show voters
Miért nem működik? Client oldali teszt függvényem gyakorlásnak a setElementData, és getElementDatához, de valamiért nem menti el a pénzt/nem töltibe.
local player = getLocalPlayer( )
local penz = 1;
function addmoney()
penz=penz+10;
outputChatBox(\"Penzed novelve, erteke:\"..penz..\"\",source)
end
addCommandHandler(\"addmoney\",addmoney)
function mymoney()
outputChatBox(\"A penzed:\"..penz..\"\")
end
addCommandHandler(\"mymoney\",mymoney)
 
function onPlayerQuit()
setElementData(player,\"MONEY\",penz)
end
addEventHandler(\"onClientPlayerQuit\",getRootElement(),onPlayerQuit)
function onPlayerLogin()
local penz = getElementData(player, \"MONEY\")
end
addEventHandler(\"onClientPlayerSpawn\",getRootElement(),onPlayerLogin)

Nem elérhető Legend

  • Adminisztrátor
  • 1830
    • Profil megtekintése
setElementData CLIENT SIDE!
« Válasz #1 Dátum: 2015. december 18. - 17:49:23 »
+1 Show voters
Mert az egész script hülyeség.
Az elementdaták értéke törlődnek, ha az element törlődik (értsd: játékos kilép).

setElementData CLIENT SIDE!
« Válasz #2 Dátum: 2015. december 18. - 18:18:43 »
0 Show voters
Nem pont az a lényege az ElementDatának h ne törlődjön? O.o

Nem elérhető Legend

  • Adminisztrátor
  • 1830
    • Profil megtekintése
setElementData CLIENT SIDE!
« Válasz #3 Dátum: 2015. december 18. - 18:26:46 »
+1 Show voters
Idézetet írta: antal1208 date=1450459123\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"58709\" data-ipsquote-contentclass=\"forums_Topic
Nem pont az a lényege az ElementDatának h ne törlődjön? O.o
 
Nem.
Használj szimpla változót, az nem fog törlődni. (Szerver oldalon)
« Utoljára szerkesztve: 2015. december 18. - 18:41:10 írta Legend »

setElementData CLIENT SIDE!
« Válasz #4 Dátum: 2015. december 18. - 18:42:53 »
0 Show voters
Ez egy kliens oldali script, miért nullázódik le amikor kilépek és belépek?
 
local iDriftScore = 0;
local iMaxScore = 0;
local iScore = 0;
local iMyCombo = 1;
local fCustomFontScale = 2;
local bJustFinished = false;
 
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;
 

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
 

Nem elérhető Legend

  • Adminisztrátor
  • 1830
    • Profil megtekintése
setElementData CLIENT SIDE!
« Válasz #5 Dátum: 2015. december 18. - 18:53:27 »
+1 Show voters
Szerver oldalon tárold sima változókba.

setElementData CLIENT SIDE!
« Válasz #6 Dátum: 2015. december 20. - 19:08:15 »
0 Show voters
Nem értelek, akkor mire való a setElementData? És hogyan tároljam szerver oldalon?! O.o

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal