GMLscripts.com

Discuss and collaborate on GML scripts
Invert

You are not logged in.

#1 2018-05-01 01:23:37

Shiek4d5
Member
Registered: 2018-05-01
Posts: 1

Cash System Without Limits (Old GM8 scripts)

Cash Create Event:

Expand/* This is designed to be added to a HUD object or player. It was designed for breaking the number barrier,
so players can earn cash up to a google without hitting the limit.
It may also be used for highscores and other counting methods.
*/
hundreds = 0;
Kilos = 0;
Megas = 0;
Gigas = 0;
Teras = 0;

cash_holding = 0; /*This is a temporary place holder for cash received or spent.
It is made to look like it is counting down while adding to or subtracting from your wallet.*/
cash_manage = 0;
//cash_countdown = 150; /* I made these into comments so the game does not read them, you may delete these lines if you have no use for them. */
//three = 20101;
units = 0;

Cash Step Event:

Expandif Teras<=0 && Gigas<=0 && Megas<=0 && Kilos<=0 && hundreds>=0
units = 0;
if Teras<=0 && Gigas<=0 && Megas<=0 && Kilos>0
units = 1;
if Teras<=0 && Gigas<=0 && Megas>0
units = 2;
if Teras<=0 && Gigas>0
units = 3;
if Teras>0
units = 4;

if hundreds>999
{
 hundreds -= 1000; //Brings "hundreds" back down to zero and adds one point to "Kilos".
 Kilos += 1;
}
if Kilos>999
{
 Kilos -= 1000;
 Megas += 1;
}
if Megas>999
{
 Megas -= 1000;
 Gigas += 1;
}
if Gigas>999
{
 Gigas -= 1000;
 Teras += 1;
}
if Teras>999
{
 Teras = 999;
}

if cash_manage = 1
{
 if cash_holding >= 1 && cash_holding < 10
 {
  cash_holding -= 1;
  hundreds += 1;
 }
 if cash_holding > 9 && cash_holding < 100
 {
  cash_holding -= 10;
  hundreds += 10;
 }
 if cash_holding > 99 && cash_holding < 1000
 {
  cash_holding -= 100;
  hundreds += 100;
 }
 if cash_holding > 999 && cash_holding < 10000
 {
  cash_holding -= 1000;
  Kilos += 1;
 }
 if cash_holding > 9999 && cash_holding < 100000
 {
  cash_holding -= 10000;
  Kilos += 10;
 }
 if cash_holding > 99999 && cash_holding < 1000000
 {
  cash_holding -= 100000;
  Kilos += 100;
 }
 if cash_holding > 999999 && cash_holding < 10000000
 {
  cash_holding -= 1000000;
  Megas += 1;
 }
 if cash_holding > 9999999 && cash_holding < 100000000
 {
  cash_holding -= 10000000;
  Megas += 10;
 }
 if cash_holding > 99999999 && cash_holding < 1000000000
 {
  cash_holding -= 100000000;
  Megas += 100;
 }
 if cash_holding > 999999999 && cash_holding < 10000000000
 {
  cash_holding -= 1000000000;
  Gigas += 1;
 }
 if cash_holding > 9999999999 && cash_holding < 100000000000
 {
  cash_holding -= 10000000000;
  Gigas += 10;
 }
 if cash_holding > 99999999999 && cash_holding < 1000000000000
 {
  cash_holding -= 100000000000;
  Gigas += 100;
 }
 if cash_holding > 999999999999 && cash_holding < 10000000000000
 {
  cash_holding -= 1000000000000;
  Teras += 1;
 }
 if cash_holding > 9999999999999 && cash_holding < 100000000000000
 {
  cash_holding -= 10000000000000;
  Teras += 10;
 }
 if cash_holding > 99999999999999 
 {
  cash_holding -= 100000000000000;
  Teras += 100;
 }
 if cash_holding <= 0 
 {
  cash_manage = 0;
 }
}

