Jump to content
  • 0

R>Script that will automatically reset all stats of all character?


Brynner

Question


  • Group:  Members
  • Topic Count:  118
  • Topics Per Day:  0.03
  • Content Count:  1942
  • Reputation:   197
  • Joined:  01/08/12
  • Last Seen:  

is it possible to make it work? because i noticed one of my gm adjusted the stats of some players i just want to make it automatically reset if the stats is not normal?specially on 99 max level only. the normal stats is 2 99 and 1 9.

ex.

str 99

agi 99

dex 9

which is normal.

and if the stats is

str 99

agi 99

dex 9

vit 50

it will bring back to normal stats. so it would be reset to 1.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  218
  • Topics Per Day:  0.05
  • Content Count:  1180
  • Reputation:   141
  • Joined:  01/27/12
  • Last Seen:  

This might help and would be easy to make an login check. Hopefully this helps you out some. I made it check any level character, probably shouldn't restrict it to 99 only.

 

Peopleperson49

 

-	script	LoginStatCheck	-1,{
end;

OnPCLoginEvent:
if(playerattached()==0) { end; }
if(getgmlevel()<1) {
	for(set .@i,13; .@i<=18; set .@i,.@i+1 )
		if(readparam(.@i)>99) {
			set .@MaxStat,.@MaxStat+1;
		}
		if(.@MaxStat>=3) {
			dispbottom "Your stats are not possible... Cheaters will be reset.";					atcommand "@allstats -100";
			set StatusPoint,0;
			atcommand "@request "+strcharinfo(0)+" was reset for cheating their stats!";
			end;
		}
}
end;
}

Edit:

Changed mes for dispbottom. 

Removed the sleep2 function.

Replaced using the resetlvl with @allstats -100 and statuspoint,0.

Edited by Peopleperson49
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  206
  • Reputation:   13
  • Joined:  11/20/11
  • Last Seen:  

Posted · Hidden by Capuche, August 17, 2013 - Not a proper reply
Hidden by Capuche, August 17, 2013 - Not a proper reply

OnPCLoginEvent:

//blah blah

Link to comment

  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  118
  • Topics Per Day:  0.03
  • Content Count:  1942
  • Reputation:   197
  • Joined:  01/08/12
  • Last Seen:  

Try the statpointcount's Brian function

http://rathena.org/board/topic/70252-anti-cheat-stats/?p=183729

 

when i try to run the script i got this error.

 

[Error]: Missing 1 right curlys at file 'npc/custom/stats_checker.txt', line '27
'.
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  218
  • Topics Per Day:  0.05
  • Content Count:  1180
  • Reputation:   141
  • Joined:  01/27/12
  • Last Seen:  

Make sure you copied all it from the code box. I get no error.

 

Peopleperson49

 

Edit: I changed mes to dispbottom. Removed the sleep2 function.

Edited by Peopleperson49
Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

Try the statpointcount's Brian function

http://rathena.org/board/topic/70252-anti-cheat-stats/?p=183729

 

when i try to run the script i got this error.

 

[Error]: Missing 1 right curlys at file 'npc/custom/stats_checker.txt', line '27
'.

 

To quote Brian

You could trigger this script with OnPCLoginEvent by replacing lines 3-40 with this:

=>

// http://rathena.org/board/topic/70252-anti-cheat-stats/

-	script	check_statpoints	-1,{
OnPCLoginEvent:
	if (getgmlevel() > 50) end;

	function pc_need_status_point; // src/map/pc.c
	function pc_maxparameter;
	function read_statpoint_table; // db/re/statpoint.txt OR db/pre-re/statpoint.txt

	set .@should_have, read_statpoint_table(BaseLevel) + ( Class&EAJ_UPPERMASK ? 52 : 0 );

	//==== statpointcount() ====================================================
	set .@actual_statpoint,
	pc_need_status_point(bStr, 1-readparam(bStr)) +
	pc_need_status_point(bAgi, 1-readparam(bAgi)) +
	pc_need_status_point(bVit, 1-readparam(bVit)) +
	pc_need_status_point(bInt, 1-readparam(bInt)) +
	pc_need_status_point(bDex, 1-readparam(bDex)) +
	pc_need_status_point(bLuk, 1-readparam(bLuk)) +
	StatusPoint;
	//==========================================================================

	if (.@actual_statpoint > .@should_have) {
		set .@name$, strcharinfo(0);
		mes "We have detected your stats are over the limit.";
		mes "You will be disconnected shortly. Please contact a GM.";
		atcommand "@kick " + .@name$;
		atcommand "@block " + .@name$;
		debugmes .@name$ + " was blocked for having more stat points than normal.";
		atcommand "@request <-- was blocked for having more stat points than normal.";
	}
	end;

function pc_need_status_point {
	set .@type, getarg(0);
	set .@val, getarg(1);
	
	if (.@val == 0)
		return 0;
	
	set .@low, readparam(.@type);
	
	if (.@low >= pc_maxparameter() && .@val > 0)
		return 0; // Official servers show '0' when max is reached
	
	set .@high, .@low + .@val;
	
	if (.@val < 0) {
		// swap(low, high);
		set .@TEMP, .@low;
		set .@low, .@high;
		set .@high, .@TEMP;
	}
	
	for ( ; .@low < .@high; set .@low, .@low +1) {
		if (checkre(0)) { // renewal status point cost formula
			set .@sp, .@sp + ((.@low < 100) ? (2 + (.@low - 1) / 10) : (16 + 4 * ((.@low - 100) / 5)));
		} else {
			set .@sp, .@sp + (( 1 + (.@low + 9) / 10 ));
		}
	}
	return .@sp;
}
function pc_maxparameter {
	return (
		( ((Class&EAJ_UPPERMASK) == EAJL_2_1|0x0A) || Class&EAJL_THIRD ? 
		(Class&EAJL_BABY ? getbattleflag("max_baby_third_parameter") : getbattleflag("max_third_parameter"))
		: (Class&EAJL_BABY ? getbattleflag("max_baby_parameter") : getbattleflag("max_parameter"))
		)
	);
}
function read_statpoint_table {
	if (checkre(0)) {
		// db/re/statpoint.txt
		switch (getarg(0)) {
			case   1:  return 48;
			case   2:  return 51;
			case   3:  return 54;
			case   4:  return 57;
			case   5:  return 60;
			case   6:  return 64;
			case   7:  return 68;
			case   8:  return 72;
			case   9:  return 76;
			case  10:  return 80;
			case  11:  return 85;
			case  12:  return 90;
			case  13:  return 95;
			case  14:  return 100;
			case  15:  return 105;
			case  16:  return 111;
			case  17:  return 117;
			case  18:  return 123;
			case  19:  return 129;
			case  20:  return 135;
			case  21:  return 142;
			case  22:  return 149;
			case  23:  return 156;
			case  24:  return 163;
			case  25:  return 170;
			case  26:  return 178;
			case  27:  return 186;
			case  28:  return 194;
			case  29:  return 202;
			case  30:  return 210;
			case  31:  return 219;
			case  32:  return 228;
			case  33:  return 237;
			case  34:  return 246;
			case  35:  return 255;
			case  36:  return 265;
			case  37:  return 275;
			case  38:  return 285;
			case  39:  return 295;
			case  40:  return 305;
			case  41:  return 316;
			case  42:  return 327;
			case  43:  return 338;
			case  44:  return 349;
			case  45:  return 360;
			case  46:  return 372;
			case  47:  return 384;
			case  48:  return 396;
			case  49:  return 408;
			case  50:  return 420;
			case  51:  return 433;
			case  52:  return 446;
			case  53:  return 459;
			case  54:  return 472;
			case  55:  return 485;
			case  56:  return 499;
			case  57:  return 513;
			case  58:  return 527;
			case  59:  return 541;
			case  60:  return 555;
			case  61:  return 570;
			case  62:  return 585;
			case  63:  return 600;
			case  64:  return 615;
			case  65:  return 630;
			case  66:  return 646;
			case  67:  return 662;
			case  68:  return 678;
			case  69:  return 694;
			case  70:  return 710;
			case  71:  return 727;
			case  72:  return 744;
			case  73:  return 761;
			case  74:  return 778;
			case  75:  return 795;
			case  76:  return 813;
			case  77:  return 831;
			case  78:  return 849;
			case  79:  return 867;
			case  80:  return 885;
			case  81:  return 904;
			case  82:  return 923;
			case  83:  return 942;
			case  84:  return 961;
			case  85:  return 980;
			case  86:  return 1000;
			case  87:  return 1020;
			case  88:  return 1040;
			case  89:  return 1060;
			case  90:  return 1080;
			case  91:  return 1101;
			case  92:  return 1122;
			case  93:  return 1143;
			case  94:  return 1164;
			case  95:  return 1185;
			case  96:  return 1207;
			case  97:  return 1229;
			case  98:  return 1251;
			case  99:  return 1273;
			case 100:  return 1295;
			case 101:  return 1318;
			case 102:  return 1341;
			case 103:  return 1364;
			case 104:  return 1387;
			case 105:  return 1410;
			case 106:  return 1433;
			case 107:  return 1456;
			case 108:  return 1479;
			case 109:  return 1502;
			case 110:  return 1525;
			case 111:  return 1549;
			case 112:  return 1573;
			case 113:  return 1597;
			case 114:  return 1621;
			case 115:  return 1645;
			case 116:  return 1669;
			case 117:  return 1693;
			case 118:  return 1717;
			case 119:  return 1741;
			case 120:  return 1765;
			case 121:  return 1790;
			case 122:  return 1815;
			case 123:  return 1840;
			case 124:  return 1865;
			case 125:  return 1890;
			case 126:  return 1915;
			case 127:  return 1940;
			case 128:  return 1965;
			case 129:  return 1990;
			case 130:  return 2015;
			case 131:  return 2041;
			case 132:  return 2067;
			case 133:  return 2093;
			case 134:  return 2119;
			case 135:  return 2145;
			case 136:  return 2171;
			case 137:  return 2197;
			case 138:  return 2223;
			case 139:  return 2249;
			case 140:  return 2275;
			case 141:  return 2302;
			case 142:  return 2329;
			case 143:  return 2356;
			case 144:  return 2383;
			case 145:  return 2410;
			case 146:  return 2437;
			case 147:  return 2464;
			case 148:  return 2491;
			case 149:  return 2518;
			case 150:  return 2545;
			case 151:  return 2574; // 2573.3;
			case 152:  return 2602; // 2601.6;
			case 153:  return 2630; // 2629.9;
			case 154:  return 2659; // 2658.2;
			case 155:  return 2687; // 2686.5;
			case 156:  return 2715; // 2714.8;
			case 157:  return 2744; // 2743.1;
			case 158:  return 2772; // 2771.4;
			case 159:  return 2800; // 2799.7;
			case 160:  return 2828;
			case 161:  return 2854;
			case 162:  return 2883;
			case 163:  return 2912;
			case 164:  return 2941;
			case 165:  return 2970;
			case 166:  return 2999;
			case 167:  return 3028;
			case 168:  return 3057;
			case 169:  return 3086;
			case 170:  return 3115;
			case 171:  return 3145;
			case 172:  return 3175;
			case 173:  return 3205;
			case 174:  return 3235;
			case 175:  return 3265;
			case 176:  return 3295;
			case 177:  return 3325;
			case 178:  return 3355;
			case 179:  return 3385;
			case 180:  return 3415;
			case 181:  return 3446;
			case 182:  return 3477;
			case 183:  return 3508;
			case 184:  return 3539;
			case 185:  return 3570;
			case 186:  return 3601;
			case 187:  return 3632;
			case 188:  return 3663;
			case 189:  return 3694;
			case 190:  return 3725;
			case 191:  return 3757;
			case 192:  return 3789;
			case 193:  return 3821;
			case 194:  return 3853;
			case 195:  return 3885;
			case 196:  return 3917;
			case 197:  return 3949;
			case 198:  return 3981;
			case 199:  return 4013;
			case 200:  return 4045;
			case 201:  return 4078;
			case 202:  return 4111;
			case 203:  return 4114;
			case 204:  return 4177;
			case 205:  return 4210;
			case 206:  return 4243;
			case 207:  return 4276;
			case 208:  return 4309;
			case 209:  return 4342;
			case 210:  return 4375;
			case 211:  return 4409;
			case 212:  return 4443;
			case 213:  return 4477;
			case 214:  return 4511;
			case 215:  return 4545;
			case 216:  return 4579;
			case 217:  return 4613;
			case 218:  return 4647;
			case 219:  return 4681;
			case 220:  return 4715;
			case 221:  return 4750;
			case 222:  return 4785;
			case 223:  return 4820;
			case 224:  return 4855;
			case 225:  return 4890;
			case 226:  return 4925;
			case 227:  return 4960;
			case 228:  return 5030;
			case 229:  return 5065;
			case 230:  return 5100;
			case 231:  return 5136;
			case 232:  return 5172;
			case 233:  return 5208;
			case 234:  return 5244;
			case 235:  return 5280;
			case 236:  return 5316;
			case 237:  return 5352;
			case 238:  return 5388;
			case 239:  return 5424;
			case 240:  return 5460;
			case 241:  return 5497;
			case 242:  return 5537;
			case 243:  return 5571;
			case 244:  return 5608;
			case 245:  return 5645;
			case 246:  return 5682;
			case 247:  return 5719;
			case 248:  return 5793;
			case 249:  return 5830;
			case 250:  return 5868;
			case 251:  return 5906;
			case 252:  return 5944;
			case 253:  return 5982;
			case 254:  return 6020;
			case 255:  return 6058;
		}
	} else {
		// db/pre-re/statpoint.txt
		switch (getarg(0)) {
			case   1:  return 48;
			case   2:  return 51;
			case   3:  return 54;
			case   4:  return 57;
			case   5:  return 60;
			case   6:  return 64;
			case   7:  return 68;
			case   8:  return 72;
			case   9:  return 76;
			case  10:  return 80;
			case  11:  return 85;
			case  12:  return 90;
			case  13:  return 95;
			case  14:  return 100;
			case  15:  return 105;
			case  16:  return 111;
			case  17:  return 117;
			case  18:  return 123;
			case  19:  return 129;
			case  20:  return 135;
			case  21:  return 142;
			case  22:  return 149;
			case  23:  return 156;
			case  24:  return 163;
			case  25:  return 170;
			case  26:  return 178;
			case  27:  return 186;
			case  28:  return 194;
			case  29:  return 202;
			case  30:  return 210;
			case  31:  return 219;
			case  32:  return 228;
			case  33:  return 237;
			case  34:  return 246;
			case  35:  return 255;
			case  36:  return 265;
			case  37:  return 275;
			case  38:  return 285;
			case  39:  return 295;
			case  40:  return 305;
			case  41:  return 316;
			case  42:  return 327;
			case  43:  return 338;
			case  44:  return 349;
			case  45:  return 360;
			case  46:  return 372;
			case  47:  return 384;
			case  48:  return 396;
			case  49:  return 408;
			case  50:  return 420;
			case  51:  return 433;
			case  52:  return 446;
			case  53:  return 459;
			case  54:  return 472;
			case  55:  return 485;
			case  56:  return 499;
			case  57:  return 513;
			case  58:  return 527;
			case  59:  return 541;
			case  60:  return 555;
			case  61:  return 570;
			case  62:  return 585;
			case  63:  return 600;
			case  64:  return 615;
			case  65:  return 630;
			case  66:  return 646;
			case  67:  return 662;
			case  68:  return 678;
			case  69:  return 694;
			case  70:  return 710;
			case  71:  return 727;
			case  72:  return 744;
			case  73:  return 761;
			case  74:  return 778;
			case  75:  return 795;
			case  76:  return 813;
			case  77:  return 831;
			case  78:  return 849;
			case  79:  return 867;
			case  80:  return 885;
			case  81:  return 904;
			case  82:  return 923;
			case  83:  return 942;
			case  84:  return 961;
			case  85:  return 980;
			case  86:  return 1000;
			case  87:  return 1020;
			case  88:  return 1040;
			case  89:  return 1060;
			case  90:  return 1080;
			case  91:  return 1101;
			case  92:  return 1122;
			case  93:  return 1143;
			case  94:  return 1164;
			case  95:  return 1185;
			case  96:  return 1207;
			case  97:  return 1229;
			case  98:  return 1251;
			case  99:  return 1273;
			case 100:  return 1295;
			case 101:  return 1318;
			case 102:  return 1341;
			case 103:  return 1364;
			case 104:  return 1387;
			case 105:  return 1410;
			case 106:  return 1434;
			case 107:  return 1458;
			case 108:  return 1482;
			case 109:  return 1506;
			case 110:  return 1530;
			case 111:  return 1555;
			case 112:  return 1580;
			case 113:  return 1605;
			case 114:  return 1630;
			case 115:  return 1655;
			case 116:  return 1681;
			case 117:  return 1707;
			case 118:  return 1733;
			case 119:  return 1759;
			case 120:  return 1785;
			case 121:  return 1812;
			case 122:  return 1839;
			case 123:  return 1866;
			case 124:  return 1893;
			case 125:  return 1920;
			case 126:  return 1948;
			case 127:  return 1976;
			case 128:  return 2004;
			case 129:  return 2032;
			case 130:  return 2060;
			case 131:  return 2089;
			case 132:  return 2118;
			case 133:  return 2147;
			case 134:  return 2176;
			case 135:  return 2205;
			case 136:  return 2235;
			case 137:  return 2265;
			case 138:  return 2295;
			case 139:  return 2325;
			case 140:  return 2355;
			case 141:  return 2386;
			case 142:  return 2417;
			case 143:  return 2448;
			case 144:  return 2479;
			case 145:  return 2510;
			case 146:  return 2542;
			case 147:  return 2574;
			case 148:  return 2606;
			case 149:  return 2638;
			case 150:  return 2670;
			case 151:  return 2703;
			case 152:  return 2736;
			case 153:  return 2769;
			case 154:  return 2802;
			case 155:  return 2835;
			case 156:  return 2869;
			case 157:  return 2903;
			case 158:  return 2937;
			case 159:  return 2971;
			case 160:  return 3005;
			case 161:  return 3040;
			case 162:  return 3075;
			case 163:  return 3110;
			case 164:  return 3145;
			case 165:  return 3180;
			case 166:  return 3216;
			case 167:  return 3252;
			case 168:  return 3288;
			case 169:  return 3324;
			case 170:  return 3360;
			case 171:  return 3397;
			case 172:  return 3434;
			case 173:  return 3471;
			case 174:  return 3508;
			case 175:  return 3545;
			case 176:  return 3583;
			case 177:  return 3621;
			case 178:  return 3659;
			case 179:  return 3697;
			case 180:  return 3735;
			case 181:  return 3774;
			case 182:  return 3813;
			case 183:  return 3852;
			case 184:  return 3891;
			case 185:  return 3930;
			case 186:  return 3970;
			case 187:  return 4010;
			case 188:  return 4050;
			case 189:  return 4090;
			case 190:  return 4130;
			case 191:  return 4171;
			case 192:  return 4212;
			case 193:  return 4253;
			case 194:  return 4294;
			case 195:  return 4335;
			case 196:  return 4377;
			case 197:  return 4419;
			case 198:  return 4461;
			case 199:  return 4503;
			case 200:  return 4545;
			case 201:  return 4588;
			case 202:  return 4631;
			case 203:  return 4674;
			case 204:  return 4717;
			case 205:  return 4760;
			case 206:  return 4804;
			case 207:  return 4848;
			case 208:  return 4892;
			case 209:  return 4936;
			case 210:  return 4980;
			case 211:  return 5025;
			case 212:  return 5070;
			case 213:  return 5115;
			case 214:  return 5160;
			case 215:  return 5205;
			case 216:  return 5251;
			case 217:  return 5297;
			case 218:  return 5343;
			case 219:  return 5389;
			case 220:  return 5435;
			case 221:  return 5482;
			case 222:  return 5529;
			case 223:  return 5576;
			case 224:  return 5623;
			case 225:  return 5670;
			case 226:  return 5718;
			case 227:  return 5766;
			case 228:  return 5814;
			case 229:  return 5862;
			case 230:  return 5910;
			case 231:  return 5959;
			case 232:  return 6008;
			case 233:  return 6057;
			case 234:  return 6106;
			case 235:  return 6155;
			case 236:  return 6205;
			case 237:  return 6255;
			case 238:  return 6305;
			case 239:  return 6355;
			case 240:  return 6405;
			case 241:  return 6456;
			case 242:  return 6507;
			case 243:  return 6558;
			case 244:  return 6609;
			case 245:  return 6660;
			case 246:  return 6712;
			case 247:  return 6764;
			case 248:  return 6816;
			case 249:  return 6868;
			case 250:  return 6920;
			case 251:  return 6973;
			case 252:  return 7026;
			case 253:  return 7079;
			case 254:  return 7132;
			case 255:  return 7185;
		}
	}
	return 0; // BaseLevel out of range
}

}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...