Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: elemental. poslato Jun 11, 2014, 17:18:51 POSLE PODNE

Naslov: [Pomoć] - ServerWeather
Poruka od: elemental. poslato Jun 11, 2014, 17:18:51 POSLE PODNE
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;
}
Naslov: Odg: [Pomoć] - ServerWeather
Poruka od: 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
Naslov: Odg: [Pomoć] - ServerWeather
Poruka od: youngdeal poslato Jun 12, 2014, 17:58:40 POSLE PODNE
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?
Naslov: Odg: [Pomoć] - ServerWeather
Poruka od: 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)
Naslov: Odg: [Pomoć] - ServerWeather
Poruka od: elemental. poslato Jun 12, 2014, 21:35:52 POSLE PODNE
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;
}
Naslov: Odg: [Pomoć] - ServerWeather
Poruka od: Blaeks poslato Jun 13, 2014, 00:56:10 PRE PODNE
procitaj moj predhodni post, molim te
Naslov: Odg: [Pomoć] - ServerWeather
Poruka od: elemental. poslato Jun 13, 2014, 01:32:39 PRE PODNE
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 ?
Naslov: Odg: [Pomoć] - ServerWeather
Poruka od: Blaeks poslato Jun 13, 2014, 01:36:23 PRE PODNE
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