if cash_manage = 2
{
 if cash_holding >= 1 && cash_holding < 10
 {
  cash_holding -= 1;
  hundreds -= 1;
 }
 if cash_holding > 9 && cash_holding < 100
 {
  cash_holding -= 10;
  hundreds -= 10;
 }
 if cash_holding > 99 && cash_holding < 1000
 {
  cash_holding -= 100;
  hundreds -= 100;
 }
 if cash_holding <= 0 
 {
  cash_manage = 0;
 }
}

Cash Draw Event:

Expanddraw_set_font(font1); //You will need to create a font with this name or change this to one of your existing fonts.
draw_set_halign(fa_center);
draw_set_color(c_white);

//draw_text(view_xview+240,view_yview+40,"Units: "+string(units));
//draw_text(view_xview+240,view_yview+50,"Kilos: "+string(Kilos));
//draw_text(view_xview+240,view_yview+60,"Hold: "+string(cash_holding));
//draw_text(view_xview+240,view_yview+70,"Three: "+string(three));

switch(units)
{
case 0:
if hundreds<10 && hundreds>=0
draw_text(view_xview+560,view_yview+257,"Cash: 0.00"+string(hundreds)+"K")
if hundreds<100 && hundreds>=10
draw_text(view_xview+560,view_yview+257,"Cash: 0.0"+string(hundreds)+"K")
if hundreds<1000 && hundreds>=100
draw_text(view_xview+560,view_yview+257,"Cash: 0."+string(hundreds)+"K")
;break;

case 1:
if Kilos<10 && Kilos>=0
if hundreds<10 && hundreds>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Kilos)+"."+"00"+string(hundreds)+"K")
else
if Kilos<10 && Kilos>=0
if hundreds<100 && hundreds>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Kilos)+"."+"0"+string(hundreds)+"K")
else
if Kilos<10 && Kilos>=0
if hundreds<1000 && hundreds>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Kilos)+"."+""+string(hundreds)+"K")

if Kilos<100 && Kilos>=10
if hundreds<10 && hundreds>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Kilos)+"."+"00"+string(hundreds)+"K")
if Kilos<100 && Kilos>=10
if hundreds<100 && hundreds>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Kilos)+"."+"0"+string(hundreds)+"K")
if Kilos<100 && Kilos>=10
if hundreds<1000 && hundreds>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Kilos)+"."+""+string(hundreds)+"K")

if Kilos<1000 && Kilos>=100
if hundreds<10 && hundreds>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Kilos)+"."+"00"+string(hundreds)+"K")
if Kilos<1000 && Kilos>=100
if hundreds<100 && hundreds>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Kilos)+"."+"0"+string(hundreds)+"K")
if Kilos<1000 && Kilos>=100
if hundreds<1000 && hundreds>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Kilos)+"."+""+string(hundreds)+"K")
;break;

case 2:
if Megas<10 && Megas>=0 && Kilos<10 && Kilos>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Megas)+"."+"00"+string(Kilos)+"M")
if Megas<10 && Megas>=0 && Kilos<100 && Kilos>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Megas)+"."+"0"+string(Kilos)+"M")
if Megas<10 && Megas>=0 && Kilos<1000 && Kilos>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Megas)+"."+""+string(Kilos)+"M")

if Megas<100 && Megas>=10 && Kilos<10 && Kilos>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Megas)+"."+"00"+string(Kilos)+"M")
if Megas<100 && Megas>=10 && Kilos<100 && Kilos>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Megas)+"."+"0"+string(Kilos)+"M")
if Megas<100 && Megas>=10 && Kilos<1000 && Kilos>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Megas)+"."+""+string(Kilos)+"M")

if Megas<1000 && Megas>=100 && Kilos<10 && Kilos>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Megas)+"."+"00"+string(Kilos)+"M")
if Megas<1000 && Megas>=100 && Kilos<100 && Kilos>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Megas)+"."+"0"+string(Kilos)+"M")
if Megas<1000 && Megas>=100 && Kilos<1000 && Kilos>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Megas)+"."+""+string(Kilos)+"M")
;break;

case 3:
if Gigas<10 && Gigas>=0 && Megas<10 && Megas>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Gigas)+"."+"00"+string(Megas)+"B")
if Gigas<10 && Gigas>=0 && Megas<100 && Megas>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Gigas)+"."+"0"+string(Megas)+"B")
if Gigas<10 && Gigas>=0 && Megas<1000 && Megas>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Gigas)+"."+""+string(Megas)+"B")

if Gigas<100 && Gigas>=10 && Megas<10 && Megas>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Gigas)+"."+"00"+string(Megas)+"B")
if Gigas<100 && Gigas>=10 && Megas<100 && Megas>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Gigas)+"."+"0"+string(Megas)+"B")
if Gigas<100 && Gigas>=10 && Megas<1000 && Megas>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Gigas)+"."+""+string(Megas)+"B")

if Gigas<1000 && Gigas>=100 && Megas<10 && Megas>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Gigas)+"."+"00"+string(Megas)+"B")
if Gigas<1000 && Gigas>=100 && Megas<100 && Megas>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Gigas)+"."+"0"+string(Megas)+"B")
if Gigas<1000 && Gigas>=100 && Megas<1000 && Megas>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Gigas)+"."+""+string(Megas)+"B")
;break;

case 4:
if Teras<10 && Teras>=0 && Gigas<10 && Gigas>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Teras)+"."+"00"+string(Gigas)+"T")
if Teras<10 && Teras>=0 && Gigas<100 && Gigas>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Teras)+"."+"0"+string(Gigas)+"T")
if Teras<10 && Teras>=0 && Gigas<1000 && Gigas>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Teras)+"."+""+string(Gigas)+"T")

if Teras<100 && Teras>=10 && Gigas<10 && Gigas>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Teras)+"."+"00"+string(Gigas)+"T")
if Teras<100 && Teras>=10 && Gigas<100 && Gigas>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Teras)+"."+"0"+string(Gigas)+"T")
if Teras<100 && Teras>=10 && Gigas<1000 && Gigas>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Teras)+"."+""+string(Gigas)+"T")

if Teras<1000 && Teras>=100 && Gigas<10 && Gigas>=0
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Teras)+"."+"00"+string(Gigas)+"T")
if Teras<1000 && Teras>=100 && Gigas<100 && Gigas>=10
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Teras)+"."+"0"+string(Gigas)+"T")
if Teras<1000 && Teras>=100 && Gigas<1000 && Gigas>=100
draw_text(view_xview+560,view_yview+257,"Cash: "+string(Teras)+"."+""+string(Gigas)+"T")
;break;

}

Last edited by Shiek4d5 (2018-05-01 01:50:24)

Offline

#2 2018-06-14 14:56:45

lostdarkwolf
Member
Registered: 2015-11-19
Posts: 31

Re: Cash System Without Limits (Old GM8 scripts)

BUG LIST:
- google is a search engine. googol is a number.
- If cash_holding is negative, it doesn't get managed and cash_manage isn't updated. (Might be intentional.)
- nothing changes the cash_manage variable from zero. (Might be intentional.)
- stored money cannot go higher than 999000000000000, far below the alleged limit of 10^100.
- without the Terra limiter, stored money would safely cap at 9007199254740991000000000000, but once money in the bank exceeds 999000000000000, the money display either goes blank, or displays wrong values.
- cash_manage=1 is for adding to the bank, but cash_manage=2 is for subtracting from the bank, yet it can only work with hundreds, so you cannot subtract a "Kilo", or anything more than that. I doubt that this was intentional.
- if money in the bank goes negative (via cash_manage=2), the money display goes blank.

NOTES:
- cash_holding, as well as all other variables created in GM have a max safe integer limit of 9007199254740991.
- with all of these bugs, this code is only another way of displaying how much of whatever you have.

Last edited by lostdarkwolf (2018-06-14 14:57:10)

Offline

Board footer

Powered by FluxBB