Jump to content

Mumbles

Retired Staff
  • Content Count

    618
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by Mumbles

  1. switch(select("Rune Knight:High Wizard:Arch Bishop:Ranger:Mechanic:Guillotine Cross:Royal Guard:Sorcerer:Sura:Minstrel/Wanderer:Genetic:Shadow Chaser")) High wizard? Whoa, thanks for pointing that out. Forgot to swap that name out in that menu. Updated and fixed; thanks!
  2. I think you misunderstood. The suggestion was to add an option to increase the damage of a specific skill based on race. For example, should this be implemented: bonus3 bSkillAtk,"MO_EXTREMITYFIST",-80,RC_Boss; This item script, in theory, would reduce the amount of damage that Asura Strike does on Boss monsters.
  3. Right now, the skill bonus command bSkillAtk is only generically applicable. It'd be pretty awesome to be able define a monster's race as a value to determine the bonus of a skill. i.e. bonus3 bSkillAtk,n,x,y; Increase damage of skill n by x% against y race mobs (supports skill names)
  4. Wouldn't enablenpc serve the same purpose? I mean, it literally triggers an existing NPC. You could disable the NPC by default by using disablenpc under an OnInit label and re-enable it once a certain condition has been met. I'd recommend adding an extra check for the quest's variable(s) so as to avoid exploitation, but enablenpc will do just what you need.
  5. If I have read this correctly, perhaps you can achieve this without source modifications. A script command can be used to add values for new characters into the char database, so long as the columns exist. With that in mind, here's a script I wrote that you might find of use. - script newcharadd -1,{ OnPCLoginEvent: if(!newcharcreate) { // Check "new char" status // Configuration .@dataA = 1; // Value for colA .@dataB = 2; // Value for colB .@dataC = 3; // Value for colC query_sql "INSERT INTO `char` (colA,colB,colC) WHERE `char_id = " + getcharid(0) + " VALUES ('" + .@dataA + "','" + .@dataB + "','" + .@dataC + "')"; newcharcreate = 1; // Set "new char" status } end; } What this script does is update custom columns in the database with predefined values once a newly created character logs in for the first time. The values being inserted are under the // Configuration comment, which you can readjust to your liking. New characters are determined by the presence of the newcharcreate variable. The only thing you'd need to do is make sure you define the correct data type you want your custom columns to store in the database; if you'd like for them to store strings, make sure you change the .@data variables to strings (.@data$). If you wanted something that specifically detected new character creation prior to logging in, you'll likely need to make source modifications. In regards to deleting data from your custom columns, is it absolutely necessary? Once a character has been deleted, the entire row is removed from the database - custom columns or not.
  6. I'd definitely recommend jTynne's @go alternative. Here's a link to the release topic here on Hercules: http://herc.ws/board/topic/14-utility-added-feature-jtynnes-go-command-alternative-txt-format/
  7. I believe I misunderstood the request. Here's a revised script and response: - script bg_equip -1,{OnPCLoadMapEvent: if(!getmapflag(strcharinfo(3),mf_battleground) { if(isequipped(2220) unequip 2220; // Hat if(isequipped(2222) unequip 2222; // Turban } end; } Just replace the item IDs with your own and add new lines accordingly. This script reads as: When a player loads a map: If they're not on a Battlegrounds map, unequip their Hat if they're wearing one; unequip their Turban if they're wearing one; It's usage would be in a situation where you would want Hats and Turbans to be exclusively used in Battlegrounds. You could add additional prevention by adding a condition to the item's OnEquip script in item_db2.txt 2222,Turban,Turban,5,4500,,300,,3,,0,0xFFFFFFFE,7,2,256,,0,1,7,{},{ if(!getmapflag(strcharinfo(3),mf_battleground) unequip 2222; message strcharinfo(0), "This item can only be worn in Battlegrounds."; },{} This script reads: If you're not on a Battlegrounds map, unequip this Turban when it's equipped and display an error message. if(!getmapflag(strcharinfo(3),mf_battleground) unequip 2222; message strcharinfo(0), "This item can only be worn in Battlegrounds."; If these limitations are for custom equipment, just use your custom item IDs. If you just want to make a custom potion or consumable of some sort, add a condition to the main script: 501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ if(!getmapflag(strcharinfo(3),mf_battleground) { getitem 501; message strcharinfo(0), "This item can only be used in Battlegrounds."; } else itemheal rand(45,65),0; },{},{} This script reads: If you're not on a Battlegrounds map, get a new potion (to replace the one you just used) and display an error message; otherwise, heal. if(!getmapflag(strcharinfo(3),mf_battleground) { getitem 501; message strcharinfo(0), "This item can only be used in Battlegrounds."; } else itemheal rand(45,65),0;
  8. - script bg_noequip -1,{OnPCLoadMapEvent: if(getmapflag(strcharinfo(3),mf_battleground) { if(isequipped(2220) unequip 2220; // Hat if(isequipped(2222) unequip 2222; // Turban } end; } Give this a try; just make sure your battlegrounds maps have the loadevent mapflag set.
  9. ./configure make clean make sql ?
  10. This was moved to /src/map/packets.h
  11. Sorry about that. Had some issues with my host yesterday. Glad to hear it's working out for you now.
  12. The short answer to your question is "no". The somewhat longer answer would be that you wouldn't be able to initialize a temporary NPC variable (.@var/.@var$) if it hasn't been defined yet (where would the NPC get a temporary variable if it has not even been loaded?). I'm not sure what exactly you're trying to do, but you could probably do something really similar with enablenpc/disablenpc.
  13. http://herc.ws/board/topic/902-utility-automatic-third-class-jobs/
  14. Utility: Instant Third-Class Jobs As per spectator's request: http://herc.ws/board/topic/882-rinstant-job-changer/ Description: Allows player to choose a third-class job upon initial login; if the player fails to choose a class for any reason, (s)he will be prompted again upon next login. Download: https://github.com/datmumbles/Scripts/raw/master/util/thirds.txt
  15. Here's a more aesthetically appealing version of your request, with a little notation to help you read it. OnNPCKillEvent: if( strcharinfo(3) == "prt_fild08" && killedrid == 1002 ){ // If a Poring (1002) was killed on "prt_fild08" getmapxy(@m$,@x,@y,0); // Get map and coords from invoking player makeitem 501,1,@m$,@x+rand(3,5),@y+rand(3,5); // Drop item at your feet, randomly between 3-5 cells away monster @m$,0,0,"Poring",1002,1; // Summon a new Poring (1002) named "Poring" on the map } end;
  16. Why not use an item script that simply gets a new item upon use? Example: Fly Wing [infinite] { itemskill "AL_TELEPORT",1; getitem 601,1; } Teleports you and retrieves a new Fly Wing to replace the used one.
  17. Hmm. I wonder what it could be then; that block matches what I have in clif.c. All I changed were files that didn't pertain to player invincibility. As it is, you basically spawn and are targeted instantly by aggresive mobs. Here are some other changes I made to the source, though I doubt they're relevant. http://pastebin.com/raw.php?i=zMJ720QR
  18. Ooh. I guess it does, doesn't it? xD
  19. I recently made a modification to my source in skill.c, where I allowed a menu bypass for Level 2 Teleport. I made this simple modification: - if( sd->state.autocast || ( (sd->skillitem == AL_TELEPORT || battle_config.skip_teleport_lv1_menu) && skilllv == 1 ) || skilllv == 3 )+ if( sd->state.autocast || ( (sd->skillitem == AL_TELEPORT || battle_config.skip_teleport_lv1_menu) && skilllv == 1 ) || skilllv > 1 ) My goal of having the Level 2 menu skip was achieved; however, I managed to break the configuration for player invincibility upon spawn. As it is, my player_invincible_time in player.conf no longer works; I have set to 6000 milliseconds, but you can now be hit upon spawn - likely before your client even fully loads the map. Here's the remaining section of the code: if( sd->state.autocast || ( (sd->skillitem == AL_TELEPORT || battle_config.skip_teleport_lv1_menu) && skilllv == 1 ) || skilllv > 1 ) { if( skilllv == 1 ) pc_randomwarp(sd,CLR_TELEPORT); else pc_setpos(sd,sd->status.save_point.map,sd->status.save_point.x,sd->status.save_point.y,CLR_TELEPORT); break; } clif_skill_nodamage(src,bl,skillid,skilllv,1); if( skilllv == 1 ) clif_skill_warppoint(sd,skillid,skilllv, (unsigned short)-1,0,0,0); else clif_skill_warppoint(sd,skillid,skilllv, (unsigned short)-1,sd->status.save_point.map,0,0); Now, I figured at this line - clif_skill_nodamage(src,bl,skillid,skilllv,1); - it checks the timer for the player invincibility. Do I need to add this line within the first condition's output, or...? I'm at a bit of a loss. Any help is appreciated; thanks in advance.
  20. Looks like a sideways envelope. D: +1 tho
  21. Not sure if this is even a thing, but wouldn't it make more sense to have/make the client read data directly at the source? By this, I do NOT simply mean having the client read from a server-side grf/data folder. For example, instead of the client reading idnum2itemdisplaynametable.txt locally to determine an item name, why not have it read item name directly off the server's item_db? In addition to this, would it be a realistic goal to eventually have a stand-alone client that reads the data folder/grf archive in English (Unicode)? These are just my thoughts; sorry if they seem a little scrambled.
  22. Oddly enough, neither do. I'm not completely new to this, so I'm a little distraught as to what is preventing connections. I even disabled the firewall on both machines, to no avail.
  23. Both machines have no limitations with accepting connections. However, inter_conf.txt (imported) directs the second channel to log into the main server's SQL databases. Would this have anything to do with not being able to get past the server selection menu when choosing the second channel?
  24. Nameless2you's post actually introduces an interesting concept that I'd like to look into, but its not quite what I was trying to do. :c In response to jTynne, it'd be pretty to integrate a global broadcasting system across channels; this could probably be done by reintroducing IRC integration and having each separate channel listening in on the same IRC channel. As for my issue, I wanna get it going similarly to that of iRO's clients, where you can choose what server to play on after logging in; if the servers are hosted on separate machines, you're always using the same login database without lagging a single machine. My problem at the moment is simply failing to connect after selecting the second server, and I'm totally clueless at the moment as to why it happening. xD
×
×
  • Create New...

Important Information

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