Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Plen Ki Mun poslato Jun 24, 2016, 10:29:41 PRE PODNE

Naslov: [REÅ ENO]Uzimanje Scora(P)igraca
Poruka od: Plen Ki Mun poslato Jun 24, 2016, 10:29:41 PRE PODNE
Skripta koju koristim: DayZ
Opis problema o kojem se radi: Pa znaci imam TD za score i timer koji update svaku promjenu na skoru,problem je u tome sto ne uzima skor od od igraca nego od nekoga drugoga igraca,znaci ne uzima njegov vlasiti!
Dio skripte:

[pawn]forward ScoreTimer(playerid);
public ScoreTimer()
{
    for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            new string[128];
            format(string, sizeof(string), "~w~Score:~g~%d",GetPlayerScore(playerid));
            TextDrawSetString(MTD4, string);
        }
    }
    return 1;
}[/pawn]

[pawn]TextDrawShowForPlayer(playerid, MTD4);
   new str1[100];
   format(str1, sizeof(str1),"~w~Score:~g~%d", GetPlayerScore(playerid));
   TextDrawSetString(MTD4, str1);[/pawn]


Slika (neobavezno): //
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 24, 2016, 10:34:20 PRE PODNE
Greska ti je sto si kod funkcije GetPlayerScore stavio playerid a trebao si samo i jer si to definisao. A mozes koristiti i foreach te bi to ovako ispalo.

forward ScoreTimer();
public ScoreTimer()
{
    new
string[20];
    foreach (Player, i)
    {
    format(string, sizeof(string), "~w~Score:~g~%d", GetPlayerScore(i));
    TextDrawSetString(MTD4, string);
    }
    return 1;
}
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: Plen Ki Mun poslato Jun 24, 2016, 10:37:31 PRE PODNE
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 24, 2016, 10:34:20 PRE PODNE
Greska ti je sto si kod funkcije GetPlayerScore stavio playerid a trebao si samo i jer si to definisao. A mozes koristiti i foreach te bi to ovako ispalo.

forward ScoreTimer();
public ScoreTimer()
{
    new
string[20];
    foreach (Player, i)
    {
    format(string, sizeof(string), "~w~Score:~g~%d", GetPlayerScore(i));
    TextDrawSetString(MTD4, string);
    }
    return 1;
}


Ok hvala,pokusat cu pa javim rezultat!  :)
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: Harden poslato Jun 25, 2016, 00:16:55 PRE PODNE
Citat: Mate poslato Jun 24, 2016, 10:37:31 PRE PODNE
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 24, 2016, 10:34:20 PRE PODNE
Greska ti je sto si kod funkcije GetPlayerScore stavio playerid a trebao si samo i jer si to definisao. A mozes koristiti i foreach te bi to ovako ispalo.

forward ScoreTimer();
public ScoreTimer()
{
    new
string[20];
    foreach (Player, i)
    {
    format(string, sizeof(string), "~w~Score:~g~%d", GetPlayerScore(i));
    TextDrawSetString(MTD4, string);
    }
    return 1;
}


Ok hvala,pokusat cu pa javim rezultat!  :)


