Best way to detect money hacks
#1

Hello, I have a anti money hack, but it's not really the best, as it is server side, but when players use Pay n Spray they get detected for money hack and the same goes with stuff like ammunation and food places, i know i am able to remove and make my own ammunation and food places, but the pay and spray is the bit that's annoying, I would love the players to use pay n spray and the transfender. If you know anyway maybe to make the anti cheat work for these, that would be epic! I don't mind of ammunation nor food place as i am planing to make my own. but Pay n spray and transfender would be epic to use. If you have any better ways of detecting money hack, please suggest and example how to make them!

pawn Код:
stock GivePlayerCash(playerid, money)
{
    Cash[playerid] += money;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid,Cash[playerid]);
    return Cash[playerid];
}
stock SetPlayerCash(playerid, money)
{
    Cash[playerid] = money;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid,Cash[playerid]);
    return Cash[playerid];
}
stock ResetPlayerCash(playerid)
{
    Cash[playerid] = 0;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid,Cash[playerid]);
    return Cash[playerid];
}
stock GetPlayerCash(playerid)
{
    return Cash[playerid];
}
Reply
#2

You could just only check if the player has more money then the serverside cash...

or you could put some code in OnVehicleRespray, OnVehicleMod and OnVehiclePaintjob to check if the player bought some item in the modshops or pay n spray and subtract these costs from the server-side cash.
Reply
#3

look at my post in this link
http://forum.sa-mp.com/showpost.php?...03&postcount=3
use functions...
i explained it
good luck
Reply
#4

If you want to still take money for Pay'n'Spray and mods shop.
Код:
public OnVehicleRespray(playerid,vehicleid,color1,color2)
{
	if(GetPlayerCash(playerid) < /*CostForChangeColor*/) return 0; else GivePlayerCash(playerid,-/*CostForChangeColor*/); //Only works when color changed in mods shop
	//Fix: http://pastebin.com/zX96D4dA
	return 1;
}

public OnVehiclePaintjob(playerid,vehicleid,paintjobid)
{
	if(GetPlayerCash(playerid) < /*CostForChangePaintJob*//) return 0; else GivePlayerCash(playerid,-/*CostForChangePaintJob*/);
	return 1;
}

