Jump to content

Kenpachi

Members
  • Posts

    764
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Kenpachi

  1. I'm an Australian. 70% of ISPs allocate static IP addresses here in standard ADSL plans. WTF; I'll emigrate. Sure it's not hard. I just want to point out that - in germany - this would be a huge security issue. Dude, this wasn't meant as offense... but maybe automatically generating a master password every day/hour would be more secure? @.@(I'm just discussing...) //EDIT: Yeah, okay... you're right.
  2. ../db/mob_avail.txt You can use this file to create a mob server side without editing the client. Just create the database entry and than assign a sprite in mob_avail.txt.
  3. Any error messages in the map server console?
  4. Remove this if (agitcheck() || agitcheck2()) { mes "Sorry you cant enter during woe time."; close; } (4 times)
  5. Isn't it pointless to allow the use of that master password based on IP addresses? Well, i have a nice provider that changes my IP address only one time per month, but the most people get a new IP every day...
  6. I'm at work and can't test it, but this should work the way you want: - script GMLogin -1,{ OnPCLoginEvent: if(GetGMLevel() >= .GMLevel) { Warp("map", x, y); AtCommand("@speed 0"); Announce("GM" + StrCharInfo(0) + " has logged in.", bc_all, .AnnounceColor); } End(); OnInit: Set(.GMLevel, 80); Set(.AnnounceColor, 0x0000FF); End(); } [/codeBOX] Just edit the two variables in the OnInit and the map name and coords in [i]Warp()[/i]. //EDIT: Not fast enough....
  7. You don't have to create it. It's already there. Basically you have to download and configure two separate servers...
  8. [wiki]Edit_Max_Level[/wiki] You have to configure it for each server...
  9. So your goal is to allow @afk only if the player is vending? If yes add if(!sd->state.vending) { clif_displaymessage(fd, "@AFK is only allowed when vending!"); return -1; } below nullpo_retr(-1, sd); and recompile.
  10. Well, removing parts of a script because the emulator is "broken" doesn't make sense. Here is a patch that allows you to check, set or remove every mapflag that's listed in the mapflag enumeration in script.c.RAthena-mapflags_15008_trunk.patch
  11. The message will be shown if the characters base level is greater than 89. Change >= 90 to < 90 Now you'll see the message if your characters base level islower than 90. Same thing. just add a check like this below nullpo_retr(-1, sd);
  12. Are you sure the error belongs to one of the snippets? Actually the error is thrown when you try to compare integers and strings: if( data_isstring(left) && data_isstring(right) ) {// ss => op_2str op_2str(st, op, left->u.str, right->u.str); script_removetop(st, -3, -1);// pop the two values before the top one } else if( data_isint(left) && data_isint(right) ) {// ii => op_2num int i1 = left->u.num; int i2 = right->u.num; script_removetop(st, -2, 0); op_2num(st, op, i1, i2); } else {// invalid argument ShowError("script:op_2: invalid data for operator %sn", script_op2name(op)); script_reportdata(left); script_reportdata(right); script_reportsrc(st); script_removetop(st, -2, 0); script_pushnil(st); st->state = END; }
  13. Just change the condition from if(sd->class_&MAPID_UPPERMASK < MAPID_TAEKWON) to if(sd->class_&MAPID_UPPERMASK >= MAPID_NOVICE_HIGH && sd->class_&MAPID_UPPERMASK < MAPID_BABY && sd->status.base_level >= 90) @manabeast: Sorry, I don't understand your problem.
  14. There is a method called map_foreachpc which will loop through all online players and execute a given method. map_foreachpc(clif_displaymessage(sd->fd, "TEXT"));
  15. You can check the players class with sd->class_&MAPID_UPPERMASK and this enumaration (taken from map.h): enum { MAPID_NOVICE = 0x0, MAPID_SWORDMAN, MAPID_MAGE, MAPID_ARCHER, MAPID_ACOLYTE, MAPID_MERCHANT, MAPID_THIEF, MAPID_TAEKWON, MAPID_WEDDING, MAPID_GUNSLINGER, MAPID_NINJA, MAPID_XMAS, MAPID_SUMMER, //2_1 classes MAPID_SUPER_NOVICE = JOBL_2_1|0x0, MAPID_KNIGHT, MAPID_WIZARD, MAPID_HUNTER, MAPID_PRIEST, MAPID_BLACKSMITH, MAPID_ASSASSIN, MAPID_STAR_GLADIATOR, //2_2 classes MAPID_CRUSADER = JOBL_2_2|0x1, MAPID_SAGE, MAPID_BARDDANCER, MAPID_MONK, MAPID_ALCHEMIST, MAPID_ROGUE, MAPID_SOUL_LINKER, //1-1, advanced MAPID_NOVICE_HIGH = JOBL_UPPER|0x0, MAPID_SWORDMAN_HIGH, MAPID_MAGE_HIGH, MAPID_ARCHER_HIGH, MAPID_ACOLYTE_HIGH, MAPID_MERCHANT_HIGH, MAPID_THIEF_HIGH, //2_1 advanced MAPID_LORD_KNIGHT = JOBL_UPPER|JOBL_2_1|0x1, MAPID_HIGH_WIZARD, MAPID_SNIPER, MAPID_HIGH_PRIEST, MAPID_WHITESMITH, MAPID_ASSASSIN_CROSS, //2_2 advanced MAPID_PALADIN = JOBL_UPPER|JOBL_2_2|0x1, MAPID_PROFESSOR, MAPID_CLOWNGYPSY, MAPID_CHAMPION, MAPID_CREATOR, MAPID_STALKER, //1-1 baby MAPID_BABY = JOBL_BABY|0x0, MAPID_BABY_SWORDMAN, MAPID_BABY_MAGE, MAPID_BABY_ARCHER, MAPID_BABY_ACOLYTE, MAPID_BABY_MERCHANT, MAPID_BABY_THIEF, MAPID_BABY_TAEKWON, //2_1 baby MAPID_SUPER_BABY = JOBL_BABY|JOBL_2_1|0x0, MAPID_BABY_KNIGHT, MAPID_BABY_WIZARD, MAPID_BABY_HUNTER, MAPID_BABY_PRIEST, MAPID_BABY_BLACKSMITH, MAPID_BABY_ASSASSIN, MAPID_BABY_STAR_GLADIATOR, //2_2 baby MAPID_BABY_CRUSADER = JOBL_BABY|JOBL_2_2|0x1, MAPID_BABY_SAGE, MAPID_BABY_BARDDANCER, MAPID_BABY_MONK, MAPID_BABY_ALCHEMIST, MAPID_BABY_ROGUE, MAPID_BABY_SOUL_LINKER, }; [/codeBOX] Example: [code] if(sd->class_&MAPID_UPPERMASK == MAPID_NOVICE) clif_displaymessage(sd->fd, "You're a Novice."); [/code] //EDIT: I think you want to disable @afk for Novices and 1st class characters. Just add this: [code] if(sd->class_&MAPID_UPPERMASK < MAPID_TAEKWON) { clif_displaymessage(sd->fd, "You are not allowed to use @afk!"); return -1; } [/code]below: [code] nullpo_retr(-1, sd); [/code]and recompile.
  16. Yes, if you want MVP cards are dropped with 20% chance instaed of 0.01% without editing the databse, you have to set item_rate_card_boss to 200000.
  17. Sure. Arrays are no problem.But i think in your case checking ID ranges is the more elegant solution.
  18. In ../src/map/mob.c find this function: int mob_dead(struct mob_data *md, struct block_list *src, int type) X: md->bl.x Y; md->bl.y
  19. Hmm, this actually should work. I added this: if(item_id >= 2000) { clif_displaymessage(fd, "NOT ALLOWED!"); return -1; } below this: item_id = item_data->nameid; in the @item function and it worked. You probably added your check at the wrong spot.
  20. There is a plug-in called WeeDiffGen.
  21. Do you live next to an electric tramway? Electric smog can cause such errors.
  22. According to this I am qualified to be a "Core Developer", too....Sorry, but in my opinion being a developer is much more than creating some string manipulation commands. I don't know how skilled ToastOfDoom is, but he/she is not very active in the Source-section.
  23. Kenpachi

    Help..

    Just do as Brian said and install PHP. Otherwise your browser wont be able to parse your PHP file.
  24. Kenpachi

    Help..

    Nevermind. I my brain was in stand-by while writing this....
  25. Kenpachi

    Help..

    I think you're talking about a website, right? Just open it with your web browser.
×
×
  • Create New...