Jump to content

Oxxy

Members
  • Content Count

    142
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by Oxxy

  1. Description: Random bonus stats on SERVER'S MAX LEVEL (defined by MAX_LEVEL variable) script with announce. © Oxxy, 2015, v1.1.1 The only small config: .announce = 1; // Announce that player got max level and his bonus points? .randBonus = 1; // Should the bonus be random? Or a set value? 1 = random, 0 = set value setarray .bonusValues[0], 1000, 1000, 4000; // Array holding the status points that will be given to player. // .bonusValues[0] contains the value that'll given if .randBonus is set to 0 // .bonusValues[1] and .bonusValues[2] are the min and max values that are given in rand. Changelist: v1.0 Initial release v1.1 Added setting, where you can set if the bonus will be random value or the set value. v1.1.1 Added array holding the status points values. PLEASE, USE ONLY LATEST VERISON (LAST VERSION: 1.1.1) Screenshots: bonus_stats.txt bonus_stats1.1.1.txt
  2. Download script from first post. Everything is working now. Sorry for that. -- Added suggestions from posts above.
  3. ;-) Didn't know about the theme, so delete theme or w/e
  4. Oh, didn't know about it, tho would be anyway useful to show these commands in @commands.
  5. 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.
  6. 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.
  7. 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
  8. Oxxy

    SVN

    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
  9. That's an easy to do. pc_setglobalreg(sd, "wedding_sign", 0); *fixed
  10. Use @monsterinfo to see if monster drops the new item.
  11. 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;}
  12. 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.
  13. Oxxy

    AFK Kick

    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;}
  14. 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
  15. 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.
  16. 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);
  17. FVF - Faction versus faction from Lilith's system?
  18. Oxxy

    HULD suggestions

    that's the problem actually.
  19. 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
  20. Oxxy

    HULD suggestions

    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.
  21. 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
  22. I guess it's because of the manner.txt its makes your words look like this?
  23. 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
  24. 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
  25. 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: online_players2.0.txt online_players2.1.txt online_players2.1.2.txt online_players2.1.3.txt
×
×
  • Create New...

Important Information

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