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;
}
jednostavno je, tamo gde efekat prestaje, iskoristi ovo http://wiki.sa-mp.com/wiki/SetPlayerWeather
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?
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 OnGameModeInitpublic OnGameModeInit()
{
SetTimer("Weather", 1000, true);
ServerWeather = 10;
return 1;
}
procitaj moj predhodni post, molim te
Citat: Blaeks poslato Jun 13, 2014, 00:56:10 PRE PODNE
procitaj moj predhodni post, molim te
Nisam skontao. Možeš li malo bolje pojasniti ?
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