Szerző Téma: Változó szerver idõ  (Megtekintve 428 alkalommal)

Változó szerver idõ
« Dátum: 2014. Augusztus 28. - 09:54:57 »
0 Show voters
Sziasztok!
Tudom, hogy ez egy nagyon egyszerû kód, de sehogyan se jövök rá...
Azt hogyan lehetne kivitelezni, hogy ha valóságba 12 óra van akkor a szerveren is 12 óra, és ha a valóságba 18 akkor a szerveren is 18 óra legyen az idõ...nem idõ kiíró textdrawra gondolok, hanem olyanra mint az RP szervereken van...Tudom kiszedhetném egy RP szerverbõl is....Válaszokat elõre is köszönöm!
« Utoljára szerkesztve: 2014. Október 19. - 16:01:17 írta Flash »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Változó szerver idõ
« Válasz #1 Dátum: 2014. Augusztus 28. - 10:37:18 »
0 Show voters
Sose próbáltam de gondolom így:
 
   new h, m;
gettime(h, m);
SetPlayerTime(playerid, h, m);

 
Aztán ezt scrtipelt tovább hogy mûködjön. Gondolok itt timerre és hogy mindenkinek változzon az idõ!

Változó szerver idõ
« Válasz #2 Dátum: 2014. Augusztus 28. - 11:43:52 »
0 Show voters
Az alap scripteket nézted már?
Spoiler for gl_realtime.pwn:


//
// Keeps the in game time synced to the server\'s time and
// draws the current time on the player\'s hud using a textdraw/
// (1 minute = 1 minute real world time)
//
//  (c) 2009-2012 SA-MP Team
#include <a_samp>
#pragma tabsize 0
//--------------------------------------------------
new Text:txtTimeDisp;
new hour, minute;
new timestr[32];
forward UpdateTimeAndWeather();
//--------------------------------------------------
new fine_weather_ids[] = {1,2,3,4,5,6,7,12,13,14,15,17,18,24,25,26,27,28,29,30,40};
new foggy_weather_ids[] = {9,19,20,31,32};
new wet_weather_ids[] = {8};
stock UpdateWorldWeather()
{
new next_weather_prob = random(100);
if(next_weather_prob < 70)       SetWeather(fine_weather_ids[random(sizeof(fine_weather_ids))]);
else if(next_weather_prob < 95) SetWeather(foggy_weather_ids[random(sizeof(foggy_weather_ids))]);
else                     SetWeather(wet_weather_ids[random(sizeof(wet_weather_ids))]);
}
//--------------------------------------------------
//new last_weather_update=0;
public UpdateTimeAndWeather()
{
// Update time
    gettime(hour, minute);
   
      format(timestr,32,\"%02d:%02d\",hour,minute);
      TextDrawSetString(txtTimeDisp,timestr);
      SetWorldTime(hour);
      
new x=0;
while(x!=MAX_PLAYERS) {
    if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE) {
        SetPlayerTime(x,hour,minute);
 }
 x++;
}
/* Update weather every hour
if(last_weather_update == 0) {
    UpdateWorldWeather();
}
last_weather_update++;
if(last_weather_update == 60) {
    last_weather_update = 0;
}*/
}
//--------------------------------------------------
public OnGameModeInit()
{
// Init our text display
txtTimeDisp = TextDrawCreate(605.0,25.0,\"00:00\");
TextDrawUseBox(txtTimeDisp, 0);
TextDrawFont(txtTimeDisp, 3);
TextDrawSetShadow(txtTimeDisp,0); // no shadow
    TextDrawSetOutline(txtTimeDisp,2); // thickness 1
    TextDrawBackgroundColor(txtTimeDisp,0x000000FF);
    TextDrawColor(txtTimeDisp,0xFFFFFFFF);
    TextDrawAlignment(txtTimeDisp,3);
TextDrawLetterSize(txtTimeDisp,0.5,1.5);
UpdateTimeAndWeather();
SetTimer(\"UpdateTimeAndWeather\",1000 * 60,1);
return 1;
}
//--------------------------------------------------
public OnPlayerSpawn(playerid)
{
TextDrawShowForPlayer(playerid,txtTimeDisp);
gettime(hour, minute);
SetPlayerTime(playerid,hour,minute);
return 1;
}
//--------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
    TextDrawHideForPlayer(playerid,txtTimeDisp);
return 1;
}
//--------------------------------------------------
public OnPlayerConnect(playerid)
{
    gettime(hour, minute);
    SetPlayerTime(playerid,hour,minute);
    return 1;
}
//--------------------------------------------------

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal