Szerző Téma: Pénz adás(+,-,=)  (Megtekintve 2111 alkalommal)

Pénz adás(+,-,=)
« Dátum: 2016. május 18. - 19:21:04 »
0 Show voters
Sziasztok, igen tudom-tudom, hogy már kezdtek engemet is unni.  :facepalm:
Nah de térjünk is a lényegre, mint ahogy a címben látható olyan scriptért fordulok most felétek aminek a lényege pénz adás. Csak annyi kell még pluszba, hogy a parancs így nézzen ki: /penz [id/név] [összeg] [paraméter] paraméterei a téma címben is látható gondolom ez egyértelmű. + : hozzá ad,  - : elvesz, = : annyira rakja
Ha ez segít így kéri le, hogy a játékos admin-e: [pawn]if(JatekosInfo[playerid][AdminSzint] >= 6)[/pawn]
ahogy pénzt ad neki:  [pawn]JatekosInfo[playerid][Penz] +=500[/pawn] ide most csak beírtam valamit.
Előre is köszönöm.

Nem elérhető whadez

  • 719
  • DEFEATER
    • Profil megtekintése
Pénz adás(+,-,=)
« Válasz #1 Dátum: 2016. május 18. - 19:29:33 »
0 Show voters
Szia, nem akarlak téged bántani, meg semmi, de ha mindig tőlünk kérdezel dolgokat, soha semmit nem fogsz tanulni. Hidd el nagyobb kedvet kapsz az egész dologtól ha te jössz rá a dolgokra, és nem pedig más mutatja meg.
Ha +=-t használsz, és - értéket írsz paraméternek, akkor minuszba teszi az összeget.
Innentől már neked is menni fog.

Pénz adás(+,-,=)
« Válasz #2 Dátum: 2016. május 18. - 19:45:02 »
0 Show voters
Nem fogok megsértődni mivel tudom, hogy igazad van. De arra sose fogok rájönni, azt hol kell meghatározni ha pl: +-t ír be vagy ha =-t és annál mi történjen.
Pl hogy értsétek, hogy én mit nem értek  :facepalm: :D
if(params,+) <- ide csak hülyeséget írtam be.
és ez alá már sztem megtudnám csinálni a többit.
Remélem érthető.
« Utoljára szerkesztve: 2016. május 18. - 19:47:31 írta immortal1876 »