public OnVehicleMod(playerid,vehicleid,componentid)
{
	switch(componentid)
	{
		case 1018: if(GetPlayerCash(playerid) < 350) return 0; else GivePlayerCash(playerid,-350);
		case 1019: if(GetPlayerCash(playerid) < 300) return 0; else GivePlayerCash(playerid,-300);
		case 1020: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
		case 1021: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
		case 1022: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
		case 1028: if(GetPlayerCash(playerid) < 770) return 0; else GivePlayerCash(playerid,-770);
		case 1029: if(GetPlayerCash(playerid) < 680) return 0; else GivePlayerCash(playerid,-680);
		case 1034: if(GetPlayerCash(playerid) < 790) return 0; else GivePlayerCash(playerid,-790);
		case 1037: if(GetPlayerCash(playerid) < 690) return 0; else GivePlayerCash(playerid,-690);
		case 1043: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
		case 1044: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
		case 1045: if(GetPlayerCash(playerid) < 510) return 0; else GivePlayerCash(playerid,-510);
		case 1046: if(GetPlayerCash(playerid) < 710) return 0; else GivePlayerCash(playerid,-710);
		case 1059: if(GetPlayerCash(playerid) < 720) return 0; else GivePlayerCash(playerid,-720);
		case 1064: if(GetPlayerCash(playerid) < 830) return 0; else GivePlayerCash(playerid,-830);
		case 1065: if(GetPlayerCash(playerid) < 850) return 0; else GivePlayerCash(playerid,-850);
		case 1066: if(GetPlayerCash(playerid) < 750) return 0; else GivePlayerCash(playerid,-750);
		case 1089: if(GetPlayerCash(playerid) < 650) return 0; else GivePlayerCash(playerid,-650);
		case 1092: if(GetPlayerCash(playerid) < 750) return 0; else GivePlayerCash(playerid,-750);
		case 1104: if(GetPlayerCash(playerid) < 1610) return 0; else GivePlayerCash(playerid,-1610);
		case 1105: if(GetPlayerCash(playerid) < 1540) return 0; else GivePlayerCash(playerid,-1540);
		case 1113: if(GetPlayerCash(playerid) < 3340) return 0; else GivePlayerCash(playerid,-3340);
		case 1114: if(GetPlayerCash(playerid) < 3250) return 0; else GivePlayerCash(playerid,-3250);
		case 1126: if(GetPlayerCash(playerid) < 3340) return 0; else GivePlayerCash(playerid,-3340);
		case 1127: if(GetPlayerCash(playerid) < 3250) return 0; else GivePlayerCash(playerid,-3250);
		case 1129: if(GetPlayerCash(playerid) < 1650) return 0; else GivePlayerCash(playerid,-1650);
		case 1132: if(GetPlayerCash(playerid) < 1590) return 0; else GivePlayerCash(playerid,-1590);
		case 1135: if(GetPlayerCash(playerid) < 1500) return 0; else GivePlayerCash(playerid,-1500);
		case 1136: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1004: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
		case 1005: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
		case 1011: if(GetPlayerCash(playerid) < 220) return 0; else GivePlayerCash(playerid,-220);
		case 1012: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
		case 1117: if(GetPlayerCash(playerid) < 2130) return 0; else GivePlayerCash(playerid,-2130);
		case 1152: if(GetPlayerCash(playerid) < 910) return 0; else GivePlayerCash(playerid,-910);
		case 1153: if(GetPlayerCash(playerid) < 1200) return 0; else GivePlayerCash(playerid,-1200);
		case 1155: if(GetPlayerCash(playerid) < 1030) return 0; else GivePlayerCash(playerid,-1030);
		case 1157: if(GetPlayerCash(playerid) < 930) return 0; else GivePlayerCash(playerid,-930);
		case 1160: if(GetPlayerCash(playerid) < 1050) return 0; else GivePlayerCash(playerid,-1050);
		case 1165: if(GetPlayerCash(playerid) < 850) return 0; else GivePlayerCash(playerid,-850);
		case 1166: if(GetPlayerCash(playerid) < 950) return 0; else GivePlayerCash(playerid,-950);
		case 1169: if(GetPlayerCash(playerid) < 970) return 0; else GivePlayerCash(playerid,-970);
		case 1170: if(GetPlayerCash(playerid) < 880) return 0; else GivePlayerCash(playerid,-880);
		case 1171: if(GetPlayerCash(playerid) < 990) return 0; else GivePlayerCash(playerid,-990);
		case 1172: if(GetPlayerCash(playerid) < 900) return 0; else GivePlayerCash(playerid,-900);
		case 1173: if(GetPlayerCash(playerid) < 950) return 0; else GivePlayerCash(playerid,-950);
		case 1174: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-100);
		case 1175: if(GetPlayerCash(playerid) < 900) return 0; else GivePlayerCash(playerid,-900);
		case 1179: if(GetPlayerCash(playerid) < 2150) return 0; else GivePlayerCash(playerid,-2150);
		case 1181: if(GetPlayerCash(playerid) < 2050) return 0; else GivePlayerCash(playerid,-2050);
		case 1182: if(GetPlayerCash(playerid) < 2130) return 0; else GivePlayerCash(playerid,-2130);
		case 1185: if(GetPlayerCash(playerid) < 2040) return 0; else GivePlayerCash(playerid,-2040);
		case 1188: if(GetPlayerCash(playerid) < 2080) return 0; else GivePlayerCash(playerid,-2080);
		case 1189: if(GetPlayerCash(playerid) < 2200) return 0; else GivePlayerCash(playerid,-2200);
		case 1190: if(GetPlayerCash(playerid) < 1200) return 0; else GivePlayerCash(playerid,-1200);
		case 1191: if(GetPlayerCash(playerid) < 1040) return 0; else GivePlayerCash(playerid,-1040);
		case 1140: if(GetPlayerCash(playerid) < 870) return 0; else GivePlayerCash(playerid,-870);
		case 1141: if(GetPlayerCash(playerid) < 980) return 0; else GivePlayerCash(playerid,-980);
		case 1148: if(GetPlayerCash(playerid) < 890) return 0; else GivePlayerCash(playerid,-890);
		case 1149: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1150: if(GetPlayerCash(playerid) < 1090) return 0; else GivePlayerCash(playerid,-1090);
		case 1151: if(GetPlayerCash(playerid) < 840) return 0; else GivePlayerCash(playerid,-840);
		case 1154: if(GetPlayerCash(playerid) < 1030) return 0; else GivePlayerCash(playerid,-1030);
		case 1156: if(GetPlayerCash(playerid) < 920) return 0; else GivePlayerCash(playerid,-920);
		case 1159: if(GetPlayerCash(playerid) < 1050) return 0; else GivePlayerCash(playerid,-1050);
		case 1161: if(GetPlayerCash(playerid) < 950) return 0; else GivePlayerCash(playerid,-950);
		case 1167: if(GetPlayerCash(playerid) < 850) return 0; else GivePlayerCash(playerid,-850);
		case 1168: if(GetPlayerCash(playerid) < 950) return 0; else GivePlayerCash(playerid,-950);
		case 1176: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1177: if(GetPlayerCash(playerid) < 900) return 0; else GivePlayerCash(playerid,-900);
		case 1178: if(GetPlayerCash(playerid) < 2050) return 0; else GivePlayerCash(playerid,-2050);
		case 1180: if(GetPlayerCash(playerid) < 2130) return 0; else GivePlayerCash(playerid,-2130);
		case 1183: if(GetPlayerCash(playerid) < 2040) return 0; else GivePlayerCash(playerid,-2040);
		case 1184: if(GetPlayerCash(playerid) < 2150) return 0; else GivePlayerCash(playerid,-2175);
		case 1186: if(GetPlayerCash(playerid) < 2095) return 0; else GivePlayerCash(playerid,-2095);
		case 1187: if(GetPlayerCash(playerid) < 2175) return 0; else GivePlayerCash(playerid,-2175);
		case 1192: if(GetPlayerCash(playerid) < 940) return 0; else GivePlayerCash(playerid,-940);
		case 1193: if(GetPlayerCash(playerid) < 1100) return 0; else GivePlayerCash(playerid,-1100);
		case 1006: if(GetPlayerCash(playerid) < 80) return 0; else GivePlayerCash(playerid,-80);
		case 1128: if(GetPlayerCash(playerid) < 3340) return 0; else GivePlayerCash(playerid,-3340);
		case 1130: if(GetPlayerCash(playerid) < 3380) return 0; else GivePlayerCash(playerid,-3380);
		case 1131: if(GetPlayerCash(playerid) < 3290) return 0; else GivePlayerCash(playerid,-3290);
		case 1103: if(GetPlayerCash(playerid) < 3250) return 0; else GivePlayerCash(playerid,-3250);
		case 1032: if(GetPlayerCash(playerid) < 170) return 0; else GivePlayerCash(playerid,-170);
		case 1033: if(GetPlayerCash(playerid) < 120) return 0; else GivePlayerCash(playerid,-120);
		case 1035: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
		case 1038: if(GetPlayerCash(playerid) < 190) return 0; else GivePlayerCash(playerid,-190);
		case 1053: if(GetPlayerCash(playerid) < 130) return 0; else GivePlayerCash(playerid,-130);
		case 1054: if(GetPlayerCash(playerid) < 210) return 0; else GivePlayerCash(playerid,-210);
		case 1055: if(GetPlayerCash(playerid) < 230) return 0; else GivePlayerCash(playerid,-230);
		case 1061: if(GetPlayerCash(playerid) < 180) return 0; else GivePlayerCash(playerid,-180);
		case 1067: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
		case 1068: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
		case 1088: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
		case 1091: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
		case 1000: if(GetPlayerCash(playerid) < 400) return 0; else GivePlayerCash(playerid,-400);
		case 1001: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
		case 1002: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
		case 1003: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
		case 1014: if(GetPlayerCash(playerid) < 400) return 0; else GivePlayerCash(playerid,-400);
		case 1015: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
		case 1016: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
		case 1023: if(GetPlayerCash(playerid) < 350) return 0; else GivePlayerCash(playerid,-350);
		case 1049: if(GetPlayerCash(playerid) < 810) return 0; else GivePlayerCash(playerid,-810);
		case 1050: if(GetPlayerCash(playerid) < 620) return 0; else GivePlayerCash(playerid,-620);
		case 1058: if(GetPlayerCash(playerid) < 620) return 0; else GivePlayerCash(playerid,-620);
		case 1060: if(GetPlayerCash(playerid) < 530) return 0; else GivePlayerCash(playerid,-530);
		case 1138: if(GetPlayerCash(playerid) < 580) return 0; else GivePlayerCash(playerid,-580);
		case 1139: if(GetPlayerCash(playerid) < 470) return 0; else GivePlayerCash(playerid,-470);
		case 1146: if(GetPlayerCash(playerid) < 490) return 0; else GivePlayerCash(playerid,-490);
		case 1147: if(GetPlayerCash(playerid) < 600) return 0; else GivePlayerCash(playerid,-600);
		case 1158: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
		case 1162: if(GetPlayerCash(playerid) < 650) return 0; else GivePlayerCash(playerid,-650);
		case 1163: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
		case 1164: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
		case 1007: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
		case 1017: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
		case 1026: if(GetPlayerCash(playerid) < 480) return 0; else GivePlayerCash(playerid,-480);
		case 1027: if(GetPlayerCash(playerid) < 480) return 0; else GivePlayerCash(playerid,-480);
		case 1030: if(GetPlayerCash(playerid) < 370) return 0; else GivePlayerCash(playerid,-370);
		case 1031: if(GetPlayerCash(playerid) < 370) return 0; else GivePlayerCash(playerid,-370);
		case 1036: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
		case 1039: if(GetPlayerCash(playerid) < 390) return 0; else GivePlayerCash(playerid,-390);
		case 1040: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
		case 1041: if(GetPlayerCash(playerid) < 390) return 0; else GivePlayerCash(playerid,-390);
		case 1042: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1047: if(GetPlayerCash(playerid) < 670) return 0; else GivePlayerCash(playerid,-670);
		case 1048: if(GetPlayerCash(playerid) < 530) return 0; else GivePlayerCash(playerid,-530);
		case 1051: if(GetPlayerCash(playerid) < 670) return 0; else GivePlayerCash(playerid,-670);
		case 1052: if(GetPlayerCash(playerid) < 530) return 0; else GivePlayerCash(playerid,-530);
		case 1056: if(GetPlayerCash(playerid) < 520) return 0; else GivePlayerCash(playerid,-520);
		case 1057: if(GetPlayerCash(playerid) < 430) return 0; else GivePlayerCash(playerid,-430);
		case 1062: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
		case 1063: if(GetPlayerCash(playerid) < 430) return 0; else GivePlayerCash(playerid,-450);
		case 1069: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
		case 1070: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
		case 1071: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
		case 1072: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
		case 1090: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
		case 1093: if(GetPlayerCash(playerid) < 350) return 0; else GivePlayerCash(playerid,-350);
		case 1094: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
		case 1095: if(GetPlayerCash(playerid) < 350) return 0; else GivePlayerCash(playerid,-350);
		case 1099: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1101: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
		case 1102: if(GetPlayerCash(playerid) < 830) return 0; else GivePlayerCash(playerid,-830);
		case 1106: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
		case 1107: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
		case 1108: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
		case 1118: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
		case 1119: if(GetPlayerCash(playerid) < 940) return 0; else GivePlayerCash(playerid,-940);
		case 1120: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
		case 1121: if(GetPlayerCash(playerid) < 940) return 0; else GivePlayerCash(playerid,-940);
		case 1122: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
		case 1124: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
		case 1133: if(GetPlayerCash(playerid) < 830) return 0; else GivePlayerCash(playerid,-830);
		case 1134: if(GetPlayerCash(playerid) < 800) return 0; else GivePlayerCash(playerid,-800);
		case 1137: if(GetPlayerCash(playerid) < 800) return 0; else GivePlayerCash(playerid,-800);
		case 1013: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
		case 1024: if(GetPlayerCash(playerid) < 50) return 0; else GivePlayerCash(playerid,-50);
		case 1142: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
		case 1143: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
		case 1144: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
		case 1145: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
		case 1025: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1073: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1074: if(GetPlayerCash(playerid) < 1030) return 0; else GivePlayerCash(playerid,-1030);
		case 1075: if(GetPlayerCash(playerid) < 980) return 0; else GivePlayerCash(playerid,-980);
		case 1076: if(GetPlayerCash(playerid) < 1560) return 0; else GivePlayerCash(playerid,-1560);
		case 1077: if(GetPlayerCash(playerid) < 1620) return 0; else GivePlayerCash(playerid,-1620);
		case 1078: if(GetPlayerCash(playerid) < 1200) return 0; else GivePlayerCash(playerid,-1200);
		case 1079: if(GetPlayerCash(playerid) < 1030) return 0; else GivePlayerCash(playerid,-1030);
		case 1080: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1081: if(GetPlayerCash(playerid) < 1230) return 0; else GivePlayerCash(playerid,-1230);
		case 1082: if(GetPlayerCash(playerid) < 820) return 0; else GivePlayerCash(playerid,-820);
		case 1083: if(GetPlayerCash(playerid) < 1560) return 0; else GivePlayerCash(playerid,-1560);
		case 1084: if(GetPlayerCash(playerid) < 1350) return 0; else GivePlayerCash(playerid,-1350);
		case 1085: if(GetPlayerCash(playerid) < 770) return 0; else GivePlayerCash(playerid,-770);
		case 1096: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1097: if(GetPlayerCash(playerid) < 620) return 0; else GivePlayerCash(playerid,-620);
		case 1098: if(GetPlayerCash(playerid) < 1140) return 0; else GivePlayerCash(playerid,-1140);
		case 1008: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
		case 1009: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
		case 1010: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
		case 1086: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
		case 1087: if(GetPlayerCash(playerid) < 1500) return 0; else GivePlayerCash(playerid,-1500);
		case 1100: if(GetPlayerCash(playerid) < 940) return 0; else GivePlayerCash(playerid,-940);
		case 1123: if(GetPlayerCash(playerid) < 860) return 0; else GivePlayerCash(playerid,-860);
		case 1125: if(GetPlayerCash(playerid) < 1120) return 0; else GivePlayerCash(playerid,-1120);
		case 1109: if(GetPlayerCash(playerid) < 1610) return 0; else GivePlayerCash(playerid,-1610);
		case 1110: if(GetPlayerCash(playerid) < 1540) return 0; else GivePlayerCash(playerid,-1540);
		case 1115: if(GetPlayerCash(playerid) < 2130) return 0; else GivePlayerCash(playerid,-2130);
		case 1116: if(GetPlayerCash(playerid) < 2050) return 0; else GivePlayerCash(playerid,-2050);
	}
	return 1;
}
Read comments.
Reply
#5

