-
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;
}
}
-
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;
}
}
-
És most mond meg mit írtál benne át? :-[ Mert így se jó..
-
#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?
-
õõõõõ 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 !