-
Posts
248 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Yudax
-
@Kyo Thanks for the information. I guess this patch aint working properly.
-
new SVN? I've updated my SVN isnt that the new one already sir? Thank you for the reply
-
I've downloaded this: http://rathena.org/board/topic/62238-manage-skill-damage-20/ and tried to update my SVN. But when I tried to patch it i got rejected from patching, im using TortoiseSVN though. Thankyou guys!
-
I cant find agit_template sir
-
I Have this script that I want to announce the player who broke the emperium. But i cant find the OnAgitBreak; //====================================================================================================== //= Toasty's WoE Controller (formerly WoE Info Banner) //===== By: ============================================================================================ //= ToastOfDoom (aka: iHeart) //===== Current Version: =============================================================================== //= 1.22 //===== Description: =================================================================================== //= A WoE Controller function which controls castle based WoE by utilising npc events. //= Includes a NPC that provides information on the next WoE session //= //= This script is kinda @reloadscript/@loadnpc safe, provided that someone clicks the NPCs afterwards //= to start the OnInit function. That said..it is recommended that you don't use @reloadscript/@loadnpc //= but reset your server. //===== Changelog: ===================================================================================== //= 1.22 //= - Fixed an issue regarding the controller getting confused when using @reloadscript/loadnpc while //= WoE was still active. (thanks to annie for pointing out) //= 1.21 //= - Fixed a misspelt variable name (thanks to rahuldev345 for pointing out) //= 1.20 //= - Project renamed to 'Toasty's WoE Controller'. The script originally was only used to display WoE //= times then I 1st wrote it 3yrs ago and I feel it's purpose is more to control WoE these days. So //= name change to better reflect purpose. //= - Added support for novice WoE. Region teleport goes to the Novice Warper NPC (default in prontera) //= Change position in .region_maps, .region_x, .region_y if needed. //= - Region warp now only displays regions that have castles used at least once. (eg. If you don't //= configure any castles for Payon region, payon will not show up) //= - Optimised WoE Active/Inactive map notifier. Old method used too many loops for something that //= can happen alot. //= - Adjusted menus to be abit more friendly. 'next's will always display before 'menu's //= - Fixed bug with WoE autostarting when only configured for 2 sessions in one day //= - Added some nifty code that prevents catastrophic failure of the script if you try to run a trunk //= version on a stable server (ie. if you do, it will show an error message, but script will still //= run perfectly fine - check out WoEToggler function for those that want to peek at it =P) //= 1.11 //= - Fixed timer glitch when players only configured sessions for one day of the week //= - Adjusted timer to show remaining time more accurately //= - Modified .num_woes calculation due to bug regarding 0's being counted as unset values in arrays //= 1.10 //= - Expanded script to allow castle based configuration //= - Moved away from portal based woe control. Now using donpcevents to OnAgitEnd/2 events. Provided //= castles are linked to the main agit commands in this manner, they will be controllable using this //= script. //= - Added an onLoadMap WoE available notifier. Can be disabled by setting .notify_woe to 0 in the //= CONFIG section. //= - Did some funky color coding. //= - Added Coordinate based warping per region (see .region_x & .region_y in the CONSTANTS section) //= 1.02 //= - Added delwaitingroom to banner npc to prevent memory leaks from bug #2325 //= - To reduce spamming of waitingroom packets to players banner NPC only now updates when the banner //= text changes. Thus min time between updates is now 1sec regardless of setting. //= - Added setting for rate which banner time is updated (.banner_refresh_rate) in the CONFIG section. //= - Added agitstart2/end2 to provide WoE2 support (Hope it works //= 1.01 //= - Hardcoded in refresh value for banner npc instead of getting it from config from WoEInfoBase. Had //= issues starting the script after @reloadscript/@loadnpc //====================================================================================================== - script WoEInfoBase -1,{ OnStartMenu: if(.init == 0) donpcevent strnpcinfo(3)+"::OnInit"; OnStartMenu2: mes "The " + ((.state)?"^00DD00current":"^DD0000next") + "^000000 WoE session is: "; mes " "; mes "Day: ^0000DD" + .daysOfWeek$[.woe_day[.woe_index]]; mes "^000000Start time: ^00DD00" + .woe_0_str$[.woe_index]; mes "^000000End time: ^DD0000" + .woe_1_str$[.woe_index]; mes "^000000Region:"; set .@state_strs$, ".woe_state_str_" + .woe_state[.woe_index] + "$"; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@output$, getd(.@state_strs$ + "[" + .@i + "]"); if(.@output$ != "") mes "^000000- ^0000DD" + .@output$; } next; if(getgmlevel() >= .gm_access) select( "Warp to Castle Grounds", "View Castle Owners", "View all WoE times", ((!.state)?"Start next WoE":"End current WoE"), ((.state)?"":"Skip next WoE session") ); else select( "Warp to Castle Grounds", "View Castle Owners", "View all WoE times"); switch(@menu) { case 1: //warp mes "Which region would you like to warp to?"; next; select(.region_warp$[.woe_state[.woe_index]]); if(@menu < 1 || @menu > .num_regions) close; close2; warp .region_maps$[@menu - 1], .region_x[@menu - 1], .region_y[@menu - 1]; end; case 2: //view set .@woe_state_array$, ".woe_state_" + .woe_state[.woe_index]; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@k, 0; set .@castles$, ".castles_" + .regions$[.@i] + "$"; set .@castle_check, getd(.@woe_state_array$ + "[" + .@i + "]"); while(.@castle_check && .@k < .num_castles[.@i]) { if(.@castle_check & (1 << .@k)) { set .@map$, getd(.@castles$+"["+.@k+"]"); if (GetCastleData(.@map$,1)) { dispbottom "The [" + GetCastleName(.@map$) + "] castle of the [" + .region_names$[.@i] + "] region is currently held by the [" + GetGuildName(GetCastleData(.@map$,1)) + "] guild."; } else { dispbottom "The [" + GetCastleName(.@map$) + "] castle of the [" + .region_names$[.@i] + "] region is currently unoccupied."; } set .@castle_check, .@castle_check - (1 << .@k); } set .@k, .@k + 1; } } break; case 3: //woe times for(set .@i, 0; .@i < .num_woes; set .@i, .@i + 1) { dispbottom "- " + .daysOfWeek$[.woe_day[.@i]] + " " + .woe_0_str$[.@i] + "-" + .woe_1_str$[.@i]; set .@woe_state_str_array$, ".woe_state_str_" + .woe_state[.@i] + "$"; for(set .@k, 0; .@k < .num_regions; set .@k, .@k + 1) { set .@output$, getd(.@woe_state_str_array$ + "[" + .@k + "]"); if(.@output$ != "") dispbottom " " + .@output$; } } break; case 4: //start next; if(getgmlevel() <.gm_access) close; mes "^FF0000Are you sure you want to " + ((!.state)?"start the next WoE session?":"end the current WoE session?"); next; if(select("Yes:No") == 2) break; set .remainTime, 0; //might not work sometimes...you have like a 500ms window out of 505ms i guess.. sleep2 .timer_refresh_rate; //wait abit so the menu doesn't screw up (how long it takes for the timer to update) break; case 5: //skip next; if(getgmlevel() <.gm_access || .state) close; mes "^FF0000Are you sure you want to skip the next WoE session^000000"; next; if(select("Yes:No") == 2) break; if(.state) { //you really can't do this with woe active next; mes "Sorry, in the time you took making your decision, WoE started"; mes "Please either manually end it first or wait"; break; } set .woe_index, (.woe_index + 1) % .num_woes; donpcevent strnpcinfo(3)+"::OnUpdateCountTick"; sleep2 .timer_refresh_rate; break; default: close; } goto OnStartMenu2; OnInit: //-----------------------------------------------------------------------------------------// //CONFIG START // //-----------------------------------------------------------------------------------------// set .gm_access, 60; //WoE timings needs to be ordered ascendingly unless you want to do weird //stuff like skip a region every other week or so... //Also times can't overlap. Uses second of day(gettimetick(1)) for timing // eg 1am -> 3600, 2:30pm -> 52200, midnight -> 86400 (anything past that doesn't work) //Note: woe_0 is start times, woe_1 is end times. Ignore how it's called but // don't change it either since it's dynamically used // Also..woe has to end on the same day it starts (it's easier that way..) setarray .woe_day[0], 0, 1, 2, 3, 4, 5, 6; setarray .woe_0[0], 72000,72000,72000,72000,72000,72000,72000; setarray .woe_1[0], 75600,75600,75600,75600,75600,75600,75600; setarray .woe_state[0], 0, 0, 0, 0, 0, 0, 0; //WoE state settings. Every WoE session can be defined as a particular state of castle configuration. //.woe_state_#[%] = $ // # - state number // % - region number // $ - binary representation of castles that are active for that region in that state ( // (ie. 0 is no castles, 5 is castle 0 and 2 (2^0 + 2^2 = 5)) setarray .woe_state_0[0],1,0,0,0,0,0,0; //Setting for if script handles WoE controller function. Disable agit_controller.txt if you are using this. //For if you want to use something else to handle your woe stuff but only this script //to show info (1 - on, 0 - off...duh) set .active_woe, 1; //WoE inactive on map notifier. Basically notifies player if the castle they are entering is //WoE active or not set .notify_woe, 1; //-----------------------------------------------------------------------------------------// //CONFIG END // //-----------------------------------------------------------------------------------------// //-----------------------------------------------------------------------------------------// //CONSTANTS START - Don't touch this unless you know what you are doing // //-----------------------------------------------------------------------------------------// //castle maps by region setarray .castles_prtg$[0],"prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05"; setarray .castles_payg$[0],"payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05"; setarray .castles_gefg$[0],"gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05"; setarray .castles_aldeg$[0],"aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05"; setarray .castles_arug$[0],"arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05"; setarray .castles_schg$[0],"schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; setarray .castles_novi$[0],"nguild_alde","nguild_gef","nguild_pay","nguild_prt"; //woe kill functions for each castle setarray .woe_kill_prtg$[0],"Agit#prtg_cas01::OnAgitEnd","Agit#prtg_cas02::OnAgitEnd","Agit#prtg_cas03::OnAgitEnd","Agit#prtg_cas04::OnAgitEnd","Agit#prtg_cas05::OnAgitEnd"; setarray .woe_kill_payg$[0],"Agit#payg_cas01::OnAgitEnd","Agit#payg_cas02::OnAgitEnd","Agit#payg_cas03::OnAgitEnd","Agit#payg_cas04::OnAgitEnd","Agit#payg_cas05::OnAgitEnd"; setarray .woe_kill_gefg$[0],"Agit#gefg_cas01::OnAgitEnd","Agit#gefg_cas02::OnAgitEnd","Agit#gefg_cas03::OnAgitEnd","Agit#gefg_cas04::OnAgitEnd","Agit#gefg_cas05::OnAgitEnd"; setarray .woe_kill_aldeg$[0],"Agit#aldeg_cas01::OnAgitEnd","Agit#aldeg_cas02::OnAgitEnd","Agit#aldeg_cas03::OnAgitEnd","Agit#aldeg_cas04::OnAgitEnd","Agit#aldeg_cas05::OnAgitEnd"; setarray .woe_kill_arug$[0],"Manager#aru01_02::OnAgitEnd2","Manager#aru02_02::OnAgitEnd2","Manager#aru03_02::OnAgitEnd2","Manager#aru04_02::OnAgitEnd2","Manager#aru05_02::OnAgitEnd2"; setarray .woe_kill_schg$[0],"Manager#sch01_02::OnAgitEnd2","Manager#sch02_02::OnAgitEnd2","Manager#sch03_02::OnAgitEnd2","Manager#sch04_02::OnAgitEnd2","Manager#sch05_02::OnAgitEnd2"; setarray .woe_kill_novi$[0],"Agit_N01::OnAgitEnd","Agit_N02::OnAgitEnd","Agit_N03::OnAgitEnd","Agit_N04::OnAgitEnd"; //region prefixs setarray .regions$[0],"prtg","payg","gefg","aldeg","arug","schg","novi"; //region info setarray .region_names$[0],"Prontera", "Payon", "Geffen", "Aldebaran", "Arunafeltz", "Schwarzwald", "Novice Castles"; setarray .region_maps$[0],"prt_gld", "pay_gld", "gef_fild13", "alde_gld", "aru_gld", "sch_gld", "prontera"; //coords to warp player to region (0 is random) setarray .region_x[0],0, 0, 0, 0, 0, 0, 148; setarray .region_y[0],0, 0, 0, 0, 0, 0, 163; setarray .waitMsg$[0], "WoE Starts: ", "WoE Ends: "; setarray .startMsg$[0], "WoE is Starting", "WoE is Ending"; set .ticks_in_day, 86400; //mmm...magic numbers setarray .daysOfWeek$[0], "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"; set .timer_refresh_rate, 500; //how many ms per timer refresh...keep less than 1000 (in milliseconds) set .change_state_sleep, 3000; //how long to show "WoE is Start|End-ing" msg for in ms. (in milliseconds) //Make sure WoE sessions are longer than this xD set .banner_refresh_rate, 10; //how many seconds per banner refresh...keep 1 or above (in seconds) //-----------------------------------------------------------------------------------------// //CONSTANTS END // //-----------------------------------------------------------------------------------------// set .num_regions, getarraysize(.regions$); set .num_woes, getarraysize(.woe_1); //force WoE to end if active callfunc "WoEToggler", 0; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { //count num castles per region set .num_castles[.@i], getarraysize(getd(".castles_" + .regions$[.@i] + "$")); } //convert timestamps to readable format for(set .@i, 0; .@i < .num_woes; set .@i, .@i + 1) { set .@hrs, .woe_0[.@i] / 3600; set .@mins, .woe_0[.@i] % 3600 / 60; set .@output$, ((.@hrs % 12)?.@hrs%12:12) + ":" + ((.@mins < 10)?"0"+.@mins:.@mins) + " " + ((.@hrs > 12)?"PM":"AM"); set .woe_0_str$[.@i], .@output$; set .@hrs, .woe_1[.@i] / 3600; set .@mins, .woe_1[.@i] % 3600 / 60; set .@output$, ((.@hrs % 12)?.@hrs%12:12) + ":" + ((.@mins < 10)?"0"+.@mins:.@mins) + " " + ((.@hrs > 12)?"PM":"AM"); set .woe_1_str$[.@i], .@output$; } //calc number of woe states and consolidate states to create list of castles used set .num_states, 0; while(getarraysize(getd(".woe_state_" + (.num_states)))) { set .@state$, ".woe_state_" + .num_states; set .@i, 0; while(.@i < getarraysize(getd(.@state$))) { set .castleUsage[.@i], .castleUsage[.@i] | getd(.@state$ + "[" + .@i + "]"); set .@i, .@i + 1; } set .num_states, .num_states + 1; } for(set .@i, 0; .@i < .num_states; set .@i, .@i + 1) { set .@woe_state_array$, ".woe_state_" + .@i; for(set .@k, 0; .@k < .num_regions; set .@k, .@k + 1) { if(.castleUsage[.@k] > 0) { set .@castles$, ".castles_" + .regions$[.@k] + "$"; set .@castle_check, getd(.@woe_state_array$ + "[" + .@k + "]"); if(.@castle_check == 0) { //region not in this state //region warp menu string set .region_warp$[.@i], .region_warp$[.@i] + "^DD0000" + .region_names$[.@k] + "^000000:"; continue; } else { if(.@castle_check >= ((1 << .num_castles[.@k]) - 1)) { //includes all castles...just list as region. setd(".woe_state_str_" + .@i + "$[" + .@k + "]", .region_names$[.@k]); //region warp menu string set .region_warp$[.@i], .region_warp$[.@i] + "^00DD00" + .region_names$[.@k] + "^000000:"; } else { set .@j, 0; set .@output$, ""; while(.@j < .num_castles[.@k]) { if(.@castle_check & (1 << .@j)) { set .@output$, .@output$ + GetCastleName(getd(.@castles$+"["+.@j+"]")); set .@castle_check, .@castle_check - (1 << .@j); if(.@castle_check) { if(.@output$ != "") set .@output$, .@output$ + ", "; } else break; } set .@j, .@j + 1; } setd(".woe_state_str_" + .@i + "$[" + .@k + "]", .region_names$[.@k] + " ("+ .@output$ + ")"); //region warp menu string set .region_warp$[.@i], .region_warp$[.@i] + "^00DD00" + .region_names$[.@k] + " ("+ .@output$ + ")^000000:"; } } } else { set .region_warp$[.@i], .region_warp$[.@i] + ":"; } } } donpcevent strnpcinfo(3)+"::OnFindCurIndex"; donpcevent strnpcinfo(3)+"::OnUpdateCountTick"; if(.active_woe) { if(.notify_woe) { //set mapflag for all castle maps for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@region_array$, ".castles_" + .regions$[.@i] + "$"; for(set .@k, 0; .@k < .num_castles[.@i]; set .@k, .@k + 1) { setmapflag getd(.@region_array$ + "[" + .@k + "]"), mf_loadevent; setd(".loadmap_region_" + getd(.@region_array$ + "[" + .@k + "]"), .@i + 1); setd(".loadmap_castleIndex_" + getd(.@region_array$ + "[" + .@k + "]"), .@k); } } } //activates WoE if needed donpcevent strnpcinfo(3)+"::OnDoWoE"; } //flag that init occured set .init, 1; OnWoETimer: //timer stuff while (1) { set .remainTime, .count_tick - gettimetick(2); set .bannerTimer, .remainTime - (.remainTime % .banner_refresh_rate) + .banner_refresh_rate; set .min, .bannerTimer / 60; set .sec, .bannerTimer - .min * 60; set .hr, .min / 60; set .min, .min - .hr * 60; set .roomMsg$, .waitMsg$[.state] + .hr + ":" + ((.min < 10 )?"0":"") + .min + ":" + ((.sec < 10 )?"0":"") + .sec; sleep .timer_refresh_rate; if(.remainTime <= 0) { if(.active_woe) { donpcevent strnpcinfo(3)+"::OnDoWoE"; } set .roomMsg$, .startMsg$[.state]; set .woe_index, (.woe_index + .state) % .num_woes; //go to next index if needed set .state, (.state + 1) % 2; //flip state donpcevent strnpcinfo(3)+"::OnUpdateCountTick"; sleep .change_state_sleep; } } end; //obligatory end =D OnUpdateCountTick: set .count_tick, getd(".woe_" + .state + "[" + .woe_index + "]"); set .count_tick, gettimetick(2) + .count_tick - gettimetick(1) + (.woe_day[.woe_index] - gettime(4) + 7) % 7 * .ticks_in_day; if(gettimetick(2) > .count_tick) set .count_tick, .count_tick + 7 * .ticks_in_day; end; OnFindCurIndex: set .@cur_day, gettime(4); set .@cur_tick, gettimetick(1); set .woe_index, 0; set .state, 0; for(set .@i, 0; .@i < .num_woes; set .@i, .@i + 1) { if(.woe_day[.@i] < .@cur_day) continue; if(.woe_day[.@i] == .@cur_day) { if(.woe_0[.@i] >= .@cur_tick) { set .woe_index, .@i; set .state, 0; break; } if(.woe_1[.@i] >= .@cur_tick) { set .woe_index, .@i; set .state, 1; break; } } if(.woe_day[.@i] > .@cur_day) { set .woe_index, .@i; set .state, 0; break; } } end; //On map notifier //Comment out OnPCLoadMapEvent label if .notify_woe is disabled to prevent unnecessary triggering OnPCLoadMapEvent: if(.state && .notify_woe) { getmapxy(.@map$, .@x, .@y, 0); set .@region, getd(".loadmap_region_" + .@map$) - 1; if(.@region >= 0) { set .@castleIndex, getd(".loadmap_castleIndex_" + .@map$); if(getd(".woe_state_" + .woe_state[.woe_index] + "[" + .@region + "]") & 1 << .@castleIndex) dispbottom "The [" + GetCastleName(.@map$) + "] castle is available for conquering during this WoE session"; else dispbottom "The [" + GetCastleName(.@map$) + "] castle is NOT available for conquering during this WoE session"; } } end; //------------------------------------------------------------------------------ // WoE Controller Stuff Here //------------------------------------------------------------------------------ OnDoWoE: if((.state == 0 && .init) || (.state == 1 && !agitcheck())) { //starting callfunc "WoEToggler", 1; //kills WoE in all castles that shouldn't have WoE set .@woe_state_array$, ".woe_state_" + .woe_state[.woe_index]; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@castles$, ".castles_" + .regions$[.@i] + "$"; set .@castle_check, getd(.@woe_state_array$ + "[" + .@i + "]"); for(set .@k, 0; .@k < .num_castles[.@i]; set .@k, .@k + 1) { set .@map$, getd(.@castles$+"["+.@k+"]"); if((.@castle_check & (1 << .@k)) == 0) { donpcevent getd(".woe_kill_" + .regions$[.@i] + "$[" + .@k + "]"); } } } announce "The War Of Emperium has begun!",bc_all; donpcevent strnpcinfo(3)+"::OnDisplayOwners"; } else { //ending if(agitcheck()) { callfunc "WoEToggler", 0; announce "The War Of Emperium is over!",bc_all; donpcevent strnpcinfo(3)+"::OnDisplayOwners"; } } end; OnDisplayOwners: //displays based on current region set .@woe_state_array$, ".woe_state_" + .woe_state[.woe_index]; for(set .@i, 0; .@i < .num_regions; set .@i, .@i + 1) { set .@k, 0; set .@castle_check, getd(.@woe_state_array$ + "[" + .@i + "]"); set .@castles$, ".castles_" + .regions$[.@i] + "$"; while(.@castle_check && .@k < .num_castles[.@i]) { if(.@castle_check & (1 << .@k)) { set .@map$, getd(.@castles$+"["+.@k+"]"); if (GetCastleData(.@map$,1)) { announce "The [" + GetCastleName(.@map$) + "] castle of the [" + .region_names$[.@i] + "] region is currently held by the [" + GetGuildName(GetCastleData(.@map$,1)) + "] guild.",bc_all; } else { announce "The [" + GetCastleName(.@map$) + "] castle of the [" + .region_names$[.@i] + "] region is currently unoccupied.",bc_all; } set .@castle_check, .@castle_check - (1 << .@k); } set .@k, .@k + 1; } } end; } prontera,144,174,6 script WoE Info 837,{ if(getwaitingroomstate(3, strnpcinfo(3)) == -1) donpcevent strnpcinfo(3)+"::OnInit"; doevent "WoEInfoBase::OnStartMenu"; end; OnInit: while (1) { //only updates if msg is different set .banner$, getwaitingroomstate(4, strnpcinfo(3)); if(getvariableofnpc(.roomMsg$, "WoEInfoBase") != .banner$) { delwaitingroom; waitingroom getvariableofnpc(.roomMsg$, "WoEInfoBase"), 0; } sleep 500; } end; } //zomg! it duplicates!! //prontera,156,196,6 duplicate(WoE Info) WoE Info#2winfo 837 //--------------------------------------------------------------------------------------------------------------------- //These two functions handle WoE's activation/deactivation. Since stable does not have AgitStart2/AgitEnd2, //using the trunk version will result in catastrophic failure of the script. Double declaration of the following //functions fixes this (you will get warning messages though) function script WoEToggler { //<state> = 0|1 if(getarg(0)) { AgitStart; } else { AgitEnd; } return; } //if stable script will fail parsing this function, but the rest of the script will still be usable function script WoEToggler { //<state> = 0|1 if(getarg(0)) { AgitStart; AgitStart2; } else { AgitEnd; AgitEnd2; } return; } Thank you rathena!
-
So theres no way in editting this script to a specific map? solved!
-
Good morning rAthena, I want this antibot to effect only on alde_dun02, prt_maze03, pay_fild10 and pay_dun04. And especially not on town. Where to edit the specific code? prontera.gat,0,0,0 script AntiBot -1,{ OnPCLoginEvent: if (getgmlevel()>=40) goto gm_admin; atcommand "@me Talk to [Anti Bot Checking]"; if(checkcart() == 1) set @cart,1; if(checkfalcon() == 1) set @falcon,1; if(checkriding() == 1) set @riding,1; percentheal 100,100; //atcommand "@aw Are You Bot ?? if not.. follow The Correct Number Please Read Below"; atcommand "@option 2 0 0"; mes "[^FF0000Anti Bot Checking^000000]"; mes "Are You Bot ?? if not.. follow The Correct Number Please Read Below"; mes "Please enter the input number correctly ######"; mes "^006699You must enter the input number same as the ##### color^000000"; next; set number1, rand (1000000,9999999); set number2, rand (1000000,9999999); set number3, rand (1000000,9999999); set number4, rand (1000000,9999999); set number5, rand (1000000,9999999); set number6, rand (1000000,9999999); set number00, rand (1000000,9999999); set number01, rand (1000000,9999999); set number02, rand (1000000,9999999); set number03, rand (1000000,9999999); set number04, rand (1000000,9999999); set number05, rand (1000000,9999999); set number06, rand (1000000,9999999); set number07, rand (1000000,9999999); set number08, rand (1000000,9999999); set number09, rand (1000000,9999999); set number10, rand (1000000,9999999); set number66, rand (1000,9999); set number99, rand (100,999); set @Col, rand (0,6); if(@Col == 0) goto colred; if(@Col == 1) goto colorg; if(@Col == 2) goto colblu; if(@Col == 3) goto colvio; if(@Col == 4) goto colgre; mes "Enter Color ^F7F7FF#^F5F9FD#^FFF9FA#^A52A2A##########^FFF9EE##^F8F8FF#"; mes "^F5F9FD"+ number99 +"^000000^FFF9EE"+ number66 +"^000000^FF8C00"+ number2 +"^000000^F5F9FD"+ number05 +"^000000"; mes "^F8F8FF"+ number66 +"^000000^F7F7FF"+ number99 +"^000000^A52A2A"+ number6 +"^000000^F5F9FD"+ number05 +"^000000"; mes "^F5F9FD"+ number99 +"^000000^FFF9EE"+ number66 +"^000000^9400D3"+ number4 +"^000000^F8F8FF"+ number06 +"^000000"; mes "^F5F9FD"+ number66 +"^000000^F7F7FF"+ number99 +"^000000^FF0000"+ number1 +"^000000^F5F9FD"+ number02 +"^000000"; mes "^F8F8FF"+ number99 +"^000000^FFF9EE"+ number66 +"^000000^0000FF"+ number3 +"^000000^F8F8FF"+ number01 +"^000000"; mes "^F5F9FD"+ number99 +"^000000^F7F7FF"+ number66 +"^000000^008000"+ number5 +"^000000^F5F9FD"+ number03 +"^000000"; next; input number; next; goto brochk; close; colgre: mes "Enter Color ^F7F7FF#^FFF9FA#^F5F9FD#^008000#########^F5F9FD#^F8F8FF#^FFF9EE##"; mes "^FFF9EE"+ number66 +"^000000^FFF9EE"+ number99 +"^000000^008000"+ number5 +"^000000^F5F9FD"+ number04 +"^000000"; mes "^FFF9FA"+ number99 +"^000000^F7F7FF"+ number66 +"^000000^FFA500"+ number2 +"^000000^F5F9FD"+ number03 +"^000000"; mes "^F5F9FD"+ number66 +"^000000^FFF9EE"+ number99 +"^000000^FF0000"+ number1 +"^000000^F5F9FD"+ number00 +"^000000"; mes "^FFF9EE"+ number99 +"^000000^FFF9EE"+ number66 +"^000000^9400D3"+ number4 +"^000000^F5F9FD"+ number01 +"^000000"; mes "^F7F7FF"+ number66 +"^000000^FFF9FA"+ number99 +"^000000^0000FF"+ number3 +"^000000^F5F9FD"+ number06 +"^000000"; mes "^FFF9EE"+ number99 +"^000000^F5F9FD"+ number66 +"^000000^A52A2A"+ number6 +"^000000^F5F9FD"+ number05 +"^000000"; next; input number; next; goto grechk; close; colvio: mes "Enter Color ^F5F9FD#^FFF9EE#^FFF9FA#^9400D3 #########^F8F8FF#^F5F9FD##^F7F7FF##"; mes "^F7F7FF"+ number66 +"^000000^FFF9EE"+ number99 +"^000000^9400D3"+ number4 +"^000000^F5F9FD"+ number09 +"^000000"; mes "^F7F7FF"+ number66 +"^000000^FFF9EE"+ number99 +"^000000^FFA500"+ number2 +"^000000^F5F9FD"+ number04 +"^000000"; mes "^F7F7FF"+ number66 +"^000000^FFF9EE"+ number99 +"^000000^A52A2A"+ number6 +"^000000^F5F9FD"+ number05 +"^000000"; mes "^FFF9EE"+ number99 +"^000000^F7F7FF"+ number66 +"^000000^FF0000"+ number1 +"^000000^F5F9FD"+ number06 +"^000000"; mes "^FFF9EE"+ number99 +"^000000^F7F7FF"+ number66 +"^000000^0000FF"+ number3 +"^000000^F5F9FD"+ number08 +"^000000"; mes "^FFF9EE"+ number99 +"^000000^F7F7FF"+ number66 +"^000000^008000"+ number5 +"^000000^F5F9FD"+ number01 +"^000000"; next; input number; next; goto viochk; close; colblu: mes "Enter Color #^FFF9EE###^0000FF #####^F8F8FF######^F5F9FD#^FFF9FA#^F7F7FF##"; mes "^F8F8FF"+ number01 +"^000000^FFA500"+ number2 +"^000000^F7F7FF"+ number66 +"^000000^F5F9FD"+ number99 +"^000000"; mes "^FFF9EE"+ number09 +"^000000^A52A2A"+ number6 +"^000000^F5F9FD"+ number66 +"^000000^FFF9EE"+ number99 +"^000000"; mes "^F5F9FD"+ number08 +"^000000^FF0000"+ number1 +"^000000^F7F7FF"+ number66 +"^000000^FFF9EE"+ number99 +"^000000"; mes "^F8F8FF"+ number07 +"^000000^0000FF"+ number3 +"^000000^F5F9FD"+ number66 +"^000000^F5F9FD"+ number99 +"^000000"; mes "^FFF9EE"+ number06 +"^000000^008000"+ number5 +"^000000^F5F9FD"+ number66 +"^000000^FFF9EE"+ number99 +"^000000"; mes "^F5F9FD"+ number05 +"^000000^9400D3"+ number4 +"^000000^F7F7FF"+ number66 +"^000000^F5F9FD"+ number99 +"^000000"; next; input number; next; goto bluchk; close; colorg: mes "Enter Color ^F5F9FD#^FFF9EE####^FFA500 ######^F5F9FD#^F5F9FD####^F7F7FF##^FFF9FA##"; mes "^FFF9EE"+ number4 +"^000000^A52A2A"+ number6 +"^000000^F5F9FD"+ number07 +"^000000"; mes "^F8F8FF"+ number3 +"^000000^9400D3"+ number4 +"^000000^F5F9FD"+ number00 +"^000000"; mes "^F5F9FD"+ number1 +"^000000^FF0000"+ number1 +"^000000^F5F9FD"+ number06 +"^000000"; mes "^F8F8FF"+ number2 +"^000000^0000FF"+ number3 +"^000000^F5F9FD"+ number04 +"^000000"; mes "^F5F9FD"+ number5 +"^000000^FF8C00"+ number2 +"^000000^F5F9FD"+ number08 +"^000000"; mes "^F5F9FD"+ number6 +"^000000^008000"+ number5 +"^000000^F8F8FF"+ number10 +"^000000"; next; input number; next; goto orgchk; close; colred: mes "Enter Color ^F5F9FD##^FF0000 ####^F8F8FF#######^FFF9FA#^FFF9EE#^F7F7FF#"; mes "^F5F9FD"+ number6 +"^000000^A52A2A"+ number6 +"^000000^F8F8FF"+ number10 +"^000000"; mes "^F8F8FF"+ number5 +"^000000^008000"+ number5 +"^000000^F5F9FD"+ number09 +"^000000"; mes "^F5F9FD"+ number3 +"^000000^9400D3"+ number4 +"^000000^F8F8FF"+ number08 +"^000000"; mes "^F8F8FF"+ number1 +"^000000^0000FF"+ number3 +"^000000^F5F9FD"+ number07 +"^000000"; mes "^F5F9FD"+ number2 +"^000000^FFA500"+ number2 +"^000000^F5F9FD"+ number05 +"^000000"; mes "^F8F8FF"+ number5 +"^000000^FF0000"+ number1 +"^000000^F5F9FD"+ number02 +"^000000"; next; input number; next; goto redchk; close; redchk: if(number < number1 || number > number1) goto LOG_FAIL; goto OK; close; orgchk: if(number < number2 || number > number2) goto LOG_FAIL; goto OK; close; bluchk: if(number < number3 || number > number3) goto LOG_FAIL; goto OK; close; viochk: if(number < number4 || number > number4) goto LOG_FAIL; goto OK; close; grechk: if(number < number5 || number > number5) goto LOG_FAIL; goto OK; close; brochk: if(number < number6 || number > number6) goto LOG_FAIL; goto OK; close; LOG_FAIL: mes "Failed to Enter The Correct Number.."; mes "Visit forum for more info about this, ok"; mes "^FF0000http://www.zilero.ragnarok.so/cp^000000"; next; mes "I Will Kick You now From This Server!"; mes "Visit forum for more info about this, ok"; mes "^FF0000http://www.zilero.ragnarok.so/cp^000000"; next; atcommand "@kick " + strcharinfo(0); end; OK: mes "Welldone~~, ^4233F4"+strcharinfo(0)+"^000000!"; mes "Thanks For Enter the Number Correctly...."; mes "Invite more players come here ok..tq."; percentheal 100,100; atcommand "@option 0"; if(@cart == 1) { setcart; set @cart,0; } if(@falcon == 1) { setfalcon; set @falcon,0; } if(@riding == 1) { setriding; set @riding,0; } close; gm_admin: atcommand "@hide"; atcommand "@speed 0"; mes "GM High LV No need to be Check ^4233F4"+strcharinfo(0)+"^000000!"; specialeffect2 501; close; end; } Thanks!
-
After i put voteforpoints folder to the addons i got this error: bumb
-
I've tried changing to that server and still got errors.
-
Is there any commands that will automatically delete #cashpoints? because in pvp, players earn i think #cashpoints and not #CASHPOINTS So in the NPC script. i will change #cashpoints --> #CASHPOINTS? I Also tried removing this script and it wont give any error
-
[Workaround] "Fix" to autoclose on wrong password for new clients
Yudax replied to EvilPuncker's topic in Source Releases
It's in a .diff format. Meaning, you can use TortoiseSVN to apply this diff to your server's folder... however, I don't recommend you do this. Why? Well, this was created { Posted 11 September 2012 - 12:53 AM } and from that day till now, rAthena has changed a lot. So, the best way for you to add this, is try adding it manually. Then again, you -could- do this automatically by patching it with TortoiseSVN, but you -may- or -may not- get any errors. Up to you. Thank you sir. Im using linux anyway. So in linux is it not advisable to do it automatically? -
When im doe doing this DELETE FROM global_reg_value WHERE CAST(`str` AS BINARY) = '#cashpoints';. Will the cashpoints be reset back to 0? This is my script /*** ** Script Request (Cash Trader NPC) ** Link: http://rathena.org/board/topic/57101-request-cash-trader/ ** By Slim ***/ prontera,186,264,4 script ZileRO Coins Trader 437,{ //,677 set .@coinid,20103; mes "[^0000FFCash Trader^000000]"; mes "Hi ^ff8800"+strcharinfo(0)+"^000000,"; mes "Your Avenger Points: [^ff0000"+#cashpoints+"^000000]"; mes "~ ZileRO Coins into PvP Points"; mes "~ PvP Points into ZileRO Coins"; switch(select("^ff0000>^000000 Cancel:^0000ff>^000000 Exchange zRO Coins to PvP Points:^0000ff>^000000 Exchange PvP Points to zRO Coins")) { case 1: break; case 2: next; mes "[^0000FFCash Trader^000000]"; mes "Please input the amount of coins that you want to exchange."; mes "Note: Put ^0000ff0^000000 to exit."; L_inpcoin: input @hcoins; set @hhcoins,@hcoins; if(@hhcoins == 0) { break; } if(countitem(.@coinid) < @hhcoins) { mes "* ^ff0000Please input a valid amount^000000"; mes "(Put ^0000ff0^000000 to exit)."; goto L_inpcoin; } next; delitem .@coinid,@hhcoins; set #cashpoints,#cashpoints+@hhcoins*25; mes "[^0000FFCash Trader^000000]"; mes "You've exchanged (^ff0000"+@hhcoins+"^000000) "+getitemname(.@coinid)+"(s). Total PvP Points: [^0000ff"+#cashpoints+"^000000]"; dispbottom "[Cash Trader] You've exchanged ("+@hhcoins+") "+getitemname(.@coinid)+"(s). Total PvP Points: ["+#cashpoints+"]"; break; case 3: next; mes "[^0000FFCash Trader^000000]"; mes "Please input the amount of PvP Points that you want to exchange."; mes "Your Avenger Points: [^ff0000"+#cashpoints+"^000000]"; mes "Note: Put ^0000ff0^000000 to exit."; L_inpcash: input @hcash; set @hhcash,@hcash; if(@hhcash == 0) { break; } if(#cashpoints < @hhcash) { mes "* ^ff0000Please input a valid amount^000000"; mes "(Put ^0000ff0^000000 to exit)."; goto L_inpcash; } //I know they weight 0 but just in case you change its weight if (!checkweight(.@coinid,@hhcash)) { mes "* ^ff0000You're overweight please store some items.^000000"; dispbottom "[Cash Trader] You're overweight please store some items."; break; } next; set #cashpoints,#cashpoints-@hhcoins*25; getitem .@coinid,@hhcash/25; mes "[^0000FFCash Trader^000000]"; mes "You've exchanged (^ff0000"+@hhcash+"^000000) AvengerPoints to "+getitemname(.@coinid)+"(s). Total PvP Points: [^0000ff"+#cashpoints+"^000000]"; dispbottom "[Cash Trader] You've exchanged ("+@hhcash+") PvP Points to "+getitemname(.@coinid)+"(s). Total PvP Points: ["+#cashpoints+"]"; break; } close; } By the way I tried to remove this and restarted the server. It goes well without errors. But after I put this NPC. The duplicate entries again appears.
-
/*** ** Script Request (Cash Trader NPC) ** Link: http://rathena.org/board/topic/57101-request-cash-trader/ ** By Slim ***/ prontera,186,264,4 script RO Coins Trader 437,{ //,677 set .@coinid,20103; mes "[^0000FFCash Trader^000000]"; mes "Hi ^ff8800"+strcharinfo(0)+"^000000,"; mes "Your Avenger Points: [^ff0000"+#cashpoints+"^000000]"; mes "~ ROCoins into PvP Points"; mes "~ PvP Points into ROCoins"; switch(select("^ff0000>^000000 Cancel:^0000ff>^000000 Exchange RO Coins to PvP Points:^0000ff>^000000 Exchange PvP Points to RO Coins")) { case 1: break; case 2: next; mes "[^0000FFCash Trader^000000]"; mes "Please input the amount of coins that you want to exchange."; mes "Note: Put ^0000ff0^000000 to exit."; L_inpcoin: input @hcoins; set @hhcoins,@hcoins; if(@hhcoins == 0) { break; } if(countitem(.@coinid) < @hhcoins) { mes "* ^ff0000Please input a valid amount^000000"; mes "(Put ^0000ff0^000000 to exit)."; goto L_inpcoin; } next; delitem .@coinid,@hhcoins; set #cashpoints,#cashpoints+@hhcoins*25; mes "[^0000FFCash Trader^000000]"; mes "You've exchanged (^ff0000"+@hhcoins+"^000000) "+getitemname(.@coinid)+"(s). Total PvP Points: [^0000ff"+#cashpoints+"^000000]"; dispbottom "[Cash Trader] You've exchanged ("+@hhcoins+") "+getitemname(.@coinid)+"(s). Total PvP Points: ["+#cashpoints+"]"; break; case 3: next; mes "[^0000FFCash Trader^000000]"; mes "Please input the amount of PvP Points that you want to exchange."; mes "Your Avenger Points: [^ff0000"+#cashpoints+"^000000]"; mes "Note: Put ^0000ff0^000000 to exit."; L_inpcash: input @hcash; set @hhcash,@hcash; if(@hhcash == 0) { break; } if(#cashpoints < @hhcash) { mes "* ^ff0000Please input a valid amount^000000"; mes "(Put ^0000ff0^000000 to exit)."; goto L_inpcash; } //I know they weight 0 but just in case you change its weight if (!checkweight(.@coinid,@hhcash)) { mes "* ^ff0000You're overweight please store some items.^000000"; dispbottom "[Cash Trader] You're overweight please store some items."; break; } next; set #cashpoints,#cashpoints-@hhcoins*25; getitem .@coinid,@hhcash/25; mes "[^0000FFCash Trader^000000]"; mes "You've exchanged (^ff0000"+@hhcash+"^000000) AvengerPoints to "+getitemname(.@coinid)+"(s). Total PvP Points: [^0000ff"+#cashpoints+"^000000]"; dispbottom "[Cash Trader] You've exchanged ("+@hhcash+") PvP Points to "+getitemname(.@coinid)+"(s). Total PvP Points: ["+#cashpoints+"]"; break; } close; } I tried many Coin to Cashpoints/PvP Points. All of them results to this: How shoul I Fix this?. I've updated to 17033 bumb
-
So that means I have to reupload it and let my players Download it?
-
[Workaround] "Fix" to autoclose on wrong password for new clients
Yudax replied to EvilPuncker's topic in Source Releases
how to load this? -
@Emistry Sorry, Just recently read that it should be posted in Linux ( 3rd party ). Thought this is a wrong section. bump
-
how to change the amount of coins to points?
-
Sir Im having this error, just recently. Ive been running this for 3 weeks with no errors. I dont know what happened. When you convert your coins to pvp points, and relog. It will reset back to 0. Please help me with this sir.
-
What I want is that everybody can see it. Not just me
-
After i patch this. All my items and other player's items are gone. Ive tried to recompile it.
-
Goodmorning, I've tried to patch eveything on my rathena, either of the two patches, then recompiled: [system]_item_bound_v1.0.3.diff [system]_item_bound_v1.1.1.diff but either of them gave me a problem After I patched them. All my items are gone and other player's item too. I really need this itembound sir. Im using rAthena 16862
-
After I patched Itembound. All my equips on all the accounts on the server is gone. Please I need help ASAP!
-
Sir I would like to request or know why my chat box in Ragnarok is not english. Like battle message and all messages