But won't take also take the real money from the player (Double amount) but also get a warning for using money hack
If you want to still take money for Pay'n'Spray and mods shop.
Quote:

Code:
public OnVehicleRespray(playerid,vehicleid,color1,color2)
{
if(GetPlayerCash(playerid) < /*CostForChangeColor*/) return 0; else GivePlayerCash(playerid,-/*CostForChangeColor*/); //Only works when color changed in mods shop
//Fix: http://pastebin.com/zX96D4dA
return 1;
}

public OnVehiclePaintjob(playerid,vehicleid,paintjobid)
{
if(GetPlayerCash(playerid) < /*CostForChangePaintJob*//) return 0; else GivePlayerCash(playerid,-/*CostForChangePaintJob*/);
return 1;
}

public OnVehicleMod(playerid,vehicleid,componentid)
{
switch(componentid)
{
case 1018: if(GetPlayerCash(playerid) < 350) return 0; else GivePlayerCash(playerid,-350);
case 1019: if(GetPlayerCash(playerid) < 300) return 0; else GivePlayerCash(playerid,-300);
case 1020: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
case 1021: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
case 1022: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
case 1028: if(GetPlayerCash(playerid) < 770) return 0; else GivePlayerCash(playerid,-770);
case 1029: if(GetPlayerCash(playerid) < 680) return 0; else GivePlayerCash(playerid,-680);
case 1034: if(GetPlayerCash(playerid) < 790) return 0; else GivePlayerCash(playerid,-790);
case 1037: if(GetPlayerCash(playerid) < 690) return 0; else GivePlayerCash(playerid,-690);
case 1043: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
case 1044: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
case 1045: if(GetPlayerCash(playerid) < 510) return 0; else GivePlayerCash(playerid,-510);
case 1046: if(GetPlayerCash(playerid) < 710) return 0; else GivePlayerCash(playerid,-710);
case 1059: if(GetPlayerCash(playerid) < 720) return 0; else GivePlayerCash(playerid,-720);
case 1064: if(GetPlayerCash(playerid) < 830) return 0; else GivePlayerCash(playerid,-830);
case 1065: if(GetPlayerCash(playerid) < 850) return 0; else GivePlayerCash(playerid,-850);
case 1066: if(GetPlayerCash(playerid) < 750) return 0; else GivePlayerCash(playerid,-750);
case 1089: if(GetPlayerCash(playerid) < 650) return 0; else GivePlayerCash(playerid,-650);
case 1092: if(GetPlayerCash(playerid) < 750) return 0; else GivePlayerCash(playerid,-750);
case 1104: if(GetPlayerCash(playerid) < 1610) return 0; else GivePlayerCash(playerid,-1610);
case 1105: if(GetPlayerCash(playerid) < 1540) return 0; else GivePlayerCash(playerid,-1540);
case 1113: if(GetPlayerCash(playerid) < 3340) return 0; else GivePlayerCash(playerid,-3340);
case 1114: if(GetPlayerCash(playerid) < 3250) return 0; else GivePlayerCash(playerid,-3250);
case 1126: if(GetPlayerCash(playerid) < 3340) return 0; else GivePlayerCash(playerid,-3340);
case 1127: if(GetPlayerCash(playerid) < 3250) return 0; else GivePlayerCash(playerid,-3250);
case 1129: if(GetPlayerCash(playerid) < 1650) return 0; else GivePlayerCash(playerid,-1650);
case 1132: if(GetPlayerCash(playerid) < 1590) return 0; else GivePlayerCash(playerid,-1590);
case 1135: if(GetPlayerCash(playerid) < 1500) return 0; else GivePlayerCash(playerid,-1500);
case 1136: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1004: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
case 1005: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
case 1011: if(GetPlayerCash(playerid) < 220) return 0; else GivePlayerCash(playerid,-220);
case 1012: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
case 1117: if(GetPlayerCash(playerid) < 2130) return 0; else GivePlayerCash(playerid,-2130);
case 1152: if(GetPlayerCash(playerid) < 910) return 0; else GivePlayerCash(playerid,-910);
case 1153: if(GetPlayerCash(playerid) < 1200) return 0; else GivePlayerCash(playerid,-1200);
case 1155: if(GetPlayerCash(playerid) < 1030) return 0; else GivePlayerCash(playerid,-1030);
case 1157: if(GetPlayerCash(playerid) < 930) return 0; else GivePlayerCash(playerid,-930);
case 1160: if(GetPlayerCash(playerid) < 1050) return 0; else GivePlayerCash(playerid,-1050);
case 1165: if(GetPlayerCash(playerid) < 850) return 0; else GivePlayerCash(playerid,-850);
case 1166: if(GetPlayerCash(playerid) < 950) return 0; else GivePlayerCash(playerid,-950);
case 1169: if(GetPlayerCash(playerid) < 970) return 0; else GivePlayerCash(playerid,-970);
case 1170: if(GetPlayerCash(playerid) < 880) return 0; else GivePlayerCash(playerid,-880);
case 1171: if(GetPlayerCash(playerid) < 990) return 0; else GivePlayerCash(playerid,-990);
case 1172: if(GetPlayerCash(playerid) < 900) return 0; else GivePlayerCash(playerid,-900);
case 1173: if(GetPlayerCash(playerid) < 950) return 0; else GivePlayerCash(playerid,-950);
case 1174: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-100);
case 1175: if(GetPlayerCash(playerid) < 900) return 0; else GivePlayerCash(playerid,-900);
case 1179: if(GetPlayerCash(playerid) < 2150) return 0; else GivePlayerCash(playerid,-2150);
case 1181: if(GetPlayerCash(playerid) < 2050) return 0; else GivePlayerCash(playerid,-2050);
case 1182: if(GetPlayerCash(playerid) < 2130) return 0; else GivePlayerCash(playerid,-2130);
case 1185: if(GetPlayerCash(playerid) < 2040) return 0; else GivePlayerCash(playerid,-2040);
case 1188: if(GetPlayerCash(playerid) < 2080) return 0; else GivePlayerCash(playerid,-2080);
case 1189: if(GetPlayerCash(playerid) < 2200) return 0; else GivePlayerCash(playerid,-2200);
case 1190: if(GetPlayerCash(playerid) < 1200) return 0; else GivePlayerCash(playerid,-1200);
case 1191: if(GetPlayerCash(playerid) < 1040) return 0; else GivePlayerCash(playerid,-1040);
case 1140: if(GetPlayerCash(playerid) < 870) return 0; else GivePlayerCash(playerid,-870);
case 1141: if(GetPlayerCash(playerid) < 980) return 0; else GivePlayerCash(playerid,-980);
case 1148: if(GetPlayerCash(playerid) < 890) return 0; else GivePlayerCash(playerid,-890);
case 1149: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1150: if(GetPlayerCash(playerid) < 1090) return 0; else GivePlayerCash(playerid,-1090);
case 1151: if(GetPlayerCash(playerid) < 840) return 0; else GivePlayerCash(playerid,-840);
case 1154: if(GetPlayerCash(playerid) < 1030) return 0; else GivePlayerCash(playerid,-1030);
case 1156: if(GetPlayerCash(playerid) < 920) return 0; else GivePlayerCash(playerid,-920);
case 1159: if(GetPlayerCash(playerid) < 1050) return 0; else GivePlayerCash(playerid,-1050);
case 1161: if(GetPlayerCash(playerid) < 950) return 0; else GivePlayerCash(playerid,-950);
case 1167: if(GetPlayerCash(playerid) < 850) return 0; else GivePlayerCash(playerid,-850);
case 1168: if(GetPlayerCash(playerid) < 950) return 0; else GivePlayerCash(playerid,-950);
case 1176: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1177: if(GetPlayerCash(playerid) < 900) return 0; else GivePlayerCash(playerid,-900);
case 1178: if(GetPlayerCash(playerid) < 2050) return 0; else GivePlayerCash(playerid,-2050);
case 1180: if(GetPlayerCash(playerid) < 2130) return 0; else GivePlayerCash(playerid,-2130);
case 1183: if(GetPlayerCash(playerid) < 2040) return 0; else GivePlayerCash(playerid,-2040);
case 1184: if(GetPlayerCash(playerid) < 2150) return 0; else GivePlayerCash(playerid,-2175);
case 1186: if(GetPlayerCash(playerid) < 2095) return 0; else GivePlayerCash(playerid,-2095);
case 1187: if(GetPlayerCash(playerid) < 2175) return 0; else GivePlayerCash(playerid,-2175);
case 1192: if(GetPlayerCash(playerid) < 940) return 0; else GivePlayerCash(playerid,-940);
case 1193: if(GetPlayerCash(playerid) < 1100) return 0; else GivePlayerCash(playerid,-1100);
case 1006: if(GetPlayerCash(playerid) < 80) return 0; else GivePlayerCash(playerid,-80);
case 1128: if(GetPlayerCash(playerid) < 3340) return 0; else GivePlayerCash(playerid,-3340);
case 1130: if(GetPlayerCash(playerid) < 3380) return 0; else GivePlayerCash(playerid,-3380);
case 1131: if(GetPlayerCash(playerid) < 3290) return 0; else GivePlayerCash(playerid,-3290);
case 1103: if(GetPlayerCash(playerid) < 3250) return 0; else GivePlayerCash(playerid,-3250);
case 1032: if(GetPlayerCash(playerid) < 170) return 0; else GivePlayerCash(playerid,-170);
case 1033: if(GetPlayerCash(playerid) < 120) return 0; else GivePlayerCash(playerid,-120);
case 1035: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
case 1038: if(GetPlayerCash(playerid) < 190) return 0; else GivePlayerCash(playerid,-190);
case 1053: if(GetPlayerCash(playerid) < 130) return 0; else GivePlayerCash(playerid,-130);
case 1054: if(GetPlayerCash(playerid) < 210) return 0; else GivePlayerCash(playerid,-210);
case 1055: if(GetPlayerCash(playerid) < 230) return 0; else GivePlayerCash(playerid,-230);
case 1061: if(GetPlayerCash(playerid) < 180) return 0; else GivePlayerCash(playerid,-180);
case 1067: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
case 1068: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
case 1088: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
case 1091: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
case 1000: if(GetPlayerCash(playerid) < 400) return 0; else GivePlayerCash(playerid,-400);
case 1001: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
case 1002: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
case 1003: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
case 1014: if(GetPlayerCash(playerid) < 400) return 0; else GivePlayerCash(playerid,-400);
case 1015: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
case 1016: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
case 1023: if(GetPlayerCash(playerid) < 350) return 0; else GivePlayerCash(playerid,-350);
case 1049: if(GetPlayerCash(playerid) < 810) return 0; else GivePlayerCash(playerid,-810);
case 1050: if(GetPlayerCash(playerid) < 620) return 0; else GivePlayerCash(playerid,-620);
case 1058: if(GetPlayerCash(playerid) < 620) return 0; else GivePlayerCash(playerid,-620);
case 1060: if(GetPlayerCash(playerid) < 530) return 0; else GivePlayerCash(playerid,-530);
case 1138: if(GetPlayerCash(playerid) < 580) return 0; else GivePlayerCash(playerid,-580);
case 1139: if(GetPlayerCash(playerid) < 470) return 0; else GivePlayerCash(playerid,-470);
case 1146: if(GetPlayerCash(playerid) < 490) return 0; else GivePlayerCash(playerid,-490);
case 1147: if(GetPlayerCash(playerid) < 600) return 0; else GivePlayerCash(playerid,-600);
case 1158: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
case 1162: if(GetPlayerCash(playerid) < 650) return 0; else GivePlayerCash(playerid,-650);
case 1163: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
case 1164: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
case 1007: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
case 1017: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
case 1026: if(GetPlayerCash(playerid) < 480) return 0; else GivePlayerCash(playerid,-480);
case 1027: if(GetPlayerCash(playerid) < 480) return 0; else GivePlayerCash(playerid,-480);
case 1030: if(GetPlayerCash(playerid) < 370) return 0; else GivePlayerCash(playerid,-370);
case 1031: if(GetPlayerCash(playerid) < 370) return 0; else GivePlayerCash(playerid,-370);
case 1036: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
case 1039: if(GetPlayerCash(playerid) < 390) return 0; else GivePlayerCash(playerid,-390);
case 1040: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
case 1041: if(GetPlayerCash(playerid) < 390) return 0; else GivePlayerCash(playerid,-390);
case 1042: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1047: if(GetPlayerCash(playerid) < 670) return 0; else GivePlayerCash(playerid,-670);
case 1048: if(GetPlayerCash(playerid) < 530) return 0; else GivePlayerCash(playerid,-530);
case 1051: if(GetPlayerCash(playerid) < 670) return 0; else GivePlayerCash(playerid,-670);
case 1052: if(GetPlayerCash(playerid) < 530) return 0; else GivePlayerCash(playerid,-530);
case 1056: if(GetPlayerCash(playerid) < 520) return 0; else GivePlayerCash(playerid,-520);
case 1057: if(GetPlayerCash(playerid) < 430) return 0; else GivePlayerCash(playerid,-430);
case 1062: if(GetPlayerCash(playerid) < 250) return 0; else GivePlayerCash(playerid,-250);
case 1063: if(GetPlayerCash(playerid) < 430) return 0; else GivePlayerCash(playerid,-450);
case 1069: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
case 1070: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
case 1071: if(GetPlayerCash(playerid) < 550) return 0; else GivePlayerCash(playerid,-550);
case 1072: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
case 1090: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
case 1093: if(GetPlayerCash(playerid) < 350) return 0; else GivePlayerCash(playerid,-350);
case 1094: if(GetPlayerCash(playerid) < 450) return 0; else GivePlayerCash(playerid,-450);
case 1095: if(GetPlayerCash(playerid) < 350) return 0; else GivePlayerCash(playerid,-350);
case 1099: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1101: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
case 1102: if(GetPlayerCash(playerid) < 830) return 0; else GivePlayerCash(playerid,-830);
case 1106: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
case 1107: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
case 1108: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
case 1118: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
case 1119: if(GetPlayerCash(playerid) < 940) return 0; else GivePlayerCash(playerid,-940);
case 1120: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
case 1121: if(GetPlayerCash(playerid) < 940) return 0; else GivePlayerCash(playerid,-940);
case 1122: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
case 1124: if(GetPlayerCash(playerid) < 780) return 0; else GivePlayerCash(playerid,-780);
case 1133: if(GetPlayerCash(playerid) < 830) return 0; else GivePlayerCash(playerid,-830);
case 1134: if(GetPlayerCash(playerid) < 800) return 0; else GivePlayerCash(playerid,-800);
case 1137: if(GetPlayerCash(playerid) < 800) return 0; else GivePlayerCash(playerid,-800);
case 1013: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
case 1024: if(GetPlayerCash(playerid) < 50) return 0; else GivePlayerCash(playerid,-50);
case 1142: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
case 1143: if(GetPlayerCash(playerid) < 150) return 0; else GivePlayerCash(playerid,-150);
case 1144: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
case 1145: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
case 1025: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1073: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1074: if(GetPlayerCash(playerid) < 1030) return 0; else GivePlayerCash(playerid,-1030);
case 1075: if(GetPlayerCash(playerid) < 980) return 0; else GivePlayerCash(playerid,-980);
case 1076: if(GetPlayerCash(playerid) < 1560) return 0; else GivePlayerCash(playerid,-1560);
case 1077: if(GetPlayerCash(playerid) < 1620) return 0; else GivePlayerCash(playerid,-1620);
case 1078: if(GetPlayerCash(playerid) < 1200) return 0; else GivePlayerCash(playerid,-1200);
case 1079: if(GetPlayerCash(playerid) < 1030) return 0; else GivePlayerCash(playerid,-1030);
case 1080: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1081: if(GetPlayerCash(playerid) < 1230) return 0; else GivePlayerCash(playerid,-1230);
case 1082: if(GetPlayerCash(playerid) < 820) return 0; else GivePlayerCash(playerid,-820);
case 1083: if(GetPlayerCash(playerid) < 1560) return 0; else GivePlayerCash(playerid,-1560);
case 1084: if(GetPlayerCash(playerid) < 1350) return 0; else GivePlayerCash(playerid,-1350);
case 1085: if(GetPlayerCash(playerid) < 770) return 0; else GivePlayerCash(playerid,-770);
case 1096: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1097: if(GetPlayerCash(playerid) < 620) return 0; else GivePlayerCash(playerid,-620);
case 1098: if(GetPlayerCash(playerid) < 1140) return 0; else GivePlayerCash(playerid,-1140);
case 1008: if(GetPlayerCash(playerid) < 200) return 0; else GivePlayerCash(playerid,-200);
case 1009: if(GetPlayerCash(playerid) < 500) return 0; else GivePlayerCash(playerid,-500);
case 1010: if(GetPlayerCash(playerid) < 1000) return 0; else GivePlayerCash(playerid,-1000);
case 1086: if(GetPlayerCash(playerid) < 100) return 0; else GivePlayerCash(playerid,-100);
case 1087: if(GetPlayerCash(playerid) < 1500) return 0; else GivePlayerCash(playerid,-1500);
case 1100: if(GetPlayerCash(playerid) < 940) return 0; else GivePlayerCash(playerid,-940);
case 1123: if(GetPlayerCash(playerid) < 860) return 0; else GivePlayerCash(playerid,-860);
case 1125: if(GetPlayerCash(playerid) < 1120) return 0; else GivePlayerCash(playerid,-1120);
case 1109: if(GetPlayerCash(playerid) < 1610) return 0; else GivePlayerCash(playerid,-1610);
case 1110: if(GetPlayerCash(playerid) < 1540) return 0; else GivePlayerCash(playerid,-1540);
case 1115: if(GetPlayerCash(playerid) < 2130) return 0; else GivePlayerCash(playerid,-2130);
case 1116: if(GetPlayerCash(playerid) < 2050) return 0; else GivePlayerCash(playerid,-2050);
}
return 1;
}
Read comments.

