jaBote
Community Contributors-
Content Count
2037 -
Joined
-
Last visited
-
Days Won
43
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by jaBote
-
You can set up a script that sets the quest variables for you. Go to the quest scripts and look up the quest variables.
-
Yes AFAIK
-
Seems you haven't updated your mapcache.dat?
-
It really depends if there's already everything you want to provide your users with from the first day. Are you done on these? If yes, then it's done; if you'd still want to make new features prior to opening it, it isn't. You could also postpone some features you want to code in if you think it isn't mandatory to be implemented before opening the server, and so on... Edit: Moving to Off-Topic since it's not client-side
-
Actually, it's a matter only you can decide. Some server owners just download a fresh copy of the emulator and set it up and consider their server done.
-
What is breaking exactly? Any warning/error on the console to check?
-
If you can have the Warg on the game and the falcon at the same time but your sprites don't show it, I'd rather think that's a client-side limitation, about the sprites. Don't know how to fix that though.
-
[Suggestion] Implementation of Source-based per RO Episode.
jaBote replied to Jezu's topic in Suggestions
I do also think it's a nice idea, but maybe it's excessively difficult to implement... -
For two maps: OnPCKillEvent: if( killedrid == getcharid(3) || !isloggedin(killedrid) || (strcharinfo(3) != "MAPNAME" && strcharinfo(3) != "MAPNAME2") ) For three maps: OnPCKillEvent: if( killedrid == getcharid(3) || !isloggedin(killedrid) || (strcharinfo(3) != "MAPNAME" && strcharinfo(3) != "MAPNAME2" && strcharinfo(3) != "MAPNAME3") ) And so on...
-
I'd reccomend you to just accept it and abide by its directions on scripts, since this can save you from huge problems later on.
-
Did you see this piece of code from your WoE setter script? //---------------------------------------------------------------------------------------------------------------------//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;} You can safely remove this one if you want, since there's no stable branch at Hercules: function script WoEToggler { //<state> = 0|1 if(getarg(0)) { AgitStart; } else { AgitEnd; } return;}
-
Even easier: Look in toasty's for: //woe kill functions for each castle Then change this 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"; For this: setarray .woe_kill_arug$[0],"Manager#arug_cas01::OnAgitEnd2","Manager#arug_cas02::OnAgitEnd2","Manager#arug_cas03::OnAgitEnd2","Manager#arug_cas04::OnAgitEnd2","Manager#arug_cas05::OnAgitEnd2"; setarray .woe_kill_schg$[0],"Manager#schg_cas01::OnAgitEnd2","Manager#schg_cas02::OnAgitEnd2","Manager#schg_cas03::OnAgitEnd2","Manager#schg_cas04::OnAgitEnd2","Manager#schg_cas05::OnAgitEnd2"; Then it should handle WoE 2.0 properly. P.S.: all castles are open by default if they haven't been claimed by a guild.
-
If you only want this to work in only 1 map, try this: Change OnPCKillEvent: if( killedrid == getcharid(3) || !isloggedin(killedrid) ) To OnPCKillEvent: if( killedrid == getcharid(3) || !isloggedin(killedrid) || strcharinfo(3) != "MAPNAME" ) Remember to change MAPNAME to the map name you want it to work.
-
Hi glemor123, My WoE setter NPC is on pre-release status at the moment. I'd prefer to have it tested and debugged prior to coding in full features for it, namely an NPC interface for managing all WoE sessions and some other basic features are sure to be coded in whenever it's released. Toasty's WoE setter still works provided you update the woe_kill events on the constants section AFAIK. Here are some updated ones, taken from my script: // WoE kill functions for each castle in each region setarray .woe_kill_0$[0],"Agit#prtg_cas01::OnAgitEnd","Agit#prtg_cas02::OnAgitEnd","Agit#prtg_cas03::OnAgitEnd","Agit#prtg_cas04::OnAgitEnd","Agit#prtg_cas05::OnAgitEnd"; setarray .woe_kill_1$[0],"Agit#payg_cas01::OnAgitEnd","Agit#payg_cas02::OnAgitEnd","Agit#payg_cas03::OnAgitEnd","Agit#payg_cas04::OnAgitEnd","Agit#payg_cas05::OnAgitEnd"; setarray .woe_kill_2$[0],"Agit#gefg_cas01::OnAgitEnd","Agit#gefg_cas02::OnAgitEnd","Agit#gefg_cas03::OnAgitEnd","Agit#gefg_cas04::OnAgitEnd","Agit#gefg_cas05::OnAgitEnd"; setarray .woe_kill_3$[0],"Agit#aldeg_cas01::OnAgitEnd","Agit#aldeg_cas02::OnAgitEnd","Agit#aldeg_cas03::OnAgitEnd","Agit#aldeg_cas04::OnAgitEnd","Agit#aldeg_cas05::OnAgitEnd"; setarray .woe_kill_4$[0],"Manager#arug_cas01::OnAgitEnd2","Manager#arug_cas02::OnAgitEnd2","Manager#arug_cas03::OnAgitEnd2","Manager#arug_cas04::OnAgitEnd2","Manager#arug_cas05::OnAgitEnd2"; setarray .woe_kill_5$[0],"Manager#schg_cas01::OnAgitEnd2","Manager#schg_cas02::OnAgitEnd2","Manager#schg_cas03::OnAgitEnd2","Manager#schg_cas04::OnAgitEnd2","Manager#schg_cas05::OnAgitEnd2"; setarray .woe_kill_6$[0],"Agit_N01::OnAgitEnd","Agit_N02::OnAgitEnd","Agit_N03::OnAgitEnd","Agit_N04::OnAgitEnd"; // Add your custom regions kill events here. Did you know you set sessions for Toasty's WoE controller by editing the same NPC source?
-
That is, in fact, a NPC.
-
Oh, damn. I made the contrary script code. It should be: if (checkquest(<QUEST_ID>) == -1) erasequest <QUEST_ID>; Sorry! BTW you should change <QUEST_ID> to the quest id you want to remove, but I hope you already knew that. P.S.: I've also edited above to avoid others getting this problem.
-
Yes it is, just remove your entry warps and place them back again when it's woe time, or set mapflag loadevent in all your castles and make a script kick your players out. Euphy's WoE setter also does this (mine won't ATM since I don't feel this will be necessary).
-
SSky's answer to this is right: try to use a woe setter script that just opens your castles and closes any other castle in which you don't want to enable WoE. I'd try to reccomend you to use mine if it wasn't on a developmental pre-release test phase. Try this other one since it's been tested and it's quite solid to use for most purposes.
-
Try this if (checkquest(<QUEST_ID>) == -1) erasequest <QUEST_ID>; for each of your quests instead of trying to remove them directly.
-
You didn't commit your changes before updating (pulling). Please refer to this: http://herc.ws/board/topic/152-obtaining-hercules/?p=1241
-
Yes if the character didn't have that quest.
-
Try to do that again, and scroll a bit up on that window since it usually gives you some more information.
-
The script had an error by default. Change line 25 to: setarray .@reward[0],671,1; //<Item_ID>,<Amount>{,...} And I think the loops at line 45 and 46 aren't correct. If you get problems try changing for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+1) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; } for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+1) getitem .@reward[.@i],.@reward[.@i+1]; to: for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; } for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) getitem .@reward[.@i],.@reward[.@i+1]; Full script fixed (I think): //===== Hercules Script ======================================//= Guild Prize Giveaway//===== By: ==================================================//= AnnieRuru / Mysterious / Joseph//===== Current Version: =====================================//= 1.7//===== Compatible With: =====================================//= Hercules//===== Description: =========================================//= Rewards guild masters of castle owners after each//= War of Emperium session.//===== Additional Comments: =================================//= v1.0 - Intitial Re-release [Mysterious]//= v1.1 - Language structures [Mysterious]//= v1.2 - Added divisions [Mysterious]//= v1.3 - Added proper information [Mysterious]//= v1.4 - Optimized! [Euphy]//= v1.5 - Little bit of cleaning [Mysterious]//= v1.6 - Fixed Agit on/off corruption. [Joseph]//= v1.7 - Fixed overweight issues [Joseph]//= v1.8 - Fixed default script failing to parse, and a //= possible issue on the getitem and overweight //= checking loops [jaBote]//============================================================prontera,163,166,4 script Castle Rewards 871,{ function GetCastle; setarray .@reward[0],671,1; //<Item_ID>,<Amount>{,...} set .@n$,"["+strnpcinfo(0)+"]"; mes "Your guild [^0000FF"+getguildname(getcharid(2))+"^000000] has conquered:"; for(set .@i,0;.@i<getarraysize(.Castles$);set .@i,.@i+1) if (getcastledata(.Castles$[.@i],1) == getcharid(2)) { mes " > "+getcastlename(.Castles$[.@i])+""; set .@c,1; setarray .@uh$[getarraysize(.@uh$)],.Castles$[.@i],(1<<.@i); } if (!.@c) { mes " > No castles."; close; } next; if (select(((getguildmasterid(getcharid(2))==getcharid(0))?((agitcheck()||agitcheck2())?"":"Redeem Reward"):"")+":Close")==2) close; mes .@n$; mes "Please select a castle to redeem your guild reward."; for(set .@i,0;.@i<getarraysize(.@uh$);set .@i,.@i+2) set .@m$,.@m$+($castle_reward&(1<<GetCastle(atoi(.@uh$[.@i+1])))?"^0000FF":"^FF0000")+getcastlename(.@uh$[.@i])+"^000000:"; next; set .@m,select(.@m$)-1; if ($castle_reward&(1<<GetCastle(atoi(.@uh$[.@m*2+1])))) { mes .@n$; mes "Here's your reward for conquering ^0000FF"+getcastlename(.@uh$[.@m*2])+"^000000."; mes "You should divide these among your guild members."; for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) if (!checkweight(.@reward[.@i],.@reward[.@i+1])) { mes " "; mes "^FF0000Overweight!^000000"; close; } for(set .@i,0;.@i<getarraysize(.@reward);set .@i,.@i+2) getitem .@reward[.@i],.@reward[.@i+1]; set $castle_reward,$castle_reward^(1<<GetCastle(atoi(.@uh$[.@m*2+1]))); close; } mes .@n$; mes "It seems like you've redeemed the reward."; close; function GetCastle { for(set .@j,0;.@j<getarraysize(.Castles$);set .@j,.@j+1) { set .@c1,.@c2|(1<<.@j); if (getarg(0)==.@c1) return .@j; } return -1; }OnAgitEnd:OnAgitEnd2: for(set .@i,0;.@i<getarraysize($WOE_CONTROL);set .@i,.@i+4) if (gettime(4)==$WOE_CONTROL[.@i] && gettime(3)==$WOE_CONTROL[.@i+2] && $castle_reward&(1<<GetCastle($WOE_CONTROL[.@i+3])) == 0) set $castle_reward,$castle_reward|(1<<GetCastle($WOE_CONTROL[.@i+3])); end; OnInit: setarray .Castles$, "prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05", "payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05", "gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05", "aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05", "arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05", "schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05"; end;}
-
No, I'm not meaning we haven't the final game (which is paid proprietary software and its redistribution is forbidden by law), I mean the code used to compile that, that remains solely in their developers computer. Since we don't have that source code, we can't do anything about it. Source code: code for making the game. Release: Final version given to users that purchase the game.
-
Nice! Hope I'll finish my exams soon, so I'll have enough time for translating the patches from where I left them. Translations take up quite a lot of time I prefer not to spend unless I'm relatively free since I do them myself.