Salutare! Am un sistem de sleep, am incercat sa pun o variabila(pSleep) pentru a putea folosi acest sistem. De exemplu: daca scri /sleepon sa obosesti si sa trebuiasca sa dormi, daca scri /sleepoff sa poti dezactiva sistemul. Am facut asta, am pus variabila in publicuri, dar nu se mai actualizeaza nivelul de oboseala. Aveti idee de ce? Va rog sa nu sariti pe mine ,sunt incepator.
new SleepLevel[MAX_PLAYERS];
new Bar:SleepBar[MAX_PLAYERS];
new PlayerText:SleepScreanTD;
new Sleeping[MAX_PLAYERS];
OnPlayerConnect
SetTimer("SleepTimer", 60000, true); // 1200000:20 minute
SleepLevel[playerid] = 0;
OnPlayerSpawn
SleepBar[playerid] = CreateProgressBar(548.000000, 58.000000, 58.000000, 3.700000, 16755455, 5);
SetProgressBarValue(SleepBar[playerid], SleepLevel[playerid]);
ShowProgressBarForPlayer(playerid, SleepBar[playerid]);
//=======================================================================================================//
CMD:sleepon( playerid, params[ ] )
{
gQuery[0]=EOS;
if(APlayerData[playerid][Sleep] == 0)
{
APlayerData[playerid][Sleep] = 1;
mysql_format( SQL, gQuery, sizeof( gQuery ), "UPDATE `users` SET `Sleep` = '1' WHERE `Name` = '%s'", GetName( playerid ) );
mysql_query( SQL, gQuery );
}
else return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Ai deja pornit sistemul de sleep!");
return 1;
}
//=======================================================================================================//
CMD:sleepoff( playerid, params[ ] )
{
gQuery[0]=EOS;
if(APlayerData[playerid][Sleep] == 1)
{
APlayerData[playerid][Sleep] = 0;
mysql_format( SQL, gQuery, sizeof( gQuery ), "UPDATE `users` SET `Sleep` = '0' WHERE `Name` = '%s'", GetName( playerid ) );
mysql_query( SQL, gQuery );
}
else return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Ai deja oprit sistemul de sleep!");
return 1;
}
//=======================================================================================================//
OnPlayerLogin
APlayerData[ playerid ][ Sleep ] = cache_get_field_content_int( 0, "Sleep", SQL );
//=======================================================================================================//
forward SleepTimer(playerid);
public SleepTimer(playerid)
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(APlayerData[playerid][Sleep] == 1)
{
if(IsPlayerConnected(i))
{
if(SleepLevel[i] == 5)
{
SendClientMessage(i, 0xFFFFFF, "{00FF00}[{FFFFFF}SleepSystem{00FF00}]{808080}Ai adormit deoarece esti prea obosit!");
TogglePlayerControllable(i, 0);
ApplyAnimation(i,"CRACK","crckdeth2",4.0, 1, 0, 0, 0, 0);
GameTextForPlayer(i, "~w~Sleeping....", 5000, 1);
SetTimerEx("SleepOutSide", 45000, false, "i", i);
Sleeping[i] =1;return 1;
}
if(SleepLevel[i] == 4)
{
SendClientMessage(i, 0xFFFFFF, "{00FF00}[{FFFFFF}SleepSystem{00FF00}]{808080}Atipesti, trage pe partea dreapta a carosabilului la cea mai apropiata benzinarie!");
SleepLevel[i] =5;SetTimerEx("SleepT3", 1500, false, "i", i);
SetProgressBarValue(SleepBar[i], SleepLevel[i]);
UpdateProgressBar(SleepBar[i], i);
}
else
{
SleepLevel[i] +=1;SetProgressBarValue(SleepBar[i], SleepLevel[i]);
UpdateProgressBar(SleepBar[i], i);
}
}
}
}
return 1;
}
//=======================================================================================================//forwardSleep2(playerid);
publicSleep2(playerid)
{
if(APlayerData[playerid][Sleep] == 1)
{
PlayerTextDrawHide(playerid, SleepScreanTD);
SleepLevel[playerid] =0;SetProgressBarValue(SleepBar[playerid], SleepLevel[playerid]);
UpdateProgressBar(SleepBar[playerid], playerid);
TogglePlayerControllable(playerid, 1);
Sleeping[playerid] =0;SendClientMessage(playerid, 0xFFFFFF, "{00FF00}[{FFFFFF}SleepSystem{00FF00}]{808080} Ai dormit si acum esti revigorat. Iti uram drum bun!");
}
return 1;
}
//=======================================================================================================//forwardSleepOutSide(playerid);
publicSleepOutSide(playerid)
{
if(APlayerData[playerid][Sleep] == 1)
{
PlayerTextDrawHide(playerid, SleepScreanTD);
SleepLevel[playerid] =3;SetProgressBarValue(SleepBar[playerid], SleepLevel[playerid]);
UpdateProgressBar(SleepBar[playerid], playerid);
TogglePlayerControllable(playerid, 1);
SetCameraBehindPlayer(playerid);
ClearAnimations(playerid);
Sleeping[playerid] =0;SendClientMessage(playerid, 0xFFFFFF, "{00FF00}[{FFFFFF}SleepSystem{00FF00}]{808080} Ai adormit la volan. Inca esti obosit, trage pe partea dreapta la cea mai apropiata benzinarie!");
}
return 1;
}
//=======================================================================================================//forwardSleepT3(playerid);
publicSleepT3(playerid)
{
if(APlayerData[playerid][Sleep] == 1)
{
if(SleepLevel[playerid] >= 4)
{
if(Sleeping[playerid] == 0)
{
PlayerTextDrawShow(playerid, SleepScreanTD);
SetTimerEx("SleepTime4", 10000, false, "i", playerid);
}
}
}
return 1;
}
//=======================================================================================================//
forward SleepTime4(playerid);
public SleepTime4(playerid)
{
if(APlayerData[playerid][Sleep] == 1)
{
if(Sleeping[playerid] == 0)
{
PlayerTextDrawHide(playerid, SleepScreanTD);
SetTimerEx("SleepT3", 10000, false, "i", playerid);
}
}
}
//=======================================================================================================//
Question
BaFFyJunior
Salutare! Am un sistem de sleep, am incercat sa pun o variabila(pSleep) pentru a putea folosi acest sistem. De exemplu: daca scri /sleepon sa obosesti si sa trebuiasca sa dormi, daca scri /sleepoff sa poti dezactiva sistemul. Am facut asta, am pus variabila in publicuri, dar nu se mai actualizeaza nivelul de oboseala. Aveti idee de ce? Va rog sa nu sariti pe mine ,sunt incepator.
1 answer to this question
Recommended Posts