nemoj koristiti foreach baguje koristi  , sve ostalo stoji
for(new i = 0; i < MAX_PLAYERS; i++)
{
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 25, 2016, 12:16:27 POSLE PODNE
@Harden ne znam odakle ti to da foreach baguje, ja ga koristim vec par godina i nikad nisam imao problema... A foreach je mnogo bolji nego taj kod koji si poslao, jer forech ti prolazi samo kroz online igrace dok ako tako definises kao sto si ti poslao njemu onda provera prolazi kroz sve igrace odnosno kroz broj koji je definisan na MAX_PLAYERS a ne vidim potrebu da prodje kroz sve to kada mozda pola njih nije online od tog broja tako da je forech bolji :D
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: Plen Ki Mun poslato Jun 27, 2016, 16:21:31 POSLE PODNE
Jos uvijek uzima skor od drugih igraca ;/
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 27, 2016, 19:10:56 POSLE PODNE
Cekaj sta ti hoces zapravo pojasni mi malo bolje...
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: Plen Ki Mun poslato Jun 27, 2016, 20:47:11 POSLE PODNE
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 27, 2016, 19:10:56 POSLE PODNE
Cekaj sta ti hoces zapravo pojasni mi malo bolje...

Necu ja to nego tako treba bit  :D

Ja hocu da svakom igracu pokazuje njegov skor(vlastiti) a ne od drugog igraca.Nemogu bolje pojasnit!
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 27, 2016, 22:00:13 POSLE PODNE
Pa onda jednostavno u public OnPlayerSpawn stavis to.
[pawn]
format(string, sizeof(string), "~w~Score:~g~%d", GetPlayerScore(playerid));
TextDrawSetString(MTD4, string);
[/pawn]

Ali ovaj TD bi trebao da bude na playerid a ne globalni jer ce ti ovako dolaziti do bagova... Imas na samp wikiu sve u vezi TD-ova pa pronadji za playerid. E igrac jednostavno ne puni scor svaki sekund pa da mu trebas ovo u neki tajmer staviti ali mozes i u tajmer ali kazem promeni TD da ne bude globalni zato i baguje...
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: Plen Ki Mun poslato Jun 27, 2016, 22:05:47 POSLE PODNE
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 27, 2016, 22:00:13 POSLE PODNE
Pa onda jednostavno u public OnPlayerSpawn stavis to.
[pawn]
format(string, sizeof(string), "~w~Score:~g~%d", GetPlayerScore(playerid));
TextDrawSetString(MTD4, string);
[/pawn]

Ali ovaj TD bi trebao da bude na playerid a ne globalni jer ce ti ovako dolaziti do bagova... Imas na samp wikiu sve u vezi TD-ova pa pronadji za playerid. E igrac jednostavno ne puni scor svaki sekund pa da mu trebas ovo u neki tajmer staviti ali mozes i u tajmer ali kazem promeni TD da ne bude globalni zato i baguje...

E to, Svaka ti cast volim kada ti pomazes  :D
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 27, 2016, 22:25:55 POSLE PODNE
Jel to to sada ?
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: Plen Ki Mun poslato Jun 27, 2016, 22:40:21 POSLE PODNE
Da! Imam jos nesto dali treba da za to uradim novu temu ili ovdje nesto u vezi statsa
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 27, 2016, 22:58:05 POSLE PODNE
Ako je neka sitnica ajde daj da ne otvaras novu temu ...
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: Plen Ki Mun poslato Jun 28, 2016, 10:55:17 PRE PODNE
[pawn]CMD:stats(playerid,params[]) {
   new string[100], pDeaths, player1, h, m, s,playername[MAX_PLAYER_NAME];
   if(isnull(params)) player1 = playerid;
   else player1 = strval(params);

   if(IsPlayerConnected(player1)) {
       TotalGameTime(player1, h, m, s);
       GetPlayerName(player1, playername, sizeof(playername));
      if(PlayerInfo[player1][Deaths] == 0) pDeaths = 1; else pDeaths = PlayerInfo[player1][Deaths];
      new str[120], str1[100], str2[100];
      format(str, sizeof(str),"| ------ | %s's Status | ------- |", PlayerName2(player1));
      format(string,sizeof(string),"Scores: %d | Money: $%d | Kills: %d | Deaths: %d | K/D Ratio: %0.2f", GetPlayerScore(player1), GetPlayerMoney(player1), PlayerInfo[player1][Kills], PlayerInfo[player1][Deaths], Float:PlayerInfo[player1][Kills]/Float:pDeaths);
      format(str1, sizeof(str1),"Admin Level: %d | Server Operator: %s | Rank: %s | Team: %s | Class: %s", PlayerInfo[player1][Level], PlayerInfo[player1][Helper] ? ("Yes") : ("No"), GetRankName(player1), GetTeamName(player1), GetClass(player1));
      format(str2, sizeof(str2),"TimePlayed: [%d] hrs [%d] mins [%d] secs", h, m, s);
      SendClientMessage(playerid, 0xFFFFFFFF,str);
      SendClientMessage(playerid, 0xAAAAAAFF,string);
      SendClientMessage(playerid, 0xAAAAAAFF,str1);
      SendClientMessage(playerid, 0xAAAAAAFF,str2);
      SendClientMessage(playerid, 0xFFFFFFFF,"| ---------------------------------------------------- |");
   } else return SendClientMessage(playerid, red, "Player Not Connected!");
   return 1;
}[/pawn]

Znaci ovako hocu da ovo bude u dialogu ali ja sam sve radio u jednoj liniji i nije dobro ispalo.Znaci hocu u dialogu ono jedno ispod drugoga.Hvala  :)
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: ▂ ▃ ▅ Rudimental ▅ ▃ ▂ poslato Jun 28, 2016, 11:37:58 PRE PODNE
Evo ti primer nadam se da ces sve razumeti iz njega.
[pawn]
new
   glavnistring[8], // Ovde trebas da upises umesto broja 8 broj karaktera za ukupan prikaz celog statsa, dok u ove ispod upisujes broj karaktera koji je potreban za tu jednu liniju
   string1[4],
   string2[4];
format(string1, sizeof(string1), "Text"); // Evo i ovde da pojasnim za tu liniju sto sam gore pisao ovo je recimo ta jedna trenutno ima 4 karaktera pa smo tamo definisali ta 4 ali ti kada uradis sve to uvek dodaj bar jos 50 karaktera vise zbog prikazivanja brojeva eto recimo za novac ti ces ovamo staviti %d ali na serveru dobijas brojeve i ide vise karaktera ako me razumes
format(string2, sizeof(string2), "Text");
format(glavnistring, sizeof(glavnistring), "%s%s", string1, string2); // Ovde povezujes stringove koje gore definises da bi bilo sve u jednom
ShowPlayerDialog(playerid, ID, DIALOG_STYLE_MSGBOX, "Stats", glavnistring, "Ok", "");
[/pawn]
Naslov: Odg: [POMOC]Uzimanje Scora(P)igraca
Poruka od: Plen Ki Mun poslato Jun 28, 2016, 12:01:25 POSLE PODNE
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 28, 2016, 11:37:58 PRE PODNE
Evo ti primer nadam se da ces sve razumeti iz njega.
[pawn]
new
   glavnistring[8], // Ovde trebas da upises umesto broja 8 broj karaktera za ukupan prikaz celog statsa, dok u ove ispod upisujes broj karaktera koji je potreban za tu jednu liniju
   string1[4],
   string2[4];
format(string1, sizeof(string1), "Text"); // Evo i ovde da pojasnim za tu liniju sto sam gore pisao ovo je recimo ta jedna trenutno ima 4 karaktera pa smo tamo definisali ta 4 ali ti kada uradis sve to uvek dodaj bar jos 50 karaktera vise zbog prikazivanja brojeva eto recimo za novac ti ces ovamo staviti %d ali na serveru dobijas brojeve i ide vise karaktera ako me razumes
format(string2, sizeof(string2), "Text");
format(glavnistring, sizeof(glavnistring), "%s%s", string1, string2); // Ovde povezujes stringove koje gore definises da bi bilo sve u jednom
ShowPlayerDialog(playerid, ID, DIALOG_STYLE_MSGBOX, "Stats", glavnistring, "Ok", "");
[/pawn]


Hvala :) moze lock