Reply
#6

Just do this:
pawn Код:
enum pIno
{
    Money
};
new PlayerInfo[MAX_PLAYERS][pInfo];

stock GivePlayerMoney(playerid, amount)
{
    PlayerInfo[playerid][Money] = amount;
    return 1;
}

OnPlayerUpdate(playerid) // or your custom callback
{
    if(GetPlayerMoney(playerid) != PlayerInfo[playerid][Money])
        SetPlayerMoney(playerid, PlayerInfo[playerid][Money]);
    return 1;
}
In this case, cheaters may put any amount they want to their money, and this will change it to the server sided amount.
Reply
#7

Its easy to catch the stupid ones, because the FIRST thing they do is give themselves $999999999
Reply
#8

But then there's smart ones who give them self, lets say $1.000 every 1 minutes, abusing something like that would mean they can become rich on the server. Server sided money doesn't seem to work well with me, as I want my plays to be able to use Pay n spray.
Reply
#9

Quote:
Originally Posted by LeXuZ
Посмотреть сообщение
But then there's smart ones who give them self, lets say $1.000 every 1 minutes, abusing something like that would mean they can become rich on the server. Server sided money doesn't seem to work well with me, as I want my plays to be able to use Pay n spray.
Totally agreed, and back when my server was up I solved the problem by making everything free haha

(probably won't work with RP servers)

I guess in the end the BEST way to fix server side money exploits is to do away with money altogether and come up with a script-based currency (gold, credits, etc)
Reply
#10

Create another "money" system, and use GivePlayerMoney only to show the cash the player has.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)