[Pomoć] - ServerWeather


Započeo elemental., Jun 11, 2014, 17:18:51 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: Moja od 0.
Detaljan opis problema: Imam jedan problem prilikom postavljanja PlayerWeathera. Kada igrač uzme npr. marihuanu, vrijeme mu se postavi na ID 250. Kada završi sa korištenjem, vrijeme mu se treba vratiti na vrijeme koje server koristi, ali se ne vraća
Dio skripte:


new ServerWeather;

forward Weather();
public Weather()
{
	new hours, minutes, seconds;
	new rand = random(5);
	new str[128];
	gettime(hours, minutes, seconds);
	if(minutes == 00)
	{
		if(rand == 1)
		{
		    SetWeather(10);
		    ServerWeather = 10;
		    format(str, sizeof(str), "Felictas RolePlay: Now is %d:%d hours.", hours, minutes);
			scmta(color_white, str);
		    scmta(color_green, "Weather forecast: "col_white"expected weather for next 60 minutes is "col_skyblue"sunny.");
		}
		else if(rand == 2)
		{
		    SetWeather(4);
		    ServerWeather = 4;
		    format(str, sizeof(str), "Felictas RolePlay: Now is %d:%d hours.", hours, minutes);
			scmta(color_white, str);
		    scmta(color_green, "Weather forecast: "col_white"expected weather for next 60 minutes is "col_skyblue"cloudy.");
		}
		else if(rand == 3)
		{
		    SetWeather(16);
		    ServerWeather = 16;
		    format(str, sizeof(str), "Felictas RolePlay: Now is %d:%d hours.", hours, minutes);
			scmta(color_white, str);
		    scmta(color_green, "Weather forecast: "col_white"expected weather for next 60 minutes is "col_skyblue"rainy.");
		}
		else if(rand == 4)
		{
		    SetWeather(9);
		    ServerWeather = 9;
		    format(str, sizeof(str), "Felictas RolePlay: Now is %d:%d hours.", hours, minutes);
			scmta(color_white, str);
		    scmta(color_green, "Weather forecast: "col_white"expected weather for next 60 minutes is "col_skyblue"foggy.");
		}
	}
	return 1;
}

//Korištenje heorina
forward HeroineEffect(playerid);
public HeroineEffect(playerid)
{
    new Float:health;
	GetPlayerHealth(playerid);
	if(DrugsEffectTimer[playerid] == 1)
	{
		DrugsEffectTimer[playerid] = 2;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 2000, false);
	}
	else if(DrugsEffectTimer[playerid] == 2)
	{
		DrugsEffectTimer[playerid] = 3;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 3000, false);
	}
	else if(DrugsEffectTimer[playerid] == 3)
	{
		DrugsEffectTimer[playerid] = 4;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 4000, false);
	}
	else if(DrugsEffectTimer[playerid] == 4)
	{
		DrugsEffectTimer[playerid] = 5;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 5000, false);
	}
	else if(DrugsEffectTimer[playerid] == 5)
	{
		DrugsEffectTimer[playerid] = 6;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 5000, false);
	}
	else if(DrugsEffectTimer[playerid] == 6)
	{
		DrugsEffectTimer[playerid] = 7;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 6000, false);
	}
	else if(DrugsEffectTimer[playerid] == 7)
	{
		DrugsEffectTimer[playerid] = 8;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 7000, false);
	}
	else if(DrugsEffectTimer[playerid] == 8)
	{
		DrugsEffectTimer[playerid] = 9;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 8000, false);
	}
	else if(DrugsEffectTimer[playerid] == 9)
	{
		DrugsEffectTimer[playerid] = 10;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 9000, false);
	}
	else if(DrugsEffectTimer[playerid] == 10)
	{
		DrugsEffectTimer[playerid] = 11;
		SetPlayerHealth(playerid, health+3);
		Drugs[playerid] = SetTimer("DrugsEffect", 10000, false);
	}
	else if(DrugsEffectTimer[playerid] == 11)
	{
		SetPlayerHealth(playerid, health+3);
		SetPlayerWeather(playerid, ServerWeather);
		KillTimer(Drugs[playerid]);
	}
	return 1;
}

