Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Vojinxt125x poslato Januar 02, 2018, 15:22:49 POSLE PODNE

Naslov: YCMD:withdraw/deposit
Poruka od: Vojinxt125x poslato Januar 02, 2018, 15:22:49 POSLE PODNE
Detaljan opis problema:
Kako da napravim da kada igrac kuca samo /withdraw  da mu izbaci SCM Koriscenje /withdraw [iznos] ?
Kako mogu da napravim da kada ubaci pare ili uzme iz  banke da  mu izbaci SCM Staro stanje =  i SCM Novo Stanje = (nekako da se sabere/oduzme  staro stanje + iznos koji je uneo ili kako vec to ide ? )

Dio skripte: //
Neke slike/video za lakse dobivanje pomoci(neobavezno): //
Naslov: Odg: YCMD:withdraw/deposit
Poruka od: xsar.p poslato Januar 02, 2018, 16:14:09 POSLE PODNE
Za koriscenje ubaci nesto slicno ovome. Pisem iz glave tkd nisam siguran da li radi.
[pawn]if(sscanf(params, "u", iznos)) return SendClientMessage(playerid, -1, "{2685EB}[xCN:RP]{FFFFFF} Koriscenje: /withdraw [IZNOS] "); //ako ne radi zameni u sa ud! [/pawn]
Za staro stanje  i novo stanje bi mogao neko iskusniji da ti pomogne.
Naslov: Odg: YCMD:withdraw/deposit
Poruka od: Snike02 poslato Januar 02, 2018, 16:45:06 POSLE PODNE
   Ako ti je u dialozi vako ako ne samo smeni ga da nije sa dialog.
[pawn]if(dialogid == BANKMENU2)
      {
      if(response)
      {
      //if(dialogid == BANKMENU2)
      //{
         new cashdeposit = strval(inputtext);
         if (cashdeposit > GetPlayerMoney(playerid) || cashdeposit < 1)
         {
            SendClientMessage(playerid, COLOR_GRAD2, "   Nemate tolku");
            return 1;
         }
         GivePlayerMoney(playerid,-cashdeposit);
         new curfunds = PlayerInfo[playerid][pAccount];
         PlayerInfo[playerid][pAccount]=cashdeposit+PlayerInfo[playerid][pAccount];
         SendClientMessage(playerid, COLOR_WHITE, "|___ Banka ___|");
         format(string, sizeof(string), "  Stara smetka: $%d", curfunds);
         SendClientMessage(playerid, COLOR_GRAD2, string);
         format(string, sizeof(string), "  Vneseno: $%d",cashdeposit);
         SendClientMessage(playerid, COLOR_GRAD4, string);
         SendClientMessage(playerid, COLOR_GRAD6, "|-----------------------------------------|");
         format(string, sizeof(string), "  Nova smetka: $%d", PlayerInfo[playerid][pAccount]);
         SendClientMessage(playerid, COLOR_WHITE, string);
         OnPlayerUpdate(playerid);
         return 1;
      }
   }
//------------------------------------------------------------------------------
   if(dialogid == BANKMENU)
   {
      if(response)
      {
            new cashdeposit = strval(inputtext);
         if (cashdeposit > PlayerInfo[playerid][pAccount] || cashdeposit < 1)
         {
            SendClientMessage(playerid, COLOR_GRAD2, "   Nemate tolku !");
            return 1;
         }
           ConsumingMoney[playerid] = 1;
         GivePlayerMoney(playerid,cashdeposit);
         PlayerInfo[playerid][pAccount]=PlayerInfo[playerid][pAccount]-cashdeposit;
         format(string, sizeof(string), " ** Imate izvadeno $%d od vasata smetka,Ostanato: $%d ", cashdeposit,PlayerInfo[playerid][pAccount]);
         SendClientMessage(playerid, COLOR_GREEN, string);
         return 1;
      }
   }[/pawn]
Naslov: Odg: YCMD:withdraw/deposit
Poruka od: Łuk@ poslato Januar 02, 2018, 16:46:14 POSLE PODNE
CMD:withdraw(playerid,params[])
{
    new string[50];
    if(sscanf(params, "i", params[0])) return SendClientMessage(playerid, -1, "/withdraw (iznos)");
    if(params[0] >= PlayerInfo[playerid][pNovacBanka]) return SendClientMessage(playerid, -1, "Error");
    GivePlayerMoney(playerid, params[0]);
    PlayerInfo[playerid][pNovacBanka] -= params[0];
    format(string, sizeof(string,), "Stari iznos racuna je %d$, novi %d$", PlayerInfo[playerid][pNovacBanka]+params[0],  PlayerInfo[playerid][pNovacBanka]-params[0]);
    SendClientMessage(playerid, -1, string);
    return 1;
}

nez hoce li raditi sad sam ustao, testiraj pa javi
Naslov: Odg: YCMD:withdraw/deposit
Poruka od: Vojinxt125x poslato Januar 02, 2018, 17:05:35 POSLE PODNE
Hvala svima, posebno tebi Luka, kasnije cu proveriti da li radi :D 
Naslov: Odg: YCMD:withdraw/deposit
Poruka od: Vojinxt125x poslato Januar 03, 2018, 11:13:47 PRE PODNE
Nesto nije uredu..
Postavim sebi u banci 10000, i idem /withdraw 1, on kaze stari iznos 10000$, novi 9998, a treba 9999$
Onda posle idem opet /withdraw i tada kaze stari iznos racuna je 9999$ a novi opet sjebe, znaci on stari iznos lepo napise, a novi sjebe..
Naslov: Odg: YCMD:withdraw/deposit
Poruka od: Pabloo poslato Januar 03, 2018, 11:36:03 PRE PODNE
CMD:bwithdraw(playerid,params[])
{
    if( !PlayerInfo[ playerid ][ xImaBRacun ] ) return GRESKA( playerid, "Prvo moras da otvoris racun u banci i uzmes karticu za bankomat." );
    if( IsPlayerInAnyVehicle( playerid ) ) return GRESKA( playerid, "Ne mozes koristiti ovu komandu dok si u vozilu." );
      if( GetNearestAtm( playerid ) == -1 ) return GRESKA( playerid, "Moras biti blizu bankomata." );
    new cashdeposit;
      if( sscanf( params, "d",cashdeposit ) )
   {
         SendUsageMessage( playerid, "/bwithdraw [ iznos ]");
         return 1;
   }
     if( cashdeposit > PlayerInfo[ playerid ][ xBRacun ] || cashdeposit < 1 ) return GRESKA( playerid, "Nemate toliko novca !");
      DajIgracuNovac( playerid, cashdeposit );
    UpdateDzepTD( playerid );
    PlayerInfo[ playerid ][ xBRacun ] -= cashdeposit ;
    format( globalstring, sizeof( globalstring ), "Podigli ste $%d s vaseg racuna. Na racunu ima: $%d ", cashdeposit, PlayerInfo[ playerid ][ xBRacun ] );
    SCM( playerid, ZUTA, globalstring); UpdateBankTD( playerid );
   return 1;
}
Ovo ti je kimanda za bankomat ali eto radi sve perfektno
Naslov: Odg: YCMD:withdraw/deposit
Poruka od: Vojinxt125x poslato Januar 03, 2018, 11:46:35 PRE PODNE
Nasao sam problem, bespotrebno oduzimanje -params :D Hvala!