Pénz adás(+,-,=)
« Válasz #3 Dátum: 2016. május 18. - 19:51:24 »
0 Show voters
Ittvan pár link, próbálj onnan nézni valamit.
https://wiki.sa-mp.com/wiki/GivePlayerMoney
https://wiki.sa-mp.com/wiki/GetPlayerMoney
Részletesen le van írva, példákkal bemutatva is.
EDIT: Talán itt is találsz valamit : https://wiki.sa-mp.com/wiki/Fast_Commands
EDIT (RE): Meg itt 1 kód, talán..
 
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(givecash, 8, cmdtext);
return 0;
}
dcmd_givecash(playerid, params[])
{
new
giveplayerid,
amount;
if (sscanf(params, \"ud\", giveplayerid, amount)) SendClientMessage(playerid, 0xFF0000AA, \"Usage: /givecash [playerid/partname] [amount]\");
else if (giveplayerid == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, \"Player not found\");
else if (amount > GetPlayerMoney(playerid)) SendClientMessage(playerid, 0xFF0000AA, \"Insufficient Funds\");
else
{
GivePlayerMoney(giveplayerid, amount);
GivePlayerMoney(playerid, 0 - amount);
SendClientMessage(playerid, 0x00FF00AA, \"Money sent\");
SendClientMessage(giveplayerid, 0x00FF00AA, \"Money received\");
}
return 1;
}

 
Remélem ez segít.
Peace  :smokin:
« Utoljára szerkesztve: 2016. május 18. - 19:55:12 írta $Supra$ »

Pénz adás(+,-,=)
« Válasz #4 Dátum: 2016. május 18. - 20:05:25 »
0 Show voters
Úgy látszik nem érted, hogy én mit nem tudok megcsinálni. Ez nekem már mind \"alap\" én azt nem tudom megcsinálni hogy lekérdezze, hogy az most + vagy - . Hogy is írjam le, hogy értsd/értsétek. Szóval az úgy nézne ki szerintem(nembiztos) hogy megvan adva hogy például:
[pawn]
if(+)
{
      Ide tudom mi kell
}
if(-)
{
      Ide tudom mi kell
}[/pawn]
remélem így már érthető. csak mivel nem tudom hogy kell ezért nem is tudom elmagyarázni és ezért én kérek elnézést tőletek, hogy 1 balfaszzal több a fórumon :D

Pénz adás(+,-,=)
« Válasz #5 Dátum: 2016. május 18. - 20:08:42 »
0 Show voters
Rendben, hogy neked ez alap nem tudtam. :D
Ha van egy kis időm akkor leírom, viszont most dolgom van..
Vagy esetleg majd privátban leírom..
Addig is sok sikert, hátha megoldódik.
Peace  :smokin:

Nem elérhető whadez

  • 719
  • DEFEATER
    • Profil megtekintése
Pénz adás(+,-,=)
« Válasz #6 Dátum: 2016. május 18. - 20:19:43 »
+1 Show voters
Figyelj, a programozás nem egy olyan nehéz dolog. Az egész logikán alapszik, a pawn-t legalább is bárki megtanulhatja.
---
++ [A változó értékhez ad hozzá 1 értéket (Nem ajánlatos használni, sokkal lassabb mint a += 1;)]
-- [A változó értékéből von ki 1-et. (Nem ajánlatos használni, sokkal lassabb mint a -= 1;))
+= [A változó jelenlegi értékéhez ad hozzá az általad meghatározott értéket.]
-= [ugyan ez, csak kivonja]
Nincs ilyen hogy if(+), meg if(-).
Te egy meglévő változónak az értékét szeretnéd módosítani.
Ha a +=-be - értéket írsz be, akkor kivonja belőle.
Ezért csinálod úgy hogy :
pInfo[p][JatekosPenze] += strval(params);.  (strval(params) -> A paraméternek a decimális értéke).
Írok egy példa parancsot.
 

CMD:adokpenzt(playerid, params[]) {
pInfo[playerid][JatekosPenze] += strval(params);
return 1;
}

 
Ez a parancs neked fog adni pénzt. Ha szeretnél játékos id-t is targetelni, akkor sscanf-ra lesz szükséged, és így kell kinéznie:
 

CMD:adokpenzt(playerid, params[]) {
new targetid, osszeg;
if(sscanf(params, \"ui\", targetid, osszeg)) return SendClientMessage(playerid, -1, \"Használat: /adokpenzt [Parameter 1] [Parameter 2]\");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, -1, \"A játékos nincs fent a szerveren te majom!\"); // Megnézzük hogy a játékos fent-e van, mivel ! van ott, ezért azt csekkoljuk hogy NINCS-e fent. Tehát ha NINCS fent, akkor nem fut le a parancs
// És mivel már csekkoltuk hogy a játékos fent van, ezért a változóját módosíthatjuk, mivel be van neki töltetve, és mentve.
pInfo[targetid][JatekosPenze] += osszeg;
}

 
}
UI: Amiket Supra le írt ne legyenek még alapok, ha az alap logikai menetel nincs meg.
Be írsz a második paraméternek egy értéket. Például -> -666
És ezt nem tudod lekérdezni?
if(osszeg < 0) // Ha az érték minusz
else // Ha az érték nem minusz.

Pénz adás(+,-,=)
« Válasz #7 Dátum: 2016. május 18. - 20:45:16 »
0 Show voters
És ha azt mondom, hogy olyasmit akarok mint s***g módjába? Tudom, hogy tiltott elnézést kérek de már tényleg nem tudom, hogy írjam.

Pénz adás(+,-,=)
« Válasz #8 Dátum: 2016. május 18. - 20:50:11 »
0 Show voters
Így akarja használni a parancsot.
 
/penz Kulka_Janos 5000 +    -> Hozzáad 5000-et a jelenlegi pénzéhez
/penz Kulka_Janos 5000 -    -> Elvesz 5000-et a jelenlegi pénzéből
/penz Kulka_Janos 5000 =    -> A pénzét beállítja 5000-re

 
Nektek ez túlbonyolítás lehet, az is, de erre gondol. maybe..

Pénz adás(+,-,=)
« Válasz #9 Dátum: 2016. május 18. - 20:51:38 »
0 Show voters
Igen, pont így akarom. Nem tudtam hogy írjam le :D sryyy mindenkitől

Pénz adás(+,-,=)
« Válasz #10 Dátum: 2016. május 18. - 21:15:44 »
0 Show voters
CMD:penz(playerid, params[])
{
new jatekos,osszeg;
if (sscanf(params, \"ud\", jatekos,osszeg))
   return SendClientMessage(playerid, -1, \"Használat: /pénz [Játékos] [Összeg]\");
if(jatekos == INVALID_PLAYER_ID)
    return SendClientMessage(playerid, -1, \"Nincs ilyen játékos!\");
        /* ide még a nevet be tudod illeszteni*/
        if(mennyit < 0) printf(\"[Pénz]: Levonás: %d | Maradt: %d\",osszeg, pInfo[playerid][pForint]-osszeg);
        if(mennyit > 0) printf(\"[Pénz]: Hozzáadas: %d | Maradt: %d\",osszeg, pInfo[playerid][pForint]+osszeg);
        pInfo[playerid][pForint] += osszeg;
        return true;
}

 
Magyarázat: ha le akarsz vonni akkor az összeg - legyen (pl: -5000) ha hozzáadni sima szám pl(5000)
« Utoljára szerkesztve: 2016. május 18. - 21:20:04 írta Brian Harris »

Pénz adás(+,-,=)
« Válasz #11 Dátum: 2016. május 18. - 21:34:19 »
0 Show voters
Ez eddig okés, egyébként azért akartam úgy +,-,=-sen mivel mindegyikhez külön szöveget akarok, az ezzel megoldható valahogy?

Pénz adás(+,-,=)
« Válasz #12 Dátum: 2016. május 19. - 00:37:24 »
0 Show voters
Annyira nem beszélek pawnul, de ennek elvileg jónak kell lennie.
 
CMD:penz(playerid, params[]) {
    new targetid, amount, operation[2];
    if(JatekosInfo[playerid][AdminSzint] < 6)
        return SendClientMessage(playerid, -1, \"Nincs jogosultságod a parancs használatához!\");
    if(sscanf(params, \"uds[2]\", targetid, amount, operation))
        return SendClientMessage(playerid, -1, \"Használat: /penz [iD] [Összeg] [+/-/=]\");
    if(targetid == INVALID_PLAYER_ID)
        return SendClientMessage(playerid, -1, \"Hibás ID!\");
    if(!strcmp(operation, \"+\")) {
        //GivePlayerMoney(targetid, amount);
        JatekosInfo[targetid][Penz] += amount;
    }
    else if(!strcmp(operation, \"-\")) {
        //GivePlayerMoney(targetid, -amount);
        JatekosInfo[targetid][Penz] -= amount;
    }
    else if(!strcmp(operation, \"=\")) {
        //ResetPlayerMoney(targetid);
        //GivePlayerMoney(targetid, amount);
        JatekosInfo[targetid][Penz] = amount;
    }
    else
        SendClientMessage(playerid, -1, \"Hibás művelet!\");
    return 1;
}

Nem elérhető whadez

  • 719
  • DEFEATER
    • Profil megtekintése
Pénz adás(+,-,=)
« Válasz #13 Dátum: 2016. május 19. - 01:03:47 »
0 Show voters
Idézetet írta: impreZZa date=1463611044\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60461\" data-ipsquote-contentclass=\"forums_Topic
Annyira nem beszélek pawnul, de ennek elvileg jónak kell lennie.
 
CMD:penz(playerid, params[]) {
    new targetid, amount, operation[2];
    if(JatekosInfo[playerid][AdminSzint] < 6)
        return SendClientMessage(playerid, -1, \"Nincs jogosultságod a parancs használatához!\");
    if(sscanf(params, \"uds[2]\", targetid, amount, operation))
        return SendClientMessage(playerid, -1, \"Használat: /penz [iD] [Összeg] [+/-/=]\");
    if(targetid == INVALID_PLAYER_ID)
        return SendClientMessage(playerid, -1, \"Hibás ID!\");
    if(!strcmp(operation, \"+\")) {
        //GivePlayerMoney(targetid, amount);
        JatekosInfo[targetid][Penz] += amount;
    }
    else if(!strcmp(operation, \"-\")) {
        //GivePlayerMoney(targetid, -amount);
        JatekosInfo[targetid][Penz] -= amount;
    }
    else if(!strcmp(operation, \"=\")) {
        //ResetPlayerMoney(targetid);
        //GivePlayerMoney(targetid, amount);
        JatekosInfo[targetid][Penz] = amount;
    }
    else
        SendClientMessage(playerid, -1, \"Hibás művelet!\");
    return 1;
}

 

Jól beszéltél pawnul szerintem.  :OO  :-[

Pénz adás(+,-,=)
« Válasz #14 Dátum: 2016. május 19. - 15:16:55 »
0 Show voters
Ez mind szép és jó, pont ilyet akartam csak az a gondom vele, hogy akárhogy akármit írok akkor is a használatát írja ki. szóval beíram /penz 0 500 + és kiírja, hogy használat: ....

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal