Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Stefan Lujicc poslato Novembar 15, 2024, 23:03:30 POSLE PODNE

Naslov: Pomoc oko pawna
Poruka od: Stefan Lujicc poslato Novembar 15, 2024, 23:03:30 POSLE PODNE
(http://i.imgur.com/8NcveCL.png)


Tema koju ste postavili nije po pravilima foruma.
Razlog zakljucavanja: Formular

Molimo Vas da procitate glavna pravila foruma kao i pravila ovog podforuma.
Naslov: Odg: Pomoc oko pawna
Poruka od: iv0dev poslato Novembar 17, 2024, 11:10:47 PRE PODNE
Citat: Stefan Lujicc poslato Novembar 15, 2024, 23:03:30 POSLE PODNEMoze mi neko pomoci kako da povezem ono Banka: 0 sa textrawa da pokazuje koliko igrac ima novca u banci.
Ako nisi rijesio javi se na discord: ivodev45
Naslov: Odg: Pomoc oko pawna
Poruka od: ogil poslato Novembar 17, 2024, 11:21:25 PRE PODNE
Citat: ivodev45 poslato Novembar 17, 2024, 11:10:47 PRE PODNEAko nisi rijesio javi se na discord: ivodev45

Problemi se ne resavaju na discordu vec ovde. Mozda tvoj odgovor pomogne jos nekome sa slicnim problemom :)

Sto se pitanja tice, potrebno je da svuda gde se odvija promena bankovnog stanja u modu (dodavanje novca, oduzimanje novca) dodas funkciju koja menja tekst kod textdrawa. Posalji mi kod gde si kreirao taj textdraw i kako obelezavas stanje na bankovnom racunu kako bih ti napravio tacan kod koji ces dodati svuda gde treba
Naslov: Odg: Pomoc oko pawna
Poruka od: iv0dev poslato Novembar 17, 2024, 11:47:18 PRE PODNE
Citat: ogil poslato Novembar 17, 2024, 11:21:25 PRE PODNEProblemi se ne resavaju na discordu vec ovde. Mozda tvoj odgovor pomogne jos nekome sa slicnim problemom :)

Sto se pitanja tice, potrebno je da svuda gde se odvija promena bankovnog stanja u modu (dodavanje novca, oduzimanje novca) dodas funkciju koja menja tekst kod textdrawa. Posalji mi kod gde si kreirao taj textdraw i kako obelezavas stanje na bankovnom racunu kako bih ti napravio tacan kod koji ces dodati svuda gde treba
Okej, u tom slučaju puštam kod ovdje za primjer

UpdateBankTD(playerid) {
    new tmp_str[20];
    if(PlayerInfo[playerid][pBRacun] == 0)
    {
        PlayerTextDrawSetString(playerid, tvoj td, "NO ACC.");   
    }
    else
    {
        format(tmp_str, sizeof tmp_str, "~w~%d", PlayerInfo[playerid][pBRacun]);
    PlayerTextDrawSetString(playerid, tvoj td, tmp_str);
    }
}
E da jako bitno sam zaboravio napomenuti, kod komandi npr /otvoriracun /deposit /withdraw pozoveš funkciju UpdateBankTD,

PS.A i ne moraš tako mislim da se može čak i u OnPlayerUpdate da ne praviš funkciju bezveze, nisam probavao
Naslov: Odg: Pomoc oko pawna
Poruka od: ogil poslato Novembar 17, 2024, 12:56:53 POSLE PODNE
Može i u onplayerupdate ali nije baš praktično. OnPlayerUpdate se poziva uvek kada igrač ima interakciju sa serverom odnosno kada se dogodi bilo kakva promena klijenta (kretanje, health, armor...) tako da je nepraktično da se svake milisekunde proverava stanje bankovnog računa i radi manipulacija sa textdrawom. Nekako iz mog iskustva je najbolje napraviti funkciju koja će raditi dodavanje/oduzimanje novca sa računa u kojoj će se automatski sačuvati novac u promenjivoj i automatski promeniti status TDa. Tako promenu TDa vršiš isključivo kada se pozove funkcija za dodavanje/oduzimanje novca sa računa.
Naslov: Odg: Pomoc oko pawna
Poruka od: iv0dev poslato Novembar 17, 2024, 14:47:36 POSLE PODNE
Citat: ogil poslato Novembar 17, 2024, 12:56:53 POSLE PODNEMože i u onplayerupdate ali nije baš praktično. OnPlayerUpdate se poziva uvek kada igrač ima interakciju sa serverom odnosno kada se dogodi bilo kakva promena klijenta (kretanje, health, armor...) tako da je nepraktično da se svake milisekunde proverava stanje bankovnog računa i radi manipulacija sa textdrawom. Nekako iz mog iskustva je najbolje napraviti funkciju koja će raditi dodavanje/oduzimanje novca sa računa u kojoj će se automatski sačuvati novac u promenjivoj i automatski promeniti status TDa. Tako promenu TDa vršiš isključivo kada se pozove funkcija za dodavanje/oduzimanje novca sa računa.
Hvala na objašnjenju
Naslov: Odg: Pomoc oko pawna
Poruka od: Stefan Lujicc poslato Novembar 17, 2024, 22:08:40 POSLE PODNE
Citat: ogil poslato Novembar 17, 2024, 11:21:25 PRE PODNEProblemi se ne resavaju na discordu vec ovde. Mozda tvoj odgovor pomogne jos nekome sa slicnim problemom :)

Sto se pitanja tice, potrebno je da svuda gde se odvija promena bankovnog stanja u modu (dodavanje novca, oduzimanje novca) dodas funkciju koja menja tekst kod textdrawa. Posalji mi kod gde si kreirao taj textdraw i kako obelezavas stanje na bankovnom racunu kako bih ti napravio tacan kod koji ces dodati svuda gde treba
ja sam ovako napravio za update vremena i datuma, ispod je za banku,
forward TDUpdate(playerid);
public TDUpdate(playerid)
{
   // Datum Vreme
   new string[128], year, mounth, day, hours, minutes, sec;
   getdate(year, mounth, day), gettime(hours, minutes, sec);
   format(string, sizeof(string), "%s%d/%s%d/%s%d", ((day < 10) ? ("0") : ("")), day, ((mounth < 10) ? ("0") : ("")), mounth, ((year < 10) ? ("0") : ("")), year);
   TextDrawSetString(Igtd10, string);
   format(string, sizeof(string), "%s%d:%s%d", ((hours < 10) ? ("0") : ("")), hours, ((minutes < 10) ? ("0") : ("")), minutes);
   TextDrawSetString(Igtd11, string);

   // BANKA
   new bnkstring[128];
   format(bnkstring, sizeof(bnkstring), "Banka: %d", PlayerInfo[playerid][pBanka]);
   TextDrawLetterSize(Igtd9, 0.222999, 1.149375);
   TextDrawAlignment(Igtd9, 1);
   TextDrawColor(Igtd9, -1);
   TextDrawSetShadow(Igtd9, 0);
   TextDrawSetOutline(Igtd9, 1);
   TextDrawBackgroundColor(Igtd9, 51);
   TextDrawFont(Igtd9, 1);
   TextDrawSetProportional(Igtd9, 1);
   TextDrawSetString(Igtd9, bnkstring);
}
Naslov: Odg: Pomoc oko pawna
Poruka od: Muma poslato Novembar 17, 2024, 22:33:43 POSLE PODNE
Citat: Stefan Lujicc poslato Novembar 17, 2024, 22:08:40 POSLE PODNEja sam ovako napravio za update vremena i datuma, ispod je za banku,
forward TDUpdate(playerid);
public TDUpdate(playerid)
{
   // Datum Vreme
   new string[128], year, mounth, day, hours, minutes, sec;
   getdate(year, mounth, day), gettime(hours, minutes, sec);
   format(string, sizeof(string), "%s%d/%s%d/%s%d", ((day < 10) ? ("0") : ("")), day, ((mounth < 10) ? ("0") : ("")), mounth, ((year < 10) ? ("0") : ("")), year);
   TextDrawSetString(Igtd10, string);
   format(string, sizeof(string), "%s%d:%s%d", ((hours < 10) ? ("0") : ("")), hours, ((minutes < 10) ? ("0") : ("")), minutes);
   TextDrawSetString(Igtd11, string);

   // BANKA
   new bnkstring[128];
   format(bnkstring, sizeof(bnkstring), "Banka: %d", PlayerInfo[playerid][pBanka]);
   TextDrawLetterSize(Igtd9, 0.222999, 1.149375);
   TextDrawAlignment(Igtd9, 1);
   TextDrawColor(Igtd9, -1);
   TextDrawSetShadow(Igtd9, 0);
   TextDrawSetOutline(Igtd9, 1);
   TextDrawBackgroundColor(Igtd9, 51);
   TextDrawFont(Igtd9, 1);
   TextDrawSetProportional(Igtd9, 1);
   TextDrawSetString(Igtd9, bnkstring);
}

Ne moraš ove provjere radit
format(string, sizeof(string), "%s%d/%s%d/%s%d", ((day < 10) ? ("0") : ("")), day, ((mounth < 10) ? ("0") : ("")), mounth, ((year < 10) ? ("0") : ("")), year);

Možeš i ovako
format(string, sizeof(string), "%02d/%02d/%d", day, mounth, year);

ps.ako ima neki mistype pišem sa fona pa reci
Naslov: Odg: Pomoc oko pawna
Poruka od: Stefan Lujicc poslato Novembar 17, 2024, 22:49:53 POSLE PODNE
Citat: Muma poslato Novembar 17, 2024, 22:33:43 POSLE PODNENe moraš ove provjere radit
format(string, sizeof(string), "%s%d/%s%d/%s%d", ((day < 10) ? ("0") : ("")), day, ((mounth < 10) ? ("0") : ("")), mounth, ((year < 10) ? ("0") : ("")), year);

Možeš i ovako
format(string, sizeof(string), "%02d/%02d/%d", day, mounth, year);

ps.ako ima neki mistype pišem sa fona pa reci
a zanima me za banku napravio sam TD i sve, i nekako povezao da pokazuje na TD koliko imam novca u banci, ali kada npr prebacim novac sa jednog acc na drugi (transfer ili payday) ugl kada dodje do promjene stanja na banci ista cifra mi bude i na jednom acc i na drugom isto ako sve pare sa banke dignem u dzep promeni se na 0 na svim nalozima, ako bi stavio na banku 1000 tako se promeni i na ostale.
Naslov: Odg: Pomoc oko pawna
Poruka od: Gohstic4 poslato Novembar 17, 2024, 22:55:32 POSLE PODNE
Citat: Stefan Lujicc poslato Novembar 17, 2024, 22:49:53 POSLE PODNEa zanima me za banku napravio sam TD i sve, i nekako povezao da pokazuje na TD koliko imam novca u banci, ali kada npr prebacim novac sa jednog acc na drugi (transfer ili payday) ugl kada dodje do promjene stanja na banci ista cifra mi bude i na jednom acc i na drugom isto ako sve pare sa banke dignem u dzep promeni se na 0 na svim nalozima, ako bi stavio na banku 1000 tako se promeni i na ostale.
Stavis npr UpdateBankTD( playerid ); kad je payday
Naslov: Odg: Pomoc oko pawna
Poruka od: Muma poslato Novembar 19, 2024, 01:00:01 PRE PODNE
Citat: Stefan Lujicc poslato Novembar 17, 2024, 22:49:53 POSLE PODNEa zanima me za banku napravio sam TD i sve, i nekako povezao da pokazuje na TD koliko imam novca u banci, ali kada npr prebacim novac sa jednog acc na drugi (transfer ili payday) ugl kada dodje do promjene stanja na banci ista cifra mi bude i na jednom acc i na drugom isto ako sve pare sa banke dignem u dzep promeni se na 0 na svim nalozima, ako bi stavio na banku 1000 tako se promeni i na ostale.

Koliko sam ja shvatio ili ti je TD globalni ili si pogriješio negdje playerid i targetid, postavi code ovdje da pogledamo
Naslov: Odg: Pomoc oko pawna
Poruka od: Stefan Lujicc poslato Novembar 19, 2024, 02:40:51 PRE PODNE
Citat: Muma poslato Novembar 19, 2024, 01:00:01 PRE PODNEKoliko sam ja shvatio ili ti je TD globalni ili si pogriješio negdje playerid i targetid, postavi code ovdje da pogledamo
// BANKA
   new bnkstring[128];
   format(bnkstring, sizeof(bnkstring), "Banka: %d", PlayerInfo[playerid][pBanka]);
   TextDrawLetterSize(Igtd9, 0.222999, 1.149375);
   TextDrawAlignment(Igtd9, 1);
   TextDrawColor(Igtd9, -1);
   TextDrawSetShadow(Igtd9, 0);
   TextDrawSetOutline(Igtd9, 1);
   TextDrawBackgroundColor(Igtd9, 51);
   TextDrawFont(Igtd9, 1);
   TextDrawSetProportional(Igtd9, 1);
   TextDrawSetString(Igtd9, bnkstring);
}


Mislim da sam kreirao TD-owe kao globalne
Naslov: Odg: Pomoc oko pawna
Poruka od: Dragi poslato Novembar 19, 2024, 14:38:34 POSLE PODNE
Public TextDraw ti je to, bajo moj. Sve imas ovde, pogledaj i vidi na koji nacin se pravi TDovi rucno.
Link: Klikni (https://sampwiki.blast.hk/wiki/CreatePlayerTextDraw)

Evo, napravio sam ti rucno player textdraw od tvojih public da vidis kako to ide, ovo zameni sa tvojim i radice ti, ali brale, nemoj slucajno da zamenis ovo samo, nego sve textdrawovove koje imas pod tom varijablom!!!
new PlayerText:BankaPlayerTD[MAX_PLAYERS][1];

BankaPlayerTD[playerid][0] = CreatePlayerTextDraw(playerid, Float:x, Float:y, text[])l;
PlayerTextDrawLetterSize(playerid, BankaPlayerTD[playerid][0], 0.222999, 1.149375);
PlayerTextDrawAlignment(playerid, BankaPlayerTD[playerid][0], 1);
PlayerTextDrawColor(playerid, BankaPlayerTD[playerid][0], -1);
PlayerTextDrawSetShadow(playerid, BankaPlayerTD[playerid][0], 0);
PlayerTextDrawSetOutline(playerid, BankaPlayerTD[playerid][0], 1);
PlayerTextDrawBackgroundColor(playerid, BankaPlayerTD[playerid][0], 51);
PlayerTextDrawFont(playerid, BankaPlayerTD[playerid][0], 1);
PlayerTextDrawSetProportional(playerid, BankaPlayerTD[playerid][0], 1);
PlayerTextDrawSetString(playerid, BankaPlayerTD[playerid][0], bnkstring); //azuriraj mi tekst TD-a

Evo ti malo lepsi kod za toj.
forward TDUpdate(playerid);
public TDUpdate(playerid)
{
    // Datum i vremenung
    new string[128];
    new year, month, day, hours, minutes, sec;
    getdate(year, month, day);
    gettime(hours, minutes, sec);

    // Formatiraj datum
    format(string, sizeof(string), "%02d/%02d/%02d", day, month, year);
    TextDrawSetString(Igtd10, string);
PlayerTextDrawSetString

    // Formatiranje vremena
    format(string, sizeof(string), "%02d:%02d", hours, minutes);
    TextDrawSetString(Igtd11, string);

    // BANKA
    new bnkstring[128];
    format(bnkstring, sizeof(bnkstring), "Banka: %d", PlayerInfo[playerid][pBanka]);
Naslov: Odg: Pomoc oko pawna
Poruka od: Dragi poslato Novembar 19, 2024, 14:56:26 POSLE PODNE
Evo ti zavrsen kod jer nisam mogao editovat.

Evo ti malo lepsi kod za toj. Ovo je deo koji si ti poslao.
new PlayerText:BankaPlayerTD[MAX_PLAYERS][1]; // ovo dodajes obicno na vrh skripte gde su ti deklarisane varijable ako radis u jednom fajlu, ako modularno radis onda u modulu za toj

forward TDUpdate(playerid);
public TDUpdate(playerid)
{
    // Datum i vremenung
    new string[128];
    new year, month, day, hours, minutes, sec;
    getdate(year, month, day);
    gettime(hours, minutes, sec);

    // Formatiraj datum
    format(string, sizeof(string), "%02d/%02d/%02d", day, month, year);
    //TextDrawSetString(Igtd10, string); //ovo ti je public, ne mere tako
    PlayerTextDrawSetString(playerid, PlayerText:text, string[]); // ovo ti je za playera, izmeni po
    svojim paramtrima

    // Formatiranje vremena
    format(string, sizeof(string), "%02d:%02d", hours, minutes);
    //TextDrawSetString(Igtd11, string); // isti slucaj kao za formatiranje datuma, ne smes
    public!!!!!

    // ovo je banka brale
    new bnkstring[128];
    format(bnkstring, sizeof(bnkstring), "Banka: %d", PlayerInfo[playerid][pBanka]);

    // textdraw
    BankaPlayerTD[playerid][0] = CreatePlayerTextDraw(playerid, Float:x, Float:y, text[])l;
    PlayerTextDrawLetterSize(playerid, BankaPlayerTD[playerid][0], 0.222999, 1.149375);
    PlayerTextDrawAlignment(playerid, BankaPlayerTD[playerid][0], 1);
    PlayerTextDrawColor(playerid, BankaPlayerTD[playerid][0], -1);
    PlayerTextDrawSetShadow(playerid, BankaPlayerTD[playerid][0], 0);
    PlayerTextDrawSetOutline(playerid, BankaPlayerTD[playerid][0], 1);
    PlayerTextDrawBackgroundColor(playerid, BankaPlayerTD[playerid][0], 51);
    PlayerTextDrawFont(playerid, BankaPlayerTD[playerid][0], 1);
    PlayerTextDrawSetProportional(playerid, BankaPlayerTD[playerid][0], 1);
    PlayerTextDrawSetString(playerid, BankaPlayerTD[playerid][0], bnkstring); //azuriraj mi tekst TD-a
}