Szerző Téma: GameMode Váltó..  (Megtekintve 778 alkalommal)

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
GameMode Váltó..
« Dátum: 2013. március 16. - 17:59:43 »
0 Show voters
Gondolkoztam és neki kezdek ennek a módnak .. amit leírtam :D ( Társalgó Topik ) az lenne a kérdésem, hogy most találtam egy kisebb leírtást az ilyen visszaszámlálásról meg ezekrõl és az lenne a problémám, hogy amikor elínditom a módot akkor nem tudom miért az 1 -es pályát nem tölti be hanem a második pályát csak.. valami ötlet? Úgy akarom, hogy a mód elínditásákor egybõl az elsõ számú játék kezdõdjön. Bemásolom a kódot úgy is még csak példa..
 

#include <  a_samp  >
#include < fixchars >
new GameMinutes =1;
new GameSeconds =00;
new GameTimer;
new Text:Timer;
new RoundTime = 60000;
new palyak;
forward GameTime( playerid );
forward GameModeExitFunc( playerid );
public OnGameModeInit()
{
palyak = 1;
    UsePlayerPedAnims( );
    SetTimer(\"GameModeExitFunc\", RoundTime, 0 );
    SetTimer(\"Score\",60000, false );
    GameTimer = SetTimer(\"GameTime\", 1000, 1 );
    SetWorldTime( 6 );
    DisableInteriorEnterExits( );
    AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
    Timer= TextDrawCreate(315.000000, 400.000000,\"1:00\");
    TextDrawAlignment(Timer,2);
    TextDrawBackgroundColor(Timer,0xFFFFFFAA);
    TextDrawFont(Timer,3);
    TextDrawLetterSize(Timer,0.499999,2.000000);
    TextDrawColor(Timer,0xffffffff);
    TextDrawSetOutline(Timer,1);
    TextDrawSetProportional(Timer,1);
    TextDrawSetShadow(Timer,1);
    return 1;
}
public OnPlayerSpawn( playerid ) {
TextDrawShowForPlayer(playerid,Timer);
return 1; }
public GameTime( )
{
    if(GameSeconds || GameMinutes)
    {
        GameSeconds--;
        if(GameSeconds <= -1)
        {
            GameMinutes--;
            GameSeconds=59;
        }
        new TimeString[256];
        format(TimeString,sizeof(TimeString),\"~b~%02d~y~:~r~%02d\",GameMinutes,GameSeconds);
        TextDrawSetString(Timer,TimeString);
    }
    return 1;
}
public GameModeExitFunc( playerid ) {
if( palyak == 1 )
{
    SetGameModeText(\"Fallout Minigame[1/10]\");
    GameTextForAll(\"~h~~h~~r~Következõ Pálya Betöltése..~n~~w~Fallout Minigame\",5000,3);
    KillTimer( GameTimer );
    SendRconCommand(\"gmx\");
    TextDrawHideForPlayer( playerid, Timer );
    palyak = 2;
    }
      if( palyak == 2 )
{
    SetGameModeText(\"Hay Minigame[2/10]\");
    GameTextForAll(\"~h~~h~~r~Következõ Pálya Betöltése..~n~~w~Hay Minigame\",5000,3);
    KillTimer( GameTimer );
    SendRconCommand(\"gmx\");
    TextDrawHideForPlayer( playerid, Timer );
palyak = 3;
}
if( palyak == 3 )
{
    SetGameModeText(\"Derby Minigame[3/10]\");
    GameTextForAll(\"~h~~h~~r~Következõ Pálya Betöltése..~n~~w~Derby Minigame\",5000,3);
    KillTimer( GameTimer );
    SendRconCommand(\"gmx\");
    TextDrawHideForPlayer( playerid, Timer );
palyak = 2;
}
}

GameMode Váltó..
« Válasz #1 Dátum: 2013. március 16. - 19:04:35 »
+2 Show voters
Tessék, próbáld meg így.
 
#include <  a_samp  >
#include < fixchars >
new GameMinutes =1;
new GameSeconds =00;
new GameTimer;
new Text:Timer;
new RoundTime = 60000;
new palyak;
forward GameTime( playerid );
forward GameModeExitFunc( playerid );
public OnGameModeInit()
{
palyak = 1;
    UsePlayerPedAnims( );
    SetTimer(\"GameModeExitFunc\", RoundTime, 0 );
    SetTimer(\"Score\",60000, false );
    GameTimer = SetTimer(\"GameTime\", 1000, 1 );
    SetWorldTime( 6 );
    DisableInteriorEnterExits( );
    AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
    Timer= TextDrawCreate(315.000000, 400.000000,\"1:00\");
    TextDrawAlignment(Timer,2);
    TextDrawBackgroundColor(Timer,0xFFFFFFAA);
    TextDrawFont(Timer,3);
    TextDrawLetterSize(Timer,0.499999,2.000000);
    TextDrawColor(Timer,0xffffffff);
    TextDrawSetOutline(Timer,1);
    TextDrawSetProportional(Timer,1);
    TextDrawSetShadow(Timer,1);
    return 1;
}
public OnPlayerSpawn( playerid ) {
TextDrawShowForPlayer(playerid,Timer);
return 1; }
public GameTime( )
{
    if(GameSeconds || GameMinutes)
    {
        GameSeconds--;
        if(GameSeconds <= -1)
        {
            GameMinutes--;
            GameSeconds=59;
        }
        new TimeString[256];
        format(TimeString,sizeof(TimeString),\"~b~%02d~y~:~r~%02d\",GameMinutes,GameSeconds);
        TextDrawSetString(Timer,TimeString);
    }
    return 1;
}
public GameModeExitFunc( playerid ) {
if( palyak == 0 )
{
       SetGameModeText(\"Fallout Minigame[1/10]\");
       GameTextForAll(\"~h~~h~~r~Következõ Pálya Betöltése..~n~~w~Fallout Minigame\",5000,3);
       KillTimer( GameTimer );
       SendRconCommand(\"gmx\");
       TextDrawHideForPlayer( playerid, Timer );
       palyak = 1;
    }
    if( palyak == 1 )
    {
       SetGameModeText(\"Hay Minigame[2/10]\");
       GameTextForAll(\"~h~~h~~r~Következõ Pálya Betöltése..~n~~w~Hay Minigame\",5000,3);
       KillTimer( GameTimer );
       SendRconCommand(\"gmx\");
       TextDrawHideForPlayer( playerid, Timer );
       palyak = 2;
    }
    if( palyak == 2 )
    {
       SetGameModeText(\"Derby Minigame[3/10]\");
       GameTextForAll(\"~h~~h~~r~Következõ Pálya Betöltése..~n~~w~Derby Minigame\",5000,3);
       KillTimer( GameTimer );
       SendRconCommand(\"gmx\");
       TextDrawHideForPlayer( playerid, Timer );
       palyak = 3;
    }
}

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
GameMode Váltó..
« Válasz #2 Dátum: 2013. március 16. - 19:08:34 »
0 Show voters
És most mond meg mit írtál benne át?  :-[ Mert így se jó..

GameMode Váltó..
« Válasz #3 Dátum: 2013. március 16. - 19:26:24 »
+2 Show voters
#include <  a_samp  >
#include < fixchars >
new GameMinutes =1;
new GameSeconds =00;
new GameTimer;
new Text:Timer;
new RoundTime = 60000;
new palyak;
forward GameTime( playerid );
forward GameModeExitFunc( playerid );
public OnGameModeInit()
{
    palyak = 0;
    UsePlayerPedAnims( );
    SetTimer(\"GameModeExitFunc\", RoundTime, 0 );
    SetTimer(\"Score\",60000, false );
    GameTimer = SetTimer(\"GameTime\", 1000, 1 );
    SetWorldTime( 6 );
    DisableInteriorEnterExits( );
    AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
    Timer= TextDrawCreate(315.000000, 400.000000,\"1:00\");
    TextDrawAlignment(Timer,2);
    TextDrawBackgroundColor(Timer,0xFFFFFFAA);
    TextDrawFont(Timer,3);
    TextDrawLetterSize(Timer,0.499999,2.000000);
    TextDrawColor(Timer,0xffffffff);
    TextDrawSetOutline(Timer,1);
    TextDrawSetProportional(Timer,1);
    TextDrawSetShadow(Timer,1);
    return 1;
}
public OnPlayerSpawn( playerid ) {
TextDrawShowForPlayer(playerid,Timer);
return 1; }
public GameTime( )
{
    if(GameSeconds || GameMinutes)
    {
        GameSeconds--;
        if(GameSeconds <= -1)
        {
            GameMinutes--;
            GameSeconds=59;
        }
        new TimeString[256];
        format(TimeString,sizeof(TimeString),\"~b~%02d~y~:~r~%02d\",GameMinutes,GameSeconds);
        TextDrawSetString(Timer,TimeString);
    }
    return 1;
}
public GameModeExitFunc( playerid ) {
        if( palyak == 0 )
        {
        SetGameModeText(\"Fallout Minigame[1/10]\");
        GameTextForAll(\"~h~~h~~r~Következõ Pálya Betöltése..~n~~w~Fallout Minigame\",5000,3);
        KillTimer( GameTimer );
        SendRconCommand(\"gmx\");
        TextDrawHideForPlayer( playerid, Timer );
        palyak = 1;
    }
    if( palyak == 1 )
    {
        SetGameModeText(\"Hay Minigame[2/10]\");
        GameTextForAll(\"~h~~h~~r~Következõ Pálya Betöltése..~n~~w~Hay Minigame\",5000,3);
        KillTimer( GameTimer );
        SendRconCommand(\"gmx\");
        TextDrawHideForPlayer( playerid, Timer );
        palyak = 2;
    }
    if( palyak == 2 )
    {
        SetGameModeText(\"Derby Minigame[3/10]\");
        GameTextForAll(\"~h~~h~~r~Következõ Pálya Betöltése..~n~~w~Derby Minigame\",5000,3);
        KillTimer( GameTimer );
        SendRconCommand(\"gmx\");
        TextDrawHideForPlayer( playerid, Timer );
        palyak = 3;
    }
}

 
Így se?

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
GameMode Váltó..
« Válasz #4 Dátum: 2013. március 16. - 19:27:16 »
+1 Show voters
õõõõõ most nem fogom felsorolni az összes hibát...de találtam 1 jó párat benne :S
csak a lényeget...
A hiba forrása ez:
 
GameModeExitFunc( playerid )

 

SetTimer(\"GameModeExitFunc\", RoundTime, 0 );

 
most döntsd el kell playerid vagy nem...mert a timer paraméter nélküli függvényt hív meg !
http://wiki.sa-mp.com/wiki/SetTimerEx !!!
de szerintem neked nem kell playerid paraméter mivel értelmetlen lenne ahogy látom :)
elmondom mi a hiba a függvényben...
HA a pálya 1
 pálya = 2
HA a pálya 2
 pálya = 3
Ha a pálya 3
 pálya = 2
ez kb végig fut mindig hisz az elõzõ feltételben mindig pont a következõ feltételhez állítod a változó értékét...
vagy else if-et használj vagy return 1;-et hogy megakadályozd !
és mégegy \"hiba\", ez inkább csak figyelmeztetés, hogy feleslegesen van ennyi sorod :)
 
KillTimer( GameTimer );
SendRconCommand(\"gmx\");
TextDrawHideForPlayer( playerid, Timer );

 
ez mind3 kódban benne van...elég 1x beírni a feltételeken kívül ha mindig úgyis lefut !
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal