Oxxy
-
Content Count
142 -
Joined
-
Last visited
-
Days Won
5
Posts posted by Oxxy
-
-
Not working at all for me.
This part "if(select(Players OnlineGMs online["+getarraysize(.GM_Name$)+"]) == 2) {"
Error.
Download script from first post. Everything is working now. Sorry for that.
-- Added suggestions from posts above.
-
I agree, but its has been already suggested here
;-) Didn't know about the theme, so delete theme or w/e
-
---------------------------------------*useatcmd "command";This command will execute an atcommand binding on the attached RID from a script. The three .@atcmd_***** variables will NOT be set when invoking scripts-atcommands this way.---------------------------------------
isn't this enough?
Oh, didn't know about it, tho would be anyway useful to show these commands in @commands.
-
you don't need this anymore, now we can make simpler scripts, just follow the examples in doc folder:
https://github.com/HerculesWS/Hercules/blob/master/doc/sample/npc_trader_sample.txt
Yes i've seen that already, but i want to to fix that script and alive again, i hope you understand my side.
Where's the logic? Its more easier to use the new NPCs.
-
I guess you can just attach player and run doevent "<NPC object name>::<event label>";
I need it to work exactly like @atcommand, but I don't really want to create tons of source-atcommands that are calling npc events.
-
so the title says it.
Make bindatcmd work with atcommand script command.
for example:
bindatcmd "showmvp", "showmvp::OnCall";
then
OnPCLoginEvent: atcommand "@showmvp";
and aswell if its possible make these command add to @commands list.
would be quiet useful
-
You can always update your emulator downloaded through TortoiseGIT, and .zip'ped one is just archived version of git folder.
Anyway, for best experience use TortoiseGIT -
That's an easy to do.
pc_setglobalreg(sd, "wedding_sign", 0);
*fixed
-
Use @monsterinfo to see if monster drops the new item.
-
Here, tested a bit, should be ok:
dicastes01,157,168,5 script Fast-Type Event 421,{ if(getgroupid() >= 99) { mes "Fast-Type event is" + (.Event?"^00FF00 ON^000000":"^FF0000 OFF^000000"); if(select((!.Event?"^00FF00Start":"^FF0000End") + " Event^000000","Normal Player") == 2) { next; goto PlayerMenu; } switch(.Event) { case 1: close2; .Event = 0; .Round = 0; .String$ = ""; announce "Fast-Type Event: A GM has ended the event.",0; break; end; default: close2; donpcevent "Fast-Type Event::OnStart"; end; } end; } PlayerMenu: if(!.Event) { mes "There is no Event right now."; } else if(.String$ == "") { npctalk "Wait for the next round.."; } else { mes "Type the Correct Sentences."; mes "^FF0000" + .String$ + "^000000"; input .@Type$; if( .String$ == "" ) { announce "Sorry, " + strcharinfo(0) + " is a bit slow..",0; close; } if (.String$ == .@Type$) { getitem 7227, 5; //EDIT THE PRIZE HERE announce "Fast-Type Event: " + strcharinfo(0) + " typed the correct string!",0; .String$ = ""; .Round++; close2; donpcevent "Fast-Type Event::OnStart2"; end; } else { close2; announce "" + strcharinfo(0) + " mispelled some strings XD",0; end; } } end; OnMinute00: OnMinute30: if(.Event) end; donpcevent "Fast-Type Event::OnStart"; end; OnStart: announce "Fast-Type Event has started at Event AREA !",0; L_Begin: .Event = 1; .String$ = ""; while(getstrlen( .String$ ) < .Length) { .String$ = .String$ + .List$[rand( getarraysize(.List$))]; } announce "Round "+(.Round+1)+" Started !",0; end; OnStart2: sleep2 5000; if(.Round == .Rounds) { if(!.Event) end; announce "Fast-Type Event: Event is over!",0; .Event = 0; .Round = 0; end; } if(!.Event) end; announce "Fast-Type Event: Next round starts in 5 seconds...",0; sleep2 5000; if(!.Event) end; goto L_Begin; OnInit: .Length = 28; //EDIT THE LENGTH OF CHARACTERS TO BE TYPED .Round = 5; //EDIT THE ROUNDS setarray .List$,";","B","_","D","E","%","=","H","I","J","/","L","M","N","6","P","Q","]","S","T",","; //YOU CAN ADD LETTERS, DIGITS & SYMBOLS HERE.. end;}
-
I guess the line
bindatcmd "killboss",strnpcinfo(3)+"::OnAtCommand", 20,100;
should look like this
bindatcmd "killboss",strnpcinfo(1)+"::OnAtCommand", 20,100;
*strnpcinfo(<type>)This function will return the various parts of the name of the calling NPC.Whatever it returns is determined by type. 0 - The NPC's display name (visible#hidden) 1 - The visible part of the NPC's display name 2 - The hidden part of the NPC's display name 3 - The NPC's unique name (::name) 4 - The name of the map the NPC is in.
You don't have any unique name in NPC's name.
-
Not working.
It's not kicking...no error in ssh.
Try this, buddy:
- script afkwoe -1,{ OnInit: .timetocheck = 60; //Seconds after which idle is checked. .idle_time = 3600; //Idle time in seconds, from which one can be warped. end; OnPCLoginEvent: addtimer .timetocheck*1000,strnpcinfo(1)+"::OnCheckAFK"; end; OnCheckAFK: if(checkidle() >= .idle_time) { atcommand "@kick "+ strcharinfo(0); end; } addtimer .timetocheck*1000,strnpcinfo(1)+"::OnCheckAFK"; end;}
-
thz man! only remove this
clif_map_property(sd,MAPPROPERTY_AGITZONE);
you should actually do it everywhere I said. Because mapflag can be set via @fvfon and in @fvfoff you just shouldn't set map property to nothing, cuz there's no point.
tho np buddy. <3
-
I guess servers like DotA RO, LoL RO, HoN RO, etc you name it.. will eventually fail because if you want to play this kind of server, you go and play a real game. I mean you go play DotA, LoL, HoN and not RO.
-
Yeahp, not show damage!
As I remember right there was switch config. Check out faction.conf in conf folder.
--Tried to find it, there's no switch config.
I'll check the code
Find this in clif.c:
+ if( sd->status.faction_id ) { // Complete Faction System [Lilith]+ if( map[sd->bl.m].flag.fvf ) {+ faction_hp(sd);+ clif_map_property(sd, MAPPROPERTY_AGITZONE);+ }
try to comment
clif_map_property(sd,MAPPROPERTY_AGITZONE);
and then find in atcommand.c
+/*==========================================+ * Complete Faction System [Lilith]+ * @fvfon+ *------------------------------------------*/+ACMD_FUNC(fvfon)+{+ int faction_id = 0, relic_id = 0;++ nullpo_retr(-1, sd);++ if( map[sd->bl.m].flag.fvf ) {+ clif_displaymessage(fd, msg_txt(sd,1513)); // FvF is already on+ return -1;+ }++ if( message )+ sscanf(message, "%d %d", &faction_id, &relic_id);++ map[sd->bl.m].faction.id = faction_id;+ map[sd->bl.m].faction.relic = relic_id;++ map[sd->bl.m].flag.fvf = 1;+ clif_map_property_mapall(sd->bl.m, MAPPROPERTY_AGITZONE);+ map_foreachinmap(faction_reload_fvf_sub, sd->bl.m, BL_ALL);+ clif_displaymessage(fd, msg_txt(sd,1512)); // FvF: On+ return 0;+}
comment this line:
clif_map_property_mapall(sd->bl.m, MAPPROPERTY_AGITZONE);
and then find
+/*==========================================+ * Complete Faction System [Lilith]+ * @fvfoff+ *------------------------------------------*/+ACMD_FUNC(fvfoff)+{+ nullpo_retr(-1, sd);++ if( !map[sd->bl.m].flag.fvf ) {+ clif_displaymessage(fd, msg_txt(sd,1515)); // FvF is already off+ return -1;+ }++ map[sd->bl.m].flag.fvf = 0;+ map[sd->bl.m].faction.id = 0;+ map[sd->bl.m].faction.relic = 0;+ clif_map_property_mapall(sd->bl.m, MAPPROPERTY_NOTHING);+ map_foreachinmap(faction_reload_fvf_sub, sd->bl.m, BL_ALL);+ clif_displaymessage(fd, msg_txt(sd,1514)); // FvF: Off+ return 0;+}+
comment this line:
+ clif_map_property_mapall(sd->bl.m, MAPPROPERTY_NOTHING);
-
FVF - Faction versus faction from Lilith's system?
-
that is not really necessary, I guess they only need time in order to make everything translatable but seems like they are on vocation so all we can do is wait
that's the problem actually.
-
Most of what happened with Cookie on rAthena happened on Skype and IRC
on an old machine, and at the time my conversations took place with him,
I didn't think to screenshot or save any logs, so all you'd have is my
word. Take it with however many grains of salt as you wish.
In short, an abbreviated timeline:
* Cookie contacts me and pressures me to fire Ind and replace with Cookie, I decline
* Cookie and Maki team up and Cookie is hired, with my reluctant support.
*
We warm up to Cookie, Cookie recommends to Maki that Ind be released
(because "Jman won't listen to my bright ideas, Ind is poison to
rAthena, he doesn't know how to lead, is a crappy developer, etc etc"),
dumbly I agree and Ind is removed of permissions and stripped of powers.
*
A few days later I try to get Cookie to change his mind about Ind, and
none of the staff is with me because they all support the all high and
mighty Cookie
* Cookie requests donation Paypal access and I decline,
multiple times. Cookie then (I assume) convinces the staff I'm poison
to rAthena. A bunch of drama surrounding my favoritism towards Ind and
keeping the original team together ensues (original team being Maki,
BrianL, Ind and myself), and to prevent further drama, I resign.
I'm
not sure what exactly happened around Cookie after I left, if he
received his donation access or why he quit. Lately I had been trying to
mend the relationship I used to have with Maki and/or Brian, but
unfortunately they've not been around at all on rAthena or their IRC to
speak with. Seems Akkarin is running the show, but just barely.
Oh, and hello yC. Long time no talk.
RMS: maybe?
http://forum.ratemyserver.net/server-discussion/ggro-closed/msg178532/#msg178532
Oh, that's really sad. Blindly following kRO is just stupid. How many GREAT or atleast GOOD 1x/1x/1x do you see now-a-days? with plenty of online(100+)? I don't see any, EVERY server is using custom things. Like why would you blindly follow kRO, iRO if there's actually no point in doing that? Actually creating new things is much more exciting
-
http://herc.ws/board/topic/9522-suggestion-to-scripts-in-order-to-help-localization/
http://herc.ws/board/topic/9501-suggestion-to-localization-thing/
by the default implementation as stated in the topic by ind, it just translate "mes" and "select" strings
goddamit, I should finally start to use "Search" button.
Btw, I know the possible solution to the problem of dispbottom and stuff. We can make @lang assign a PLAYER_LANG variable to some value. Like if you choose @lang English, then the variable PLAYER_LANG will be set to 1. if, for example, you choose @lang Russian, then the value will be set to 2. And then we can manage scripts with this variables. tho this will increase lines in script sometimes by significant amount.
if(PLAYER_LANG == 1) { dispbottom "Testing variable"; end; }if(PLAYER_LANG == 2) { dispbottom "Проверка переменной"; end; }
that would be pretty ok, if Ind doesnt want to waste really much time.
-
HULD stands for "Hercules Ultimate Localization Design".
So, suggestions are:- Add option to choose if u need to create translations for standart NPCs or not?
- Create command "@reloadlangdb", which will reset the db/translations.conf? So we don't have to restart server
- Ability to translate NPCs display name
- Make system messages and console messages be translatable?
- Make direct assign of variables work
.@md_name$ = _("Endless Tower"); //---> doesn't work set .@md_name$, _("Endless Tower"); //---> tested, work fine for me
and few questions:
- is it possible to translate waitingrooms? like will they show translated things, or it isn't? if no - make them translatable
- is it possible to translate dispbottoms? if no - make them translatable
- is it possible to translate message script command(not mes, but message)? if no - make them translatable
-
I guess it's because of the manner.txt
its makes your words look like this?
-
Here buddy, didn't test it out, but should be working.
prontera,164,171,0 script Farm Zone 123,{ mes "Do you want to enter my Farm Zone?"; if(select("Yes:No") == 2) close; warp "ordeal_3-1",0,0; end; OnMinute10: OnMinute20: OnMinute30: OnMinute40: OnMinute50: OnMinute00: mapwarp "ordeal_3-1","prontera",170,170; end;}// Monstersordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0ordeal_3-1,0,0,0,0 monster War Guardian 1439,200,0,0,0
-
UPDATED command:
Script.c:
find
/*========================================== * Displays a message for the player only (like system messages like "you got an apple" ) *------------------------------------------*/BUILDIN(dispbottom){ TBL_PC *sd=script->rid2sd(st); const char *message; message=script_getstr(st,2); if(sd) clif_disp_onlyself(sd,message,(int)strlen(message)); return true;}
put after
/*========================================== * Coloured DispBottom [By Dastgir] *------------------------------------------*/BUILDIN(dispbottom2){ TBL_PC *sd=script_rid2sd(st); const char *message; unsigned long color; message=script_getstr(st,3); color=strtoul(script_getstr(st,2),NULL,0); if(sd) clif->colormes_e(sd,color,message); return 0;}
then find
BUILDIN_DEF(dispbottom,"s"), //added from jA [Lupus]
put after
BUILDIN_DEF(dispbottom2,"ss"),
Clif.h:
find
int (*colormes) (int fd, enum clif_colors color, const char* msg);
put after
int (*colormes_e) (struct map_session_data * sd,unsigned long color1, const char* msg); //[By Dastgir]
Clif.c:
find
// Modification of clif_messagecolor to send colored messages to players to chat log only (doesn't display overhead)/// 02c1 <packet len>.W <id>.L <color>.L <message>.?Bint clif_colormes(int fd, enum clif_colors color, const char* msg) { size_t msg_len = strlen(msg) + 1; WFIFOHEAD(fd,msg_len + 12); WFIFOW(fd,0) = 0x2C1; WFIFOW(fd,2) = msg_len + 12; WFIFOL(fd,4) = 0; WFIFOL(fd,8) = color_table[color]; safestrncpy((char*)WFIFOP(fd,12), msg, msg_len); WFIFOSET(fd, msg_len + 12); return 0;}
put after
// [By Dastgir]int clif_colormes_e(struct map_session_data * sd,unsigned long color1, const char* msg) { unsigned short msg_len = strlen(msg) + 1; WFIFOHEAD(sd->fd,msg_len + 12); WFIFOW(sd->fd,0) = 0x2C1; WFIFOW(sd->fd,2) = msg_len + 12; WFIFOL(sd->fd,4) = 0; WFIFOL(sd->fd,8) = (color1&0x0000FF) << 16 | (color1&0x00FF00) | (color1&0xFF0000) >> 16; // RGB -> BGR safestrncpy((char*)WFIFOP(sd->fd,12), msg, msg_len); clif_send(WFIFOP(sd->fd,0), WFIFOW(sd->fd,2), &sd->bl, SELF); return 0;}
then find
clif->colormes = clif_colormes;
put after
clif->colormes_e = clif_colormes_e;
recompile and be happy. syntax is the same.
dispbottom2 "0x0000FF","Hello"; // Will send message Hello in blue to player
-
Description:
Shows current players online, then a list with players online © 2015, Oxxy, v2.1.3
The only small config:
.maxPlayersPerPage = 20; // Max number per page that'll be shown. .MinGrpID = 1; // Min. group id to show in GM list. Also player with grp id < .MinGrpID can't see GMs location. .MaxGrpID = 99; // Max. group id to show in GM list. Players that have grp id > .MaxGrpID won't be shown in the GMs list. .showPlayerInfo = 7; // Bitwise variable, // 1 = Show only Base/Job Level after the name // 2 = Show only Map after the name // 3 = Show Base/Job Level + Map after the name // 4 = Show only Job after the name // 5 = Show Job + Base/Job Level // 6 = Show Job + Map // 7 = Show Job + Base/Job level + Map .checkWOE = 1; // If you set this to 1, then it will not show locations during WOE. // 0 to disable this check. .showPlayerInfoWOE = 5; // Show players info while WOE is on? Bitwsie Variable; .checkWOE have to be set to 1. // 1 = Show only Base/Job Level // 2 = Show only Map // 3 = Show Base/Job Level + Map // 4 = Show only Job // 5 = Show Job + Base/Job Level // 7 = Show Job + Base/Job Level + Map .showPeakOnline = 3; // Show peak online? Bitwise variable // 1 = show only in NPC dialog // 2 = show only in waitingroom // 3 = show in NPC and waitingroom together. .announceCurrentOnline = 1; // Announce current online every hour? .allowOtherSortTypes = 1; // Allow sort by map, b.lvl, j.lvl or class? // 1 = yes // 0 = no
Changelist:/* © 2015, Oxxy, v2.0 v1.0 initial release. v1.1 added @online atcommand. v1.2 added GMs online list. v1.2.1 fixed typos. v1.2.2 fixed menu. v1.2.3 fixed more typos. v1.3 added config to show location, level, location+level or nothing but name. v1.3.1 fixed MORE typos, finally should be working. v1.4 Added .MaxGrpID config. See OnInit for description. v1.5 Added GM Level to show together with GM's name. Location of GM will only be shown if the variable .showLocation equals to 1 and your group id is more than 0 v1.5.1 fixed small typo in check of group id. (OnPCLoginEvent and OnPCLogoutEvent) v1.5.2 Instead of SQL query, update waitingroom with script command getusers(1). - ty Dastgir for pointing that out. v1.5.3 Merged .showLocation and .showLevel variable into one bitwise variable .showPlayerInfo - ty Dastgir v1.5.4 Added Job level to show in NPC. so .showPlayerInfo = 1; shows Base and Job level together. v1.6 Added Peak Online v1.7 Added disabling of location show when WOE is on if setting .checkWOE equal to 1. v1.8 Added menu after every .maxPlayersPerPage players, that will allow you to quit at any point, or just continue listing through players. v1.8.1 translated russian string, accidently got from my script. v1.8.2 now only players with .minGrpID can see GMs location, fixed one more russian string. hehe. v1.9 Added Job to show, changed variable .showLocLevel to .showPlayerInfo v1.9.1 Fixed peak online. Now should be saving properly. v1.9.2 Cleaned up code a bit(GM location showing code) v1.9.3 Swapped array variables from .NPC_type to $Global_type -> GMs will be still shown even if you @reloadscript v1.9.4 Added .showPeakOnline bitwise variable. Check OnInit v1.9.5 Added new option .announceCurrentOnline. Check OnInit v1.9.6 Added support of .hidePlayerInfoWOE v1.9.7 Renamed .hidePlayerInfoWOE to .showPlayerInfoWOE, updated info. Check OnInit v1.9.8 Updated script, made it with infinite loop which makes it more user-friendly to players v1.9.9 More explicit conditions - ty GaryMcNabb for helping v2.0 Added X and Y coordinates to show together with GM's location. (Only players with grp id > .MinGrpID can see GM's location) v2.1 Fixed GM Online list, added sorting by player chose. v2.1.1 Deleted useless code. v2.1.2 Fixed small typos. v2.1.3 Fixed users online.*/
PLEASE, USE ONLY THE LATEST VERSION OF THE SCRIPT. (Last version: 2.1.3)
Screenshots:
evilpuncker and buczak reacted to this
[Utility] Random bonus stats on max level.
in Utility Releases
Posted · Edited by Oxxy
Description:
The only small config:
Changelist:
PLEASE, USE ONLY LATEST VERISON (LAST VERSION: 1.1.1)
Screenshots:
bonus_stats.txt
bonus_stats1.1.1.txt