-
Posts
2407 -
Joined
-
Last visited
-
Days Won
52
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Capuche
-
cash point for new player but only once per acc?
Capuche replied to HristDead's question in Script Requests
Yes but the lines with empty or 0 values in `value` are deleted from global_reg_value then the data is deleted -
cash point for new player but only once per acc?
Capuche replied to HristDead's question in Script Requests
@QQfoolsorellina if the player spends all his cashpoint then log out and make a new character, he still get the cashpoints. Maybe with logincount.. - script swdghfgj -1,{ OnPCLoginEvent: if( BaseExp>0 || BaseLevel>1) end; query_sql "SELECT `logincount` FROM `login` WHERE `account_id` = '"+ getcharid(3) +"'", .@logincount; if( .@logincount > 1 ) end; ... -
The previous script will never start (none trigger) Try - script junho -1,{ function getarrayvalue { return getd( ".save_map_name" + ( getarg(0)/128 ) +"$["+ ( getarg(0)%128 ) +"]" ); } function MapInCompare { .@map$ = getarg(0); .@num_var = .size_array / 128; for ( .@i = 0; .@i <= .@num_var; .@i++ ) if ( compare( getd( ".concat_map_name"+ .@i +"$" ),.@map$ ) ) return 1; return 0; } OnNight: .nightday = 1; addrid 0; OnPCLoadMapEvent: .@map$ = strcharinfo(3); if ( !.nightday || getmapflag( .@map$,mf_pvp ) || getmapflag( .@map$,mf_battleground ) || getmapflag( .@map$,mf_gvg ) || compare( .map_black_list$,.@map$ ) || MapInCompare( .@map$ ) ) end; .@num_var = .size_array / 128; setd ".save_map_name"+ .@num_var +"$["+ ( .size_array%128 ) +"]", .@map$; setd ".concat_map_name"+ .@num_var +"$", getd( ".concat_map_name"+ .@num_var +"$" ) + .@map$ +"|"; .size_array++; pvpon .@map$; end; OnDay: .nightday = 0; for ( .@i = 0; .@i < .size_array; .@i++ ) { pvpoff getarrayvalue( .@i ); sleep 1; } .@num_array = .size_array/128; while( .@num_array >= 0 ) { setd ".concat_map_name"+ .@num_array +"$", ""; deletearray getd( ".save_map_name" + .@num_array +"$" ); .@num_array--; } .size_array = 0; end; OnInit: setarray .@tmp$, "prontera", "geffen";// yours maps no pvp .@size = getarraysize( .@tmp$ ); while( .@i < .@size ) { .map_black_list$ = .map_black_list$ + .@tmp$[.@i] +"|"; .@i++; } } + some source mod (add OnNight/OnDay label, enable mapflag loadevent by default) Index: clif.c =================================================================== --- clif.c (revision 17459) +++ clif.c (working copy) @@ -9416,7 +9416,7 @@ clif_showvendingboard(&sd->bl,sd->message,0); } - if(map[sd->bl.m].flag.loadevent) // Lance + // if(map[sd->bl.m].flag.loadevent) // Lance npc_script_event(sd, NPCE_LOADMAP); if (pc_checkskill(sd, SG_DEVIL) && !pc_nextjobexp(sd)) Index: pc.c =================================================================== --- pc.c (revision 17459) +++ pc.c (working copy) @@ -9301,6 +9301,7 @@ night_flag = 0; // 0=day, 1=night [Yor] map_foreachpc(pc_daynight_timer_sub); strcpy(tmp_soutput, (data == 0) ? msg_txt(NULL,502) : msg_txt(NULL,60)); // The day has arrived! + npc_event_doall("OnDay"); intif_broadcast(tmp_soutput, strlen(tmp_soutput) + 1, 0); return 0; } @@ -9322,6 +9323,7 @@ night_flag = 1; // 0=day, 1=night [Yor] map_foreachpc(pc_daynight_timer_sub); strcpy(tmp_soutput, (data == 0) ? msg_txt(NULL,503) : msg_txt(NULL,59)); // The night has fallen... + npc_event_doall("OnNight"); intif_broadcast(tmp_soutput, strlen(tmp_soutput) + 1, 0); return 0; }
-
Brian made a script like that.. can't find it...
-
You must decrease, not increase, the value of pc_status_def_rate to immune stun with an highter vit according to the comment.
-
or bindatcmd "test",strnpcinfo(3)+"::OnAtcommand",60,60;
-
Sorry we can't read your mind.. give us more explanations. What is the problems ? Do you have any errors/warning on your mapserv? Post them Show us your battleground script
-
What is your emulator (rathena...?), the revision..
-
custom_seller2 is a dummy shop. You can raise the price to avoid this warning - shop custom_seller2 -1,501:2000000
-
R>Script that will automatically reset all stats of all character?
Capuche replied to Brynner's question in Scripting Support
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 => // 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 } } -
Replace the line if ( getgmlevel() > 60 && ( agitcheck() || agitcheck2() ) && compare( strcharinfo(3),"g_cas0" ) ) { by if ( getgmlevel() > 0 && ( agitcheck() || agitcheck2() ) && compare( strcharinfo(3),"g_cas0" ) ) {
-
I suggest to make a new mapflag Adding_new_mapflag
-
It warp all GM with a level above 60. In the last script, don't forget to add the mapflag for your castle map aldeg_cas03 mapflag loadevent // etc... add your castle map
-
R>Script that will automatically reset all stats of all character?
Capuche replied to Brynner's question in Scripting Support
Try the statpointcount's Brian function http://rathena.org/board/topic/70252-anti-cheat-stats/?p=183729 -
Yeah - script WOE_BLOCK -1,{ OnAgitStart: OnAgitStart2: // When WOE starts, kick all GMs. addrid(0); OnPCLoadMapEvent: if ( getgmlevel() > 60 && ( agitcheck() || agitcheck2() ) && compare( strcharinfo(3),"g_cas0" ) ) { dispbottom "You can't warp in a castle during woe."; warp "prontera",0,0; } end; } aldeg_cas01 mapflag loadevent aldeg_cas02 mapflag loadevent aldeg_cas03 mapflag loadevent // etc... add your castle map warp the gm above 60 to prontera of they try to enter in a castle
-
change script so all party member got 50 cashpoints
Capuche replied to Phantom Of Rogue-Gon's question in Scripting Support
Same here http://rathena.org/board/topic/86347-rcashpoint-in-a-party/?p=217512 -
- script Partypoints -1,{ function AddMob; OnNPCKillEvent: // <mob ID>, <Cashpoints reward> AddMob( 3600,20 ); AddMob( 3627,20 ); AddMob( 3628,20 ); AddMob( 3629,50 ); end; function AddMob { if ( killedrid != getarg(0) ) return; set .@party_id, getcharid(1); set .@point, getarg(1); if( !.@party_id ){ set #CASHPOINTS,#CASHPOINTS + .@point; dispbottom "Gained "+.@point+" Cashpoints."; }else{ getpartymember .@party_id,1; getpartymember .@party_id,2; set .@acc_id, getcharid(3); set .@map$,strcharinfo(3); for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) if( isloggedin( $@partymemberaid[.@i],$@partymembercid[.@i] ) ) { attachrid $@partymemberaid[.@i]; if( HP && strcharinfo(3) == .@map$ ) { set #CASHPOINTS,#CASHPOINTS + .@point; dispbottom "Gained "+.@point+" Cashpoints."; } } } } }
-
GMXeon made a new release of this file here http://www.eathena.ws/board/index.php?showtopic=198420&st=0#entry1088248 The link is still available
-
Raise the chance in refine_db.txt, db folder trunk/db/re/refine_db.txt
-
You can give an item from an obb etc... with getrandgroupitem command. prontera,150,150,5 script open box 89,{ mes "I give an item in the obb, like if I opened it."; getrandgroupitem(IG_BlueBox),1; close; }
-
@Myth if (getgmlevel(60)) Wrong syntax, getgmlevel doesn't support any arguments for now No, all gm lvl above 60 will be kicked.
-
You can try the quest shop in the svn or search on the forum, there is a lot of request about that
-
What is your emulator? rathena..? version?
-
Post the lines where you made the change