Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-11-11, 16:59


Porucznik







Wiek: 30
Na forum: 5010 dni
Posty: 33
Nick w MP: Porucznik

Piwa: 1

Respekt: 50

Zrobi?em co? takiego:

Kod:

if(dialogid == BANK_WPLAC)
{
if(!response)
return SendClientMessage(playerid, 0xB0B0B0AA, "Anulowa?e?...");
if(!IsNull(inputtext) && IsNumeric(inputtext))
{
new bankbufwplac[127];
format(bankbufwplac, sizeof(bankbufwplac), "UPDATE `Gracze` SET `Bank_kasa` = '%d' WHERE `Nick`='%s'", inputtext, PlayerName(playerid));
SendClientMessage(playerid, 0xFF0000, "Wp?aci?e? pieni?dze na konto!");
mysql_query(bankbufwplac);
}
if(IsNull(inputtext))
{
SendClientMessage(playerid, 0xFF0000FF, "To pole nie mo?e by? puste!");
return 0;
}
}


Nie wiem tylko dlaczego jak wp?ac? np. 10.000$ w bazie pojawia si? 49. Co jest nie tak?

[ Komentarz dodany przez: Sillence: 2013-11-11, 17:07 ]
// Kodu w znaczniku [.code][./code] nie mo?na wy?rodkowa?. Taka informacja na przysz?o?? :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-11-11, 19:40


pat5055







Wiek: 26
Na forum: 5805 dni
Posty: 24
Nick w MP: ---

Piwa: 841

Respekt: 59,6

Zmienna "inputtext" jest warto?ci? typu string - ci?g znak?w, trzeba j? przekszta?ci? na liczb?, dodaj?c po
Kod:

if(!IsNull(inputtext) && IsNumeric(inputtext))
{

Kod:

new wplactyle = strval(inputtext);

W?wczas zmienna 'wplactyle' zawiera kwot? do wp?acenia - nale?y podmieni? j? w linijce
Kod:

format(bankbufwplac, sizeof(bankbufwplac), "UPDATE `Gracze` SET `Bank_kasa` = '%d' WHERE `Nick`='%s'", wplactyle, PlayerName(playerid));


Ca?o?? przyjmuje posta?:
Kod:

if(dialogid == BANK_WPLAC)
{
if(!response)
return SendClientMessage(playerid, 0xB0B0B0AA, "Anulowa?e?...");
if(!IsNull(inputtext) && IsNumeric(inputtext))
{
new wplactyle = strval(inputtext);
new bankbufwplac[127];
format(bankbufwplac, sizeof(bankbufwplac), "UPDATE `Gracze` SET `Bank_kasa` = '%d' WHERE `Nick`='%s'", wplactyle, PlayerName(playerid));
SendClientMessage(playerid, 0xFF0000, "Wp?aci?e? pieni?dze na konto!");
mysql_query(bankbufwplac);
}
if(IsNull(inputtext))
{
SendClientMessage(playerid, 0xFF0000FF, "To pole nie mo?e by? puste!");
return 0;
}
}


I jeszcze jedno, zauwa?y?em, i? warto?? 'Bank_kasa' jest ustawiana przy wykonywaniu operacji, zamiast dodawania. (tzn. je?li mamy 50$ i wp?acamy 10$, w?wczas zamiast doda? (60$) otrzymamy na koncie 10$, bynajmniej tak mi si? wydaje - sprawd? to i daj zna?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-11-11, 20:41


Porucznik







Wiek: 30
Na forum: 5010 dni
Posty: 33
Nick w MP: Porucznik

Piwa: 1

Respekt: 50

Dzi?ki za pomoc. Rzeczywi?cie tak b?dzie. Kodu na razie jeszcze nie testowa?em, bo jestem po za komputerem ale wydaje si? w porz?dku. Masz racj? zapomnia?em o dodawaniu.
Czy tak b?dzie dobrze?

Kod:

format(bankbufwplac, sizeof(bankbufwplac), "UPDATE `Gracze` SET `Bank_kasa` = `Bank_kasa`+ '%d' WHERE `Nick`='%s'", wplactyle, PlayerName(playerid));


[ Dodano: 2013-11-12, 19:20 ]
Ok dzia?a. Mam jeszcze jeden problem. Chc? zrobi?, ?eby sprawdza?o ile ma kasy. Jak za ma?o to nie powinno wp?aci?. Zrobi?em tak:

Kod:

if(dialogid == BANK_WPLAC)
{


if(!response)
return SendClientMessage(playerid, 0xB0B0B0AA, "Anulowa?e?...");
if(!IsNull(inputtext) )
{
new wplactyle = strval(inputtext);
new bankbufwplac[127];
if(GetPlayerMoney(playerid) <= 0)
{
SendClientMessage(playerid, 0xFF0000AA, "Nie masz tyle pieni?dzy");
return 0;
}
format(bankbufwplac, sizeof(bankbufwplac), "UPDATE `Gracze` SET `Bank_kasa` = `Bank_kasa`+ '%d' WHERE `Nick`='%s'", wplactyle, PlayerName(playerid));
SendClientMessage(playerid, 0xFF0000, "Wp?aci?e? pieni?dze na konto!");
GivePlayerMoney(playerid, - wplactyle);
mysql_query(bankbufwplac);
}

if(IsNull(inputtext))
{
SendClientMessage(playerid, 0xFF0000FF, "To pole nie mo?e by? puste!");
return 0;
}
}


Lecz nawet jak nie ma tyle gracz do dodaje do bazy. Jak to naprawi??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-11-15, 16:08


mishek







Wiek: 30
Na forum: 5272 dni
Posty: 33
Nick w MP: mishek

Piwa: 7

Respekt: 50

robisz po prostu warunek, ?e je?eli wpisana kwota przez gracza jest wi?ksza ni? ta kt?r? ma w "portfelu" to wyskakuje komunikat. Co? w ten dese?:

Kod:

if(wplactyle > GetPlayerMoney(playerid))


Pozdrawiam. ;)

Postaw piwo autorowi tego posta
 

 
Tagi: źle :: dodaje :: kasę :: banku
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku