Jump to content

Dastgir

Script Developers
  • Content Count

    3805
  • Joined

  • Last visited

  • Days Won

    250

Everything posted by Dastgir

  1. Character variables Number: char_reg_num_db Strings : char_reg_str_db Account variables Number: acc_reg_num_db Strings : acc_reg_str_db Note: variables are not stored to sql as soon as it is set, theres some time interval before it is saved to SQL.
  2. The 2014-02-05 works very good and is stable for me. the new textures and lua files on clientside repo was included long ago( clientside repo now even have textures for new clients , I.e new icons introduced at 2014-06 clients) use the keys listed there which passed the test.
  3. 65535 is maximum limit clientside. if the items are disappearing, then I guess you havent done sql updates(the alter table)
  4. Updated to new luafiles(Also included decompiled kRO Lua Files) @r129: https://github.com/ROClientSide/Translation/commit/d09e962445db11fb4f9125e3687a2938c400f775 . Translations to be added soon.
  5. query_sql "SELECT `bank_vault` FROM `account_data` WHERE `account_id`="+getcharid(3),.@bank;mes "You have "+ .@bank +"z in the bank";next;Zeny -=1000;query_sql "UPDATE `account_data` SET `bank_vault`=`bank_vault`+1000 WHERE `account_id`="+getcharid(3);mes "1000z has been deposited to your bank From your wallet.";close; Here you Go.
  6. are you sure you are using eA? if its hE, it would give error because its case-sensitive update your eA which atleast have AgitStart2 Function(WoE: SE) or just comment agitstart2 agitend2 commands. //======================================================================================================//= 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], 75600,75600,75600,75600,75600,75600,75600; setarray .woe_1[0], 79200,79200,79200,79200,79200,79200,79200; setarray .woe_state[0], 0, 1, 2, 1, 2, 1, 2; //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],0,0,0,0,4,0,0; setarray .woe_state_1[0],1,0,4,0,0,0,0; setarray .woe_state_2[0],0,8,0,16,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,154,198,5 script WoE Info 666,{ 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,154,198,5 duplicate(WoE Info) WoE Info#2winfo 666//---------------------------------------------------------------------------------------------------------------------//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 usablefunction script WoEToggler { //<state> = 0|1 if(getarg(0)) { agitstart; agitstart2; } else { agitend; agitend2; } return;}
  7. http://herc.ws/board/tracker/ What you mean? Is this bug? If you feel its a bug, please post it there, so developers can see. and the way to reproduce with the emulator version you use(rA emulator bugs should be posted on rathena forum's bug tracker), but if you want to have support , you are free to open topic.
  8. With background voice? or subtitles in the video?
  9. custom_system patch maybe it did something bad, we cannot do anything if we don't see the edits. The errors says it itself that "Timer cannot be set because the timerID it is using does not exists" If its paid patch, please request the maker of that patch, or give us link so we can check?
  10. Happened to me long ago, when I diffed with 'Extend NPC Dialog Box' patch. So if theres no error on map-server (as you mentioned), just make sure you havent tick Extend Npc Dialog Box diff.
  11. Unknown item means you dont have its content on iteminfo.lua/.lub(assuming you are using new clients). About mob sprite, be sure the SpriteID on npcidentity.lua and the monsterID matches.(and check if your files is been read by the client) or maybe there's already other mob exist with same id on lua file. P.S : Clients read lua if you have diffed with 'Read lua before lub', else client will try to find .lub files from the other grf's mentioned in data.ini
  12. If poring_gnd is not on navigation map lua files(sry, I forgot lua name and currently on mobile), then the navigation would not be shown on that map. (I remember someone asking same problem but with new-1_1 map, and problem was, it was not indexed in navigation lua file).
  13. https://github.com/vthibault/roBrowser/commits/master pushing commits every day. Its in active development. Join roBrowser IRC or roBrowser forums to track the development
  14. tbh, rdata is still used by kRO, but is merged with data.grf time to time(rdata -> kRO Sakray Server uses it)
  15. Its Possible, but I am not in supporting this diff, since its made by Zeph and his own work.
  16. Some Updates: Added Translation for some skills: https://github.com/ROClientSide/Translation/commit/ad274d36c7f092c14983f6f97a1e22788c26aaac Added 2 new skills in skilldescript.lub : https://github.com/ROClientSide/Translation/commit/6a50ca6098d350ff26c267b0b8519b172b85205d Added new texture folder for clients till August 2014: https://github.com/ROClientSide/Translation/commit/aa623db3b82c1258a6f3df670c660a3d48e6f2a4 That QuestID2Display.txt work with your client ? What make it not work with mine ? Tested with 2014-02-05 and 2012-04-10(have you used the new commit for QuestID2Display.txt Fix?)
  17. AFAIk, Basically It was meant to track the items, going from one inventory to other player's inventory
  18. https://github.com/ROClientSide/Translation Thanks. I've tried this, and it works. Mostly. Ran into a couple of problems using this new client: -When launching, it gives me 2 errors: PetInfo and ShadowTable.lub errors. Both say the table is nil. My best guess is that this is caused because I use custom lub files on my server's main grf, in particular jobname.lub, which might need to be updated. -The login background is completely black. I also do not see loading screens. -Using my cloth dye palettes on Kagerou/Oboro causes palette errors. 1) Probably caused due to your outdated datainfo folder. 2) Login background is completely black -> Rediff the client (you probably have chosen wrong diffs) 3) This Repo does not contain KO Palettes, find a good KO palettes(and if you find, please don't forget to share it, I too am finding those palletes)
  19. This is normal, @duel Creates the DUEL, in which you have to invite player to whom you wish to duel if you use @invite PlayerB, the playerB will be invited, and he will have the option to @accept/@reject the duel invitation. If you have created the duel, then you can't be invited to duel by other person(simply @leave your duel, to be able to receive duel invitation from others)
  20. https://github.com/ROClientSide/Translation
  21. Check conf/inter-server.conf (IT contains all information regarding MySQL) probably you have not set correct settings there.
  22. // ==============================================================================prontera,146,170,6 script Guess the Number 748,{// =================== Setting the NPC Name and Prize and amount =============set .@n$,"^FF0000[Guess the Number]^000000";set @prize,7227;//Change the 7227 to your reward item IDset @amoun,1;//Change the 10 to your reward amount// ==================== End of settings =========================================if(.guessstart==1) goto Oneventevent;set .usednumber, rand(1,1000);announce "Guess the Number: Guess the Number Event Started in Prontera!",0;set .guessstart,1;Oneventevent:mes .@n$;mes "Guess the number...It is a number between between 1 and 1,000!";input .@guessnumber;next;if(.@guessnumber > .usednumber) { mes .@n$; mes "My number is ^FF0000SMALLER^000000 than the one you guessed!"; close;} else if(.@guessnumber < .usednumber) { mes .@n$; mes "My number is ^FF0000BIGGER^000000 than the one you guessed!"; close;} else if(.@guessnumber == .usednumber) { announce ""+strcharinfo(0)+" has won the Guess the Number Event! My number was "+.usednumber+"!",0; mes .@n$; mes "You have guessed my number! Congratulations!"; getitem @prize,@amoun; disablenpc "Guess the Number"; set .guessstart,0; close;}}- script guessannouncer -1,{OnMinute09: announce "Guess the Number: Is starting in 1 Minute in Prontera 144 169!",0; sleep 30000; announce "Guess the Number: Is starting in 30 Seconds in Prontera 144 169!",0; sleep 20000; announce "Guess the Number: 10 Seconds! Gather up in Prontera 144 169 quick!",0; sleep 5000; announce "Guess the Number: 5 Seconds Left! Gather up in Prontera 144 169",0; sleep 1000; announce "Guess the Number: 4 Seconds! Gather up in Prontera 144 169",0; sleep 1000; announce "Guess the Number: 3 Seconds! Gather up in Prontera 144 169",0; sleep 1000; announce "Guess the Number: 2 Seconds! Gather up in Prontera 144 169",0; sleep 1000; announce "Guess the Number: 1 Second! Gather up in Prontera 144 169",0; sleep 1000; announce "Guess the Number: The event has started!",0; enablenpc "Guess the Number"; end; OnInit: disablenpc "Guess the Number"; end;} Not sure, if it will work, I just looked for the lines which I feel its wrong(and added a disablenpc command at loading, so the npc is not enabled by default)
  23. Dastgir

    checkemblem()

    Nice command no doubt, but I also do doubt for uses for it, I can't even imagine more than 1 use of it.
  24. IP and Macmcan be changed without vmware too.. @ontopic I havent used bots from year or so, so dont know if they have it by default or not.
  25. Have you changed PACKETVER in src/common/mmo.h to 20130807 and recompiled? Or have you patched with disabled packet encryption diff but on conf/battle/client.conf, its value is set to 2?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.