Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Benac poslato Februar 16, 2014, 00:19:26 PRE PODNE

Naslov: Pomoc - Glad
Poruka od: Benac poslato Februar 16, 2014, 00:19:26 PRE PODNE
Skripta koju koristim:moja
Detaljan opis problema: Napravio sam Bar kao fol za glad sys kako da napravim kada je manje od 20 bar da pokazuje poruku da ste gladni da idete jesti i kako da kada dode na 0 da svaki 3 sec skida po 3 helta
Dio skripte:
ovo je da svaki par sekundi skida sa tog bara healt a kao sto sam gore napiso da kada skine sa tog da onda pravi helth skida ?
public ProgressBar()
{
    for(new playerid; playerid < MAX_PLAYERS; playerid++)
    {
SetProgressBarValue(hungry[playerid], GetProgressBarValue(hungry[playerid])-2);
}
return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):
Naslov: Odg: Pomoc - Glad
Poruka od: yabb3 poslato Februar 16, 2014, 01:27:19 PRE PODNE
Uradi ovako,


// Ako je manje od 5 da uzima 3 helta.
GetProgressBarValue(hungry[playerid]) < 5) { new Float:health; GetPlayerHealth(i, health); SafeSetPlayerHealth(i, floatsub(health, 3)); }


MeÄ'utim definiÅ¡i tajmer koji radi updejtovanje progress bara i gladi.

možeš odraditi ovako


forward GladanSam();
public GladanSam()
{
    foreach (Player, i)
    {
        if(IsPlayerConnected(i))
{
            // Ako je manje od 5 da uzima 3 helta.
            GetProgressBarValue(hungry[playerid]) < 5) { new Float:health; GetPlayerHealth(i, health); SafeSetPlayerHealth(i, floatsub(health, 3)); }
            // ovde stavi da ti oduzima glad sa bara, na primer 1 glad poen.
            // ovde daj update bara
        }
    }
    return 1;
}


I sad na osnovu toga definišeš ovako
SetTimer("GladanSam",VREME, 1);
Naslov: Odg: Pomoc - Glad
Poruka od: Benac poslato Februar 16, 2014, 01:37:29 PRE PODNE
C:\Users\Nikola\Desktop\UCENJE FUNKCIJA\filterscripts\hunger.pwn(48) : error 017: undefined symbol "playerid"
C:\Users\Nikola\Desktop\UCENJE FUNKCIJA\filterscripts\hunger.pwn(48) : error 029: invalid expression, assumed zero
C:\Users\Nikola\Desktop\UCENJE FUNKCIJA\filterscripts\hunger.pwn(49) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


3 Errors.


forward GladanSam();
public GladanSam()
{
    foreach (Player, i)
    {
        if(IsPlayerConnected(i))
{
            // Ako je manje od 5 da uzima 3 helta.
            GetProgressBarValue(hungry[playerid]) < 10) { new Float:health; GetPlayerHealth(i, health); SetPlayerHealth(i, floatsub(health, 3)); } //48 linija
            UpdateProgressBar(hungry[playerid], i);
// ovde stavi da ti oduzima glad sa bara, na primer 1 glad poen.
            // ovde daj update bara
        }
    }
    return 1;
}
Naslov: Odg: Pomoc - Glad
Poruka od: yabb3 poslato Februar 16, 2014, 01:40:34 PRE PODNE
Jao benac ti ko da si pao s marsa :D

Updejtuj foreach ili zameni

foreach (Player, i)

sa

for(new playerid; playerid < MAX_PLAYERS; playerid++)
Naslov: Odg: Pomoc - Glad
Poruka od: Horst:3 poslato Februar 16, 2014, 01:41:13 PRE PODNE
Niko procitaj na PM i na temu molim te brate
Naslov: Odg: Pomoc - Glad
Poruka od: Benac poslato Februar 16, 2014, 01:44:53 PRE PODNE
C:\Users\Nikola\Desktop\UCENJE FUNKCIJA\filterscripts\hunger.pwn(48) : warning 215: expression has no effect
C:\Users\Nikola\Desktop\UCENJE FUNKCIJA\filterscripts\hunger.pwn(48) : error 001: expected token: ";", but found ")"
C:\Users\Nikola\Desktop\UCENJE FUNKCIJA\filterscripts\hunger.pwn(48) : error 029: invalid expression, assumed zero
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.

GetProgressBarValue(hungry[playerid]) < 10) { new Float:health; GetPlayerHealth(playerid, health); SetPlayerHealth(playerid, floatsub(health, 3)); } //48 linija
Naslov: Odg: Pomoc - Glad
Poruka od: Benac poslato Februar 16, 2014, 02:13:46 PRE PODNE
forward GladanSam();
public GladanSam()
{
    for(new playerid; playerid < MAX_PLAYERS; playerid++)
    {
new Float:health;
  GetProgressBarValue(hungry[playerid] < 10)     //(46) : warning 213: tag mismatch
GetPlayerHealth(playerid, health);              //(47) : error 001: expected token: ";", but found "-identifier-"
SetPlayerHealth(playerid, health-3);
UpdateProgressBar(hungry[playerid], playerid);
    }
    return 1;
}


tu su errori i oznacene linije

EDIT:
Sry za DP
Naslov: Odg: Pomoc - Glad
Poruka od: Benac poslato Februar 16, 2014, 11:15:10 PRE PODNE
ja ovo nerazumijem :S kako da tu provjeruju napravim
forward GladanSam();
public GladanSam()
{
    for(new playerid; playerid < MAX_PLAYERS; playerid++)
    {
        new Float:health;
        SetProgressBarValue(hungry[playerid], GetProgressBarValue(hungry[playerid] < 10));   //(46) : warning 213: tag mismatch
        GetPlayerHealth(playerid, health);                     
        SetPlayerHealth(playerid, health-3);
        UpdateProgressBar(hungry[playerid], playerid);
    }
    return 1;
}
Naslov: Odg: Pomoc - Glad
Poruka od: Benac poslato Februar 16, 2014, 11:18:24 PRE PODNE
public ProgressBar()
{
    for(new playerid; playerid < MAX_PLAYERS; playerid++)
    {
SetProgressBarValue(hungry[playerid], GetProgressBarValue(hungry[playerid])-2);
}
return 1;
}


enum PlayerStats
{
Hunger
};
new PInfo[MAX_PLAYERS][PlayerStats];


i meni treba provjera kada dode do 0 da opadaju pravi helti
Naslov: Odg: Pomoc - Glad
Poruka od: Benac poslato Februar 16, 2014, 17:00:01 POSLE PODNE
neradi hungry ti je ovo
hungry[playerid] = CreateProgressBar(548.00, 59.00, 56.50, 3.50, 6883839, 100.0);