// Korištenje marihuane
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_FIRE)
    {
		if(SmokingMarihuana[playerid] == 1)
		{
		    new Float:health;
		    GetPlayerHealth(playerid, health);
		    if(TimeSmoked[playerid] == 1)
		    {
		        TimeSmoked[playerid] = 2;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 2)
		    {
		        TimeSmoked[playerid] = 3;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 3)
		    {
		        TimeSmoked[playerid] = 4;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 4)
		    {
		        TimeSmoked[playerid] = 5;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 5)
		    {
		        TimeSmoked[playerid] = 6;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 7)
		    {
		        TimeSmoked[playerid] = 8;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 9)
		    {
		        TimeSmoked[playerid] = 10;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 10)
		    {
		        TimeSmoked[playerid] = 11;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 11)
		    {
		        TimeSmoked[playerid] = 12;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 12)
		    {
		        TimeSmoked[playerid] = 13;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
			else if(TimeSmoked[playerid] == 13)
		    {
		        TimeSmoked[playerid] = 14;
		        SetPlayerHealth(playerid, health+3);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
            else if(TimeSmoked[playerid] == 14)
		    {
		        TimeSmoked[playerid] = 0;
		        SmokingMarihuana[playerid] = 0;
		        SetPlayerHealth(playerid, health+3);
		        SetPlayerWeather(playerid, ServerWeather);
		    	SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
			}
		}
	}
        return 1;
}

public OnGameModeInit()
{
	SetTimer("Weather", 1000, true);
        ServerWeather = 10;
        return 1;
}

Blaeks

*

Madmen


Citat: Blaeks poslato Jun 12, 2014, 17:57:00 POSLE PODNE
jednostavno je, tamo gde efekat prestaje, iskoristi ovo http://wiki.sa-mp.com/wiki/SetPlayerWeather
pa vidis da je iskoristio
SetPlayerWeather(playerid, ServerWeather);


Po meni se kod cini uredu.
dali ti se citava radnja koda izvrsi kako treba?
69

Blaeks

*

Madmen

nije to dobro napravljeno, definises skroz gore na vrhu neku varijablu na neutralno, zatim joj stavis pozitivan ishod tek pod ongamemodeinit, sto znaci da ona automatski pri ponovnom njenom koriscenju stavlja neutralan ishod, taj sto je vec nekako aktiviran(primer vreme 250 pri drogiranju)

Citat: Blaeks poslato Jun 12, 2014, 18:00:52 POSLE PODNE
nije to dobro napravljeno, definises skroz gore na vrhu neku varijablu na neutralno, zatim joj stavis pozitivan ishod tek pod ongamemodeinit, sto znaci da ona automatski pri ponovnom njenom koriscenju stavlja neutralan ishod, taj sto je vec nekako aktiviran(primer vreme 250 pri drogiranju)

Definisao sam na vrhu skripte serverweather, a pogledaj malo bolje kod, na kraju je OnGameModeInit
public OnGameModeInit()
{
	SetTimer("Weather", 1000, true);
        ServerWeather = 10;
        return 1;
}
Poslednja Izmena: Jun 12, 2014, 21:39:24 POSLE PODNE od ѕσмєвσ∂у

Blaeks

*

Madmen

procitaj moj predhodni post, molim te


Blaeks

*

Madmen

ako je varijabla definisana ovako
new varijabla;
to znaci da je to globalna varijabla, koja je neutralna, znaci njen koeficijent je 0, ako me razumes ? moras to ispraviti ovako
new varijabla = broj;
ili jednostavno u funkciji da odredis sama vreme, a ne dzabe da mucis sebe ovim