From 069d63bc755e5a9335946eb70ba610956c307386 Mon Sep 17 00:00:00 2001 From: DracoRPG Date: Tue, 17 Apr 2007 00:17:15 +0000 Subject: Massive at+charcommand cleanup, big thanks to HiddenDragon git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10272 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/atcommand.c | 2437 +++++++++++++++++++-------------------------------- 1 file changed, 900 insertions(+), 1537 deletions(-) (limited to 'src/map/atcommand.c') diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 3f2c8ffea..b6fe0e20c 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -64,7 +64,6 @@ ACMD_FUNC(whozeny); // [Valaris] ACMD_FUNC(save); ACMD_FUNC(load); ACMD_FUNC(speed); -ACMD_FUNC(charspeed); ACMD_FUNC(storage); ACMD_FUNC(guildstorage); ACMD_FUNC(option); @@ -99,7 +98,7 @@ ACMD_FUNC(refine); ACMD_FUNC(produce); ACMD_FUNC(memo); ACMD_FUNC(gat); -ACMD_FUNC(packet); +ACMD_FUNC(displaystatus); ACMD_FUNC(statuspoint); ACMD_FUNC(skillpoint); ACMD_FUNC(zeny); @@ -112,7 +111,6 @@ ACMD_FUNC(pethungry); ACMD_FUNC(petrename); ACMD_FUNC(recall); ACMD_FUNC(recallall); -ACMD_FUNC(revive); ACMD_FUNC(night); ACMD_FUNC(day); ACMD_FUNC(doom); @@ -151,7 +149,6 @@ ACMD_FUNC(char_ban); // by Yor ACMD_FUNC(char_unblock); // by Yor ACMD_FUNC(char_unban); // by Yor ACMD_FUNC(mount_peco); // by Valaris -ACMD_FUNC(char_mount_peco); // by Yor ACMD_FUNC(guildspy); // [Syrus22] ACMD_FUNC(partyspy); // [Syrus22] ACMD_FUNC(repairall); // [Valaris] @@ -163,19 +160,14 @@ ACMD_FUNC(hidenpc); ACMD_FUNC(loadnpc); ACMD_FUNC(unloadnpc); ACMD_FUNC(servertime); // by Yor -ACMD_FUNC(chardelitem); // by Yor ACMD_FUNC(jail); // by Yor ACMD_FUNC(unjail); // by Yor ACMD_FUNC(jailfor); // Alias Meruru ACMD_FUNC(jailtime); // Coltaro -ACMD_FUNC(charjailtime); // Coltaro ACMD_FUNC(disguise); // [Valaris] ACMD_FUNC(undisguise); // by Yor -ACMD_FUNC(chardisguise); // Kalaspuff -ACMD_FUNC(charundisguise); // Kalaspuff ACMD_FUNC(email); // by Yor ACMD_FUNC(effect);//by Apple -ACMD_FUNC(character_cart_list); // by Yor ACMD_FUNC(addwarp); // by MouseJstr ACMD_FUNC(follow); // by MouseJstr ACMD_FUNC(skillon); // by MouseJstr @@ -183,14 +175,11 @@ ACMD_FUNC(skilloff); // by MouseJstr ACMD_FUNC(killer); // by MouseJstr ACMD_FUNC(npcmove); // by MouseJstr ACMD_FUNC(killable); // by MouseJstr -ACMD_FUNC(charkillable); // by MouseJstr ACMD_FUNC(dropall); // by MouseJstr -ACMD_FUNC(chardropall); // by MouseJstr ACMD_FUNC(storeall); // by MouseJstr -ACMD_FUNC(charstoreall); // by MouseJstr ACMD_FUNC(skillid); // by MouseJstr ACMD_FUNC(useskill); // by MouseJstr -ACMD_FUNC(displayskill); // by MouseJstr +ACMD_FUNC(displayskill); //[Skotlex] ACMD_FUNC(summon); ACMD_FUNC(rain); ACMD_FUNC(snow); @@ -222,43 +211,14 @@ ACMD_FUNC(pettalk); ACMD_FUNC(users); ACMD_FUNC(reset); ACMD_FUNC(autoloot); // Improved version imported from Freya. - -#ifndef TXT_ONLY -ACMD_FUNC(checkmail); // [Valaris] -ACMD_FUNC(listmail); // [Valaris] -ACMD_FUNC(listnewmail); // [Valaris] -ACMD_FUNC(readmail); // [Valaris] -ACMD_FUNC(sendmail); // [Valaris] -ACMD_FUNC(sendprioritymail); // [Valaris] -ACMD_FUNC(deletemail); // [Valaris] -ACMD_FUNC(refreshonline); // [Valaris] -#endif /* TXT_ONLY */ - ACMD_FUNC(skilltree); // by MouseJstr - ACMD_FUNC(marry); // by MouseJstr ACMD_FUNC(divorce); // by MouseJstr - -ACMD_FUNC(grind); // by MouseJstr -ACMD_FUNC(grind2); // by MouseJstr - -#ifdef DMALLOC -ACMD_FUNC(dmstart); // by MouseJstr -ACMD_FUNC(dmtick); // by MouseJstr -#endif - -ACMD_FUNC(jumptoid); // by Dino9021 ACMD_FUNC(jumptoid2); // by Dino9021 -ACMD_FUNC(recallid); // by Dino9021 ACMD_FUNC(recallid2); // by Dino9021 -ACMD_FUNC(kickid); // by Dino9021 ACMD_FUNC(kickid2); // by Dino9021 -ACMD_FUNC(reviveid); // by Dino9021 ACMD_FUNC(reviveid2); // by Dino9021 -ACMD_FUNC(killid); // by Dino9021 ACMD_FUNC(killid2); // by Dino9021 -ACMD_FUNC(charkillableid); // by Dino9021 -ACMD_FUNC(charkillableid2); // by Dino9021 ACMD_FUNC(sound); ACMD_FUNC(undisguiseall); ACMD_FUNC(disguiseall); @@ -266,12 +226,9 @@ ACMD_FUNC(changelook); ACMD_FUNC(mobinfo); //by Lupus ACMD_FUNC(exp); // by Skotlex ACMD_FUNC(adopt); // by Veider - ACMD_FUNC(version); // by Ancyker - ACMD_FUNC(mutearea); // by MouseJstr ACMD_FUNC(rates); // by MouseJstr - ACMD_FUNC(iteminfo); // Lupus ACMD_FUNC(whodrops); //Skotlex ACMD_FUNC(mapflag); // Lupus @@ -286,23 +243,19 @@ ACMD_FUNC(autotrade);// durf ACMD_FUNC(changeleader);// [Skotlex] ACMD_FUNC(partyoption);// [Skotlex] ACMD_FUNC(changegm);// durf - // Duel [LuzZza] ACMD_FUNC(invite); ACMD_FUNC(duel); ACMD_FUNC(leave); ACMD_FUNC(accept); ACMD_FUNC(reject); - ACMD_FUNC(away); // LuzZza ACMD_FUNC(main); // LuzZza - ACMD_FUNC(clone); // [Valaris] ACMD_FUNC(tonpc); // LuzZza ACMD_FUNC(commands); // [Skotlex] ACMD_FUNC(noask); //LuzZza ACMD_FUNC(request); //[Skotlex] - ACMD_FUNC(homlevel); //[orn] ACMD_FUNC(homevolution); //[orn] ACMD_FUNC(makehomun); //[orn] @@ -313,6 +266,21 @@ ACMD_FUNC(hominfo); //[Toms] ACMD_FUNC(homstats); //[Skotlex] ACMD_FUNC(homshuffle); //[Skotlex] ACMD_FUNC(showmobs); //KarLaeda +ACMD_FUNC(feelreset); //[HiddenDragon] +#ifndef TXT_ONLY +ACMD_FUNC(checkmail); // [Valaris] +ACMD_FUNC(listmail); // [Valaris] +ACMD_FUNC(listnewmail); // [Valaris] +ACMD_FUNC(readmail); // [Valaris] +ACMD_FUNC(sendmail); // [Valaris] +ACMD_FUNC(sendprioritymail); // [Valaris] +ACMD_FUNC(deletemail); // [Valaris] +ACMD_FUNC(refreshonline); // [Valaris] +#endif +#ifdef DMALLOC +ACMD_FUNC(dmstart); // by MouseJstr +ACMD_FUNC(dmtick); // by MouseJstr +#endif /*========================================== *AtCommandInfo atcommand_info[] structure definition @@ -322,327 +290,302 @@ ACMD_FUNC(showmobs); //KarLaeda // First char of commands is configured in atcommand_athena.conf. Leave @ in this list for default value. // to set default level, read atcommand_athena.conf first please. static AtCommandInfo atcommand_info[] = { - { AtCommand_Rura, "@rura", 40, atcommand_rura }, - { AtCommand_Warp, "@warp", 40, atcommand_rura }, - { AtCommand_MapMove, "@mapmove", 40, atcommand_rura }, // /mm command - { AtCommand_Where, "@where", 1, atcommand_where }, - { AtCommand_JumpTo, "@jumpto", 20, atcommand_jumpto }, // + /shift - { AtCommand_JumpTo, "@warpto", 20, atcommand_jumpto }, - { AtCommand_JumpTo, "@goto", 20, atcommand_jumpto }, - { AtCommand_Jump, "@jump", 40, atcommand_jump }, - { AtCommand_Who, "@who", 20, atcommand_who }, - { AtCommand_Who, "@whois", 20, atcommand_who }, - { AtCommand_Who2, "@who2", 20, atcommand_who2 }, - { AtCommand_Who3, "@who3", 20, atcommand_who3 }, - { AtCommand_WhoMap, "@whomap", 20, atcommand_whomap }, - { AtCommand_WhoMap2, "@whomap2", 20, atcommand_whomap2 }, - { AtCommand_WhoMap3, "@whomap3", 20, atcommand_whomap3 }, - { AtCommand_WhoGM, "@whogm", 20, atcommand_whogm }, // by Yor - { AtCommand_Save, "@save", 40, atcommand_save }, - { AtCommand_Load, "@return", 40, atcommand_load }, - { AtCommand_Load, "@load", 40, atcommand_load }, - { AtCommand_Speed, "@speed", 40, atcommand_speed }, - { AtCommand_CharSpeed, "@charspeed", 40, atcommand_charspeed }, - { AtCommand_Storage, "@storage", 1, atcommand_storage }, - { AtCommand_GuildStorage, "@gstorage", 50, atcommand_guildstorage }, - { AtCommand_Option, "@option", 40, atcommand_option }, - { AtCommand_Hide, "@hide", 40, atcommand_hide }, // + /hide - { AtCommand_JobChange, "@jobchange", 40, atcommand_jobchange }, - { AtCommand_JobChange, "@job", 40, atcommand_jobchange }, - { AtCommand_Die, "@die", 1, atcommand_die }, - { AtCommand_Kill, "@kill", 60, atcommand_kill }, - { AtCommand_Alive, "@alive", 60, atcommand_alive }, - { AtCommand_Kami, "@kami", 40, atcommand_kami }, - { AtCommand_KamiB, "@kamib", 40, atcommand_kami }, - { AtCommand_KamiC, "@kamic", 40, atcommand_kami }, //[LuzZza] - { AtCommand_Heal, "@heal", 40, atcommand_heal }, - { AtCommand_Item, "@item", 60, atcommand_item }, - { AtCommand_Item2, "@item2", 60, atcommand_item2 }, - { AtCommand_ItemReset, "@itemreset", 40, atcommand_itemreset }, - { AtCommand_BaseLevelUp, "@lvup", 60, atcommand_baselevelup }, - { AtCommand_BaseLevelUp, "@blevel", 60, atcommand_baselevelup }, - { AtCommand_BaseLevelUp, "@baselvlup", 60, atcommand_baselevelup }, - { AtCommand_JobLevelUp, "@jlevel", 60, atcommand_joblevelup }, - { AtCommand_JobLevelUp, "@joblvup", 60, atcommand_joblevelup }, - { AtCommand_JobLevelUp, "@joblvlup", 60, atcommand_joblevelup }, - { AtCommand_H, "@h", 20, atcommand_help }, - { AtCommand_Help, "@help", 20, atcommand_help }, - { AtCommand_H2, "@h2", 20, atcommand_help2 }, - { AtCommand_Help2, "@help2", 20, atcommand_help2 }, - { AtCommand_GM, "@gm", 100, atcommand_gm }, - { AtCommand_PvPOff, "@pvpoff", 40, atcommand_pvpoff }, - { AtCommand_PvPOn, "@pvpon", 40, atcommand_pvpon }, - { AtCommand_GvGOff, "@gvgoff", 40, atcommand_gvgoff }, - { AtCommand_GvGOff, "@gpvpoff", 40, atcommand_gvgoff }, - { AtCommand_GvGOn, "@gvgon", 40, atcommand_gvgon }, - { AtCommand_GvGOn, "@gpvpon", 40, atcommand_gvgon }, - { AtCommand_Model, "@model", 20, atcommand_model }, - { AtCommand_Go, "@go", 10, atcommand_go }, - { AtCommand_Spawn, "@monster", 50, atcommand_monster }, - { AtCommand_Spawn, "@spawn", 50, atcommand_monster }, - { AtCommand_MonsterSmall, "@monstersmall", 50, atcommand_monstersmall }, - { AtCommand_MonsterBig, "@monsterbig", 50, atcommand_monsterbig }, - { AtCommand_KillMonster, "@killmonster", 60, atcommand_killmonster }, - { AtCommand_KillMonster2, "@killmonster2", 40, atcommand_killmonster2 }, - { AtCommand_Refine, "@refine", 60, atcommand_refine }, - { AtCommand_Produce, "@produce", 60, atcommand_produce }, - { AtCommand_Memo, "@memo", 40, atcommand_memo }, - { AtCommand_GAT, "@gat", 99, atcommand_gat }, // debug function - { AtCommand_Packet, "@packet", 99, atcommand_packet }, // debug function - { AtCommand_Packet, "@packetmode", 99, atcommand_packet }, // debug function - { AtCommand_StatusPoint, "@stpoint", 60, atcommand_statuspoint }, - { AtCommand_SkillPoint, "@skpoint", 60, atcommand_skillpoint }, - { AtCommand_Zeny, "@zeny", 60, atcommand_zeny }, - { AtCommand_Strength, "@str", 60, atcommand_param }, - { AtCommand_Agility, "@agi", 60, atcommand_param }, - { AtCommand_Vitality, "@vit", 60, atcommand_param }, - { AtCommand_Intelligence, "@int", 60, atcommand_param }, - { AtCommand_Dexterity, "@dex", 60, atcommand_param }, - { AtCommand_Luck, "@luk", 60, atcommand_param }, - { AtCommand_GuildLevelUp, "@guildlvup", 60, atcommand_guildlevelup }, - { AtCommand_GuildLevelUp, "@guildlvlup", 60, atcommand_guildlevelup }, - { AtCommand_MakeEgg, "@makeegg", 60, atcommand_makeegg }, - { AtCommand_Hatch, "@hatch", 60, atcommand_hatch }, - { AtCommand_PetFriendly, "@petfriendly", 40, atcommand_petfriendly }, - { AtCommand_PetHungry, "@pethungry", 40, atcommand_pethungry }, - { AtCommand_PetRename, "@petrename", 1, atcommand_petrename }, - { AtCommand_Recall, "@recall", 60, atcommand_recall }, // + /recall - { AtCommand_Revive, "@revive", 60, atcommand_revive }, - { AtCommand_Night, "@night", 80, atcommand_night }, - { AtCommand_Day, "@day", 80, atcommand_day }, - { AtCommand_Doom, "@doom", 80, atcommand_doom }, - { AtCommand_DoomMap, "@doommap", 80, atcommand_doommap }, - { AtCommand_Raise, "@raise", 80, atcommand_raise }, - { AtCommand_RaiseMap, "@raisemap", 80, atcommand_raisemap }, - { AtCommand_Kick, "@kick", 20, atcommand_kick }, // + right click menu for GM "(name) force to quit" - { AtCommand_KickAll, "@kickall", 99, atcommand_kickall }, - { AtCommand_AllSkill, "@allskill", 60, atcommand_allskill }, - { AtCommand_AllSkill, "@allskills", 60, atcommand_allskill }, - { AtCommand_AllSkill, "@skillall", 60, atcommand_allskill }, - { AtCommand_AllSkill, "@skillsall", 60, atcommand_allskill }, - { AtCommand_QuestSkill, "@questskill", 40, atcommand_questskill }, - { AtCommand_LostSkill, "@lostskill", 40, atcommand_lostskill }, - { AtCommand_SpiritBall, "@spiritball", 40, atcommand_spiritball }, - { AtCommand_Party, "@party", 1, atcommand_party }, - { AtCommand_Guild, "@guild", 50, atcommand_guild }, - { AtCommand_AgitStart, "@agitstart", 60, atcommand_agitstart }, - { AtCommand_AgitEnd, "@agitend", 60, atcommand_agitend }, - { AtCommand_MapExit, "@mapexit", 99, atcommand_mapexit }, - { AtCommand_IDSearch, "@idsearch", 60, atcommand_idsearch }, - { AtCommand_Broadcast, "@broadcast", 40, atcommand_broadcast }, // /b and /nb command - { AtCommand_LocalBroadcast, "@localbroadcast", 40, atcommand_localbroadcast }, // /lb and /nlb command - { AtCommand_RecallAll, "@recallall", 80, atcommand_recallall }, - { AtCommand_ReloadItemDB, "@reloaditemdb", 99, atcommand_reloaditemdb }, // admin command - { AtCommand_ReloadMobDB, "@reloadmobdb", 99, atcommand_reloadmobdb }, // admin command - { AtCommand_ReloadSkillDB, "@reloadskilldb", 99, atcommand_reloadskilldb }, // admin command - { AtCommand_ReloadScript, "@reloadscript", 99, atcommand_reloadscript }, // admin command - { AtCommand_ReloadGMDB, "@reloadgmdb", 99, atcommand_reloadgmdb }, // admin command - { AtCommand_ReloadAtcommand, "@reloadatcommand", 99, atcommand_reloadatcommand }, - { AtCommand_ReloadBattleConf, "@reloadbattleconf",99, atcommand_reloadbattleconf }, - { AtCommand_ReloadStatusDB, "@reloadstatusdb", 99, atcommand_reloadstatusdb }, - { AtCommand_ReloadPcDB, "@reloadpcdb", 99, atcommand_reloadpcdb }, - { AtCommand_ReloadMOTD, "@reloadmotd", 99, atcommand_reloadmotd }, // [Valaris] - { AtCommand_MapInfo, "@mapinfo", 99, atcommand_mapinfo }, - { AtCommand_Dye, "@dye", 40, atcommand_dye }, // by fritz - { AtCommand_Dye, "@ccolor", 40, atcommand_dye }, // by fritz - { AtCommand_Hstyle, "@hairstyle", 40, atcommand_hair_style }, // by fritz - { AtCommand_Hstyle, "@hstyle", 40, atcommand_hair_style }, // by fritz - { AtCommand_Hcolor, "@haircolor", 40, atcommand_hair_color }, // by fritz - { AtCommand_Hcolor, "@hcolor", 40, atcommand_hair_color }, // by fritz - { AtCommand_StatAll, "@statall", 60, atcommand_stat_all }, // by fritz - { AtCommand_StatAll, "@statsall", 60, atcommand_stat_all }, - { AtCommand_StatAll, "@allstats", 60, atcommand_stat_all }, // by fritz - { AtCommand_StatAll, "@allstat", 60, atcommand_stat_all }, // by fritz - { AtCommand_CharBlock, "@block", 60, atcommand_char_block }, // by Yor - { AtCommand_CharBlock, "@charblock", 60, atcommand_char_block }, // by Yor - { AtCommand_CharBan, "@ban", 60, atcommand_char_ban }, // by Yor - { AtCommand_CharBan, "@banish", 60, atcommand_char_ban }, // by Yor - { AtCommand_CharBan, "@charban", 60, atcommand_char_ban }, // by Yor - { AtCommand_CharBan, "@charbanish", 60, atcommand_char_ban }, // by Yor - { AtCommand_CharUnBlock, "@unblock", 60, atcommand_char_unblock }, // by Yor - { AtCommand_CharUnBlock, "@charunblock", 60, atcommand_char_unblock }, // by Yor - { AtCommand_CharUnBan, "@unban", 60, atcommand_char_unban }, // by Yor - { AtCommand_CharUnBan, "@unbanish", 60, atcommand_char_unban }, // by Yor - { AtCommand_CharUnBan, "@charunban", 60, atcommand_char_unban }, // by Yor - { AtCommand_CharUnBan, "@charunbanish", 60, atcommand_char_unban }, // by Yor - { AtCommand_MountPeco, "@mountpeco", 20, atcommand_mount_peco }, // by Valaris - { AtCommand_CharMountPeco, "@charmountpeco", 50, atcommand_char_mount_peco }, // by Yor - { AtCommand_GuildSpy, "@guildspy", 60, atcommand_guildspy }, // [Syrus22] - { AtCommand_PartySpy, "@partyspy", 60, atcommand_partyspy }, // [Syrus22] - { AtCommand_RepairAll, "@repairall", 60, atcommand_repairall }, // [Valaris] - { AtCommand_GuildRecall, "@guildrecall", 60, atcommand_guildrecall }, // by Yor - { AtCommand_PartyRecall, "@partyrecall", 60, atcommand_partyrecall }, // by Yor - { AtCommand_Nuke, "@nuke", 60, atcommand_nuke }, // [Valaris] - { AtCommand_Shownpc, "@shownpc", 80, atcommand_shownpc }, // [] - { AtCommand_Hidenpc, "@hidenpc", 80, atcommand_hidenpc }, // [] - { AtCommand_Loadnpc, "@loadnpc", 80, atcommand_loadnpc }, // [] - { AtCommand_Unloadnpc, "@unloadnpc", 80, atcommand_unloadnpc }, // [] - { AtCommand_ServerTime, "@time", 1, atcommand_servertime }, // by Yor - { AtCommand_ServerTime, "@date", 1, atcommand_servertime }, // by Yor - { AtCommand_ServerTime, "@serverdate", 1, atcommand_servertime }, // by Yor - { AtCommand_ServerTime, "@servertime", 1, atcommand_servertime }, // by Yor - { AtCommand_CharDelItem, "@chardelitem", 60, atcommand_chardelitem }, // by Yor - { AtCommand_Jail, "@jail", 60, atcommand_jail }, // by Yor - { AtCommand_UnJail, "@unjail", 60, atcommand_unjail }, // by Yor - { AtCommand_UnJail, "@discharge", 60, atcommand_unjail }, // by Yor - { AtCommand_JailFor, "@jailfor", 60, atcommand_jailfor }, //Meruru - { AtCommand_JailTime, "@jailtime", 1, atcommand_jailtime }, - { AtCommand_CharJailTime, "@charjailtime", 60, atcommand_charjailtime }, - { AtCommand_Disguise, "@disguise", 20, atcommand_disguise }, // [Valaris] - { AtCommand_UnDisguise, "@undisguise", 20, atcommand_undisguise }, // by Yor - { AtCommand_CharDisguise, "@chardisguise", 60, atcommand_chardisguise }, // Kalaspuff - { AtCommand_CharUnDisguise, "@charundisguise", 60, atcommand_charundisguise }, // Kalaspuff - { AtCommand_EMail, "@email", 1, atcommand_email }, // by Yor - { AtCommand_Effect, "@effect", 40, atcommand_effect }, // by Apple - { AtCommand_Char_Cart_List, "@charcartlist", 40, atcommand_character_cart_list }, // by Yor - { AtCommand_Follow, "@follow", 20, atcommand_follow }, // by MouseJstr - { AtCommand_AddWarp, "@addwarp", 60, atcommand_addwarp }, // by MouseJstr - { AtCommand_SkillOn, "@skillon", 80, atcommand_skillon }, // by MouseJstr - { AtCommand_SkillOff, "@skilloff", 80, atcommand_skilloff }, // by MouseJstr - { AtCommand_Killer, "@killer", 60, atcommand_killer }, // by MouseJstr - { AtCommand_NpcMove, "@npcmove", 80, atcommand_npcmove }, // by MouseJstr - { AtCommand_Killable, "@killable", 40, atcommand_killable }, // by MouseJstr - { AtCommand_CharKillable, "@charkillable", 40, atcommand_charkillable }, // by MouseJstr - { AtCommand_Dropall, "@dropall", 40, atcommand_dropall }, // MouseJstr - { AtCommand_Chardropall, "@chardropall", 60, atcommand_chardropall }, // MouseJstr - { AtCommand_Storeall, "@storeall", 40, atcommand_storeall }, // MouseJstr - { AtCommand_Charstoreall, "@charstoreall", 60, atcommand_charstoreall }, // MouseJstr - { AtCommand_Skillid, "@skillid", 40, atcommand_skillid }, // MouseJstr - { AtCommand_Useskill, "@useskill", 40, atcommand_useskill }, // MouseJstr - { AtCommand_DisplaySkill, "@displayskill", 99, atcommand_displayskill }, // MouseJstr -// { AtCommand_Rain, "@rain", 99, atcommand_rain }, //Client no longer supports rain! - { AtCommand_Snow, "@snow", 99, atcommand_snow }, - { AtCommand_Sakura, "@sakura", 99, atcommand_sakura }, - { AtCommand_Clouds, "@clouds", 99, atcommand_clouds }, - { AtCommand_Clouds2, "@clouds2", 99, atcommand_clouds2 }, - { AtCommand_Fog, "@fog", 99, atcommand_fog }, - { AtCommand_Fireworks, "@fireworks", 99, atcommand_fireworks }, - { AtCommand_Leaves, "@leaves", 99, atcommand_leaves }, - { AtCommand_Summon, "@summon", 60, atcommand_summon }, - { AtCommand_AdjGmLvl, "@adjgmlvl", 99, atcommand_adjgmlvl }, - { AtCommand_AdjCmdLvl, "@adjcmdlvl", 99, atcommand_adjcmdlvl }, - { AtCommand_Trade, "@trade", 60, atcommand_trade }, - { AtCommand_Send, "@send", 99, atcommand_send }, - { AtCommand_SetBattleFlag, "@setbattleflag", 99, atcommand_setbattleflag }, - { AtCommand_UnMute, "@unmute", 80, atcommand_unmute }, // [Valaris] - { AtCommand_Clearweather, "@clearweather", 99, atcommand_clearweather }, // Dexity - { AtCommand_UpTime, "@uptime", 1, atcommand_uptime }, // by MC Cameri - { AtCommand_ChangeSex, "@changesex", 60, atcommand_changesex }, // by MC Cameri - { AtCommand_Mute, "@mute", 80, atcommand_mute }, // [celest] - { AtCommand_WhoZeny, "@whozeny", 20, atcommand_whozeny }, // [Valaris] - { AtCommand_Refresh, "@refresh", 1, atcommand_refresh }, // by MC Cameri - { AtCommand_PetId, "@petid", 40, atcommand_petid }, // by MC Cameri - { AtCommand_Identify, "@identify", 40, atcommand_identify }, // by MC Cameri - { AtCommand_Gmotd, "@gmotd", 20, atcommand_gmotd }, // Added by MC Cameri, created by davidsiaw - { AtCommand_MiscEffect, "@misceffect", 50, atcommand_misceffect }, // by MC Cameri - { AtCommand_MobSearch, "@mobsearch", 10, atcommand_mobsearch }, - { AtCommand_CleanMap, "@cleanmap", 40, atcommand_cleanmap }, - { AtCommand_NpcTalk, "@npctalk", 20, atcommand_npctalk }, - { AtCommand_PetTalk, "@pettalk", 10, atcommand_pettalk }, - { AtCommand_Users, "@users", 40, atcommand_users }, - { AtCommand_ResetState, "@reset", 40, atcommand_reset }, - + { AtCommand_Rura, "@rura", 40, atcommand_rura }, + { AtCommand_Warp, "@warp", 40, atcommand_rura }, + { AtCommand_MapMove, "@mapmove", 40, atcommand_rura }, // /mm command + { AtCommand_Where, "@where", 1, atcommand_where }, + { AtCommand_JumpTo, "@jumpto", 20, atcommand_jumpto }, // + /shift + { AtCommand_JumpTo, "@warpto", 20, atcommand_jumpto }, + { AtCommand_JumpTo, "@goto", 20, atcommand_jumpto }, + { AtCommand_Jump, "@jump", 40, atcommand_jump }, + { AtCommand_Who, "@who", 20, atcommand_who }, + { AtCommand_Who, "@whois", 20, atcommand_who }, + { AtCommand_Who2, "@who2", 20, atcommand_who2 }, + { AtCommand_Who3, "@who3", 20, atcommand_who3 }, + { AtCommand_WhoMap, "@whomap", 20, atcommand_whomap }, + { AtCommand_WhoMap2, "@whomap2", 20, atcommand_whomap2 }, + { AtCommand_WhoMap3, "@whomap3", 20, atcommand_whomap3 }, + { AtCommand_WhoGM, "@whogm", 20, atcommand_whogm }, // by Yor + { AtCommand_Save, "@save", 40, atcommand_save }, + { AtCommand_Load, "@return", 40, atcommand_load }, + { AtCommand_Load, "@load", 40, atcommand_load }, + { AtCommand_Speed, "@speed", 40, atcommand_speed }, + { AtCommand_Storage, "@storage", 1, atcommand_storage }, + { AtCommand_GuildStorage, "@gstorage", 50, atcommand_guildstorage }, + { AtCommand_Option, "@option", 40, atcommand_option }, + { AtCommand_Hide, "@hide", 40, atcommand_hide }, // + /hide + { AtCommand_JobChange, "@jobchange", 40, atcommand_jobchange }, + { AtCommand_JobChange, "@job", 40, atcommand_jobchange }, + { AtCommand_Die, "@die", 1, atcommand_die }, + { AtCommand_Kill, "@kill", 60, atcommand_kill }, + { AtCommand_Alive, "@alive", 60, atcommand_alive }, + { AtCommand_Kami, "@kami", 40, atcommand_kami }, + { AtCommand_KamiB, "@kamib", 40, atcommand_kami }, + { AtCommand_KamiC, "@kamic", 40, atcommand_kami }, //[LuzZza] + { AtCommand_Heal, "@heal", 40, atcommand_heal }, + { AtCommand_Item, "@item", 60, atcommand_item }, + { AtCommand_Item2, "@item2", 60, atcommand_item2 }, + { AtCommand_ItemReset, "@itemreset", 40, atcommand_itemreset }, + { AtCommand_BaseLevelUp, "@baselvl", 60, atcommand_baselevelup }, + { AtCommand_BaseLevelUp, "@baselevel", 60, atcommand_baselevelup }, + { AtCommand_BaseLevelUp, "@blevel", 60, atcommand_baselevelup }, + { AtCommand_BaseLevelUp, "@blvl", 60, atcommand_baselevelup }, + { AtCommand_JobLevelUp, "@jlvl", 60, atcommand_joblevelup }, + { AtCommand_JobLevelUp, "@jlevel", 60, atcommand_joblevelup }, + { AtCommand_JobLevelUp, "@joblvl", 60, atcommand_joblevelup }, + { AtCommand_JobLevelUp, "@joblevel", 60, atcommand_joblevelup }, + { AtCommand_H, "@h", 20, atcommand_help }, + { AtCommand_Help, "@help", 20, atcommand_help }, + { AtCommand_H2, "@h2", 20, atcommand_help2 }, + { AtCommand_Help2, "@help2", 20, atcommand_help2 }, + { AtCommand_GM, "@gm", 100,atcommand_gm }, + { AtCommand_PvPOff, "@pvpoff", 40, atcommand_pvpoff }, + { AtCommand_PvPOn, "@pvpon", 40, atcommand_pvpon }, + { AtCommand_GvGOff, "@gvgoff", 40, atcommand_gvgoff }, + { AtCommand_GvGOff, "@gpvpoff", 40, atcommand_gvgoff }, + { AtCommand_GvGOn, "@gvgon", 40, atcommand_gvgon }, + { AtCommand_GvGOn, "@gpvpon", 40, atcommand_gvgon }, + { AtCommand_Model, "@model", 20, atcommand_model }, + { AtCommand_Go, "@go", 10, atcommand_go }, + { AtCommand_Spawn, "@monster", 50, atcommand_monster }, + { AtCommand_Spawn, "@spawn", 50, atcommand_monster }, + { AtCommand_MonsterSmall, "@monstersmall", 50, atcommand_monstersmall }, + { AtCommand_MonsterBig, "@monsterbig", 50, atcommand_monsterbig }, + { AtCommand_KillMonster, "@killmonster", 60, atcommand_killmonster }, + { AtCommand_KillMonster2, "@killmonster2", 40, atcommand_killmonster2 }, + { AtCommand_Refine, "@refine", 60, atcommand_refine }, + { AtCommand_Produce, "@produce", 60, atcommand_produce }, + { AtCommand_Memo, "@memo", 40, atcommand_memo }, + { AtCommand_GAT, "@gat", 99, atcommand_gat }, + { AtCommand_DisplayStatus, "@displaystatus", 99, atcommand_displaystatus }, + { AtCommand_StatusPoint, "@stpoint", 60, atcommand_statuspoint }, + { AtCommand_SkillPoint, "@skpoint", 60, atcommand_skillpoint }, + { AtCommand_Zeny, "@zeny", 60, atcommand_zeny }, + { AtCommand_Strength, "@str", 60, atcommand_param }, + { AtCommand_Agility, "@agi", 60, atcommand_param }, + { AtCommand_Vitality, "@vit", 60, atcommand_param }, + { AtCommand_Intelligence, "@int", 60, atcommand_param }, + { AtCommand_Dexterity, "@dex", 60, atcommand_param }, + { AtCommand_Luck, "@luk", 60, atcommand_param }, + { AtCommand_GuildLevelUp, "@glvl", 60, atcommand_guildlevelup }, + { AtCommand_GuildLevelUp, "@glevel", 60, atcommand_guildlevelup }, + { AtCommand_GuildLevelUp, "@guildlvl", 60, atcommand_guildlevelup }, + { AtCommand_GuildLevelUp, "@guildlevel", 60, atcommand_guildlevelup }, + { AtCommand_MakeEgg, "@makeegg", 60, atcommand_makeegg }, + { AtCommand_Hatch, "@hatch", 60, atcommand_hatch }, + { AtCommand_PetFriendly, "@petfriendly", 40, atcommand_petfriendly }, + { AtCommand_PetHungry, "@pethungry", 40, atcommand_pethungry }, + { AtCommand_PetRename, "@petrename", 1, atcommand_petrename }, + { AtCommand_Recall, "@recall", 60, atcommand_recall }, // + /recall + { AtCommand_Night, "@night", 80, atcommand_night }, + { AtCommand_Day, "@day", 80, atcommand_day }, + { AtCommand_Doom, "@doom", 80, atcommand_doom }, + { AtCommand_DoomMap, "@doommap", 80, atcommand_doommap }, + { AtCommand_Raise, "@raise", 80, atcommand_raise }, + { AtCommand_RaiseMap, "@raisemap", 80, atcommand_raisemap }, + { AtCommand_Kick, "@kick", 20, atcommand_kick }, // + right click menu for GM "(name) force to quit" + { AtCommand_KickAll, "@kickall", 99, atcommand_kickall }, + { AtCommand_AllSkill, "@allskill", 60, atcommand_allskill }, + { AtCommand_AllSkill, "@allskills", 60, atcommand_allskill }, + { AtCommand_AllSkill, "@skillall", 60, atcommand_allskill }, + { AtCommand_AllSkill, "@skillsall", 60, atcommand_allskill }, + { AtCommand_QuestSkill, "@questskill", 40, atcommand_questskill }, + { AtCommand_LostSkill, "@lostskill", 40, atcommand_lostskill }, + { AtCommand_SpiritBall, "@spiritball", 40, atcommand_spiritball }, + { AtCommand_Party, "@party", 1, atcommand_party }, + { AtCommand_Guild, "@guild", 50, atcommand_guild }, + { AtCommand_AgitStart, "@agitstart", 60, atcommand_agitstart }, + { AtCommand_AgitEnd, "@agitend", 60, atcommand_agitend }, + { AtCommand_MapExit, "@mapexit", 99, atcommand_mapexit }, + { AtCommand_IDSearch, "@idsearch", 60, atcommand_idsearch }, + { AtCommand_Broadcast, "@broadcast", 40, atcommand_broadcast }, // /b and /nb command + { AtCommand_LocalBroadcast, "@localbroadcast", 40, atcommand_localbroadcast }, // /lb and /nlb command + { AtCommand_RecallAll, "@recallall", 80, atcommand_recallall }, + { AtCommand_ReloadItemDB, "@reloaditemdb", 99, atcommand_reloaditemdb }, // admin command + { AtCommand_ReloadMobDB, "@reloadmobdb", 99, atcommand_reloadmobdb }, // admin command + { AtCommand_ReloadSkillDB, "@reloadskilldb", 99, atcommand_reloadskilldb }, // admin command + { AtCommand_ReloadScript, "@reloadscript", 99, atcommand_reloadscript }, // admin command + { AtCommand_ReloadGMDB, "@reloadgmdb", 99, atcommand_reloadgmdb }, // admin command + { AtCommand_ReloadAtcommand, "@reloadatcommand", 99, atcommand_reloadatcommand }, + { AtCommand_ReloadBattleConf, "@reloadbattleconf",99, atcommand_reloadbattleconf }, + { AtCommand_ReloadStatusDB, "@reloadstatusdb", 99, atcommand_reloadstatusdb }, + { AtCommand_ReloadPcDB, "@reloadpcdb", 99, atcommand_reloadpcdb }, + { AtCommand_ReloadMOTD, "@reloadmotd", 99, atcommand_reloadmotd }, // [Valaris] + { AtCommand_MapInfo, "@mapinfo", 99, atcommand_mapinfo }, + { AtCommand_Dye, "@dye", 40, atcommand_dye }, // by fritz + { AtCommand_Dye, "@ccolor", 40, atcommand_dye }, // by fritz + { AtCommand_Hstyle, "@hairstyle", 40, atcommand_hair_style }, // by fritz + { AtCommand_Hstyle, "@hstyle", 40, atcommand_hair_style }, // by fritz + { AtCommand_Hcolor, "@haircolor", 40, atcommand_hair_color }, // by fritz + { AtCommand_Hcolor, "@hcolor", 40, atcommand_hair_color }, // by fritz + { AtCommand_StatAll, "@statall", 60, atcommand_stat_all }, // by fritz + { AtCommand_StatAll, "@statsall", 60, atcommand_stat_all }, + { AtCommand_StatAll, "@allstats", 60, atcommand_stat_all }, // by fritz + { AtCommand_StatAll, "@allstat", 60, atcommand_stat_all }, // by fritz + { AtCommand_CharBlock, "@block", 60, atcommand_char_block }, // by Yor + { AtCommand_CharBlock, "@charblock", 60, atcommand_char_block }, // by Yor + { AtCommand_CharBan, "@ban", 60, atcommand_char_ban }, // by Yor + { AtCommand_CharBan, "@banish", 60, atcommand_char_ban }, // by Yor + { AtCommand_CharBan, "@charban", 60, atcommand_char_ban }, // by Yor + { AtCommand_CharBan, "@charbanish", 60, atcommand_char_ban }, // by Yor + { AtCommand_CharUnBlock, "@unblock", 60, atcommand_char_unblock }, // by Yor + { AtCommand_CharUnBlock, "@charunblock", 60, atcommand_char_unblock }, // by Yor + { AtCommand_CharUnBan, "@unban", 60, atcommand_char_unban }, // by Yor + { AtCommand_CharUnBan, "@unbanish", 60, atcommand_char_unban }, // by Yor + { AtCommand_CharUnBan, "@charunban", 60, atcommand_char_unban }, // by Yor + { AtCommand_CharUnBan, "@charunbanish", 60, atcommand_char_unban }, // by Yor + { AtCommand_MountPeco, "@mount", 20, atcommand_mount_peco }, // by Valaris + { AtCommand_MountPeco, "@mountpeco", 20, atcommand_mount_peco }, // by Valaris + { AtCommand_GuildSpy, "@guildspy", 60, atcommand_guildspy }, // [Syrus22] + { AtCommand_PartySpy, "@partyspy", 60, atcommand_partyspy }, // [Syrus22] + { AtCommand_RepairAll, "@repairall", 60, atcommand_repairall }, // [Valaris] + { AtCommand_GuildRecall, "@guildrecall", 60, atcommand_guildrecall }, // by Yor + { AtCommand_PartyRecall, "@partyrecall", 60, atcommand_partyrecall }, // by Yor + { AtCommand_Nuke, "@nuke", 60, atcommand_nuke }, // [Valaris] + { AtCommand_Shownpc, "@shownpc", 80, atcommand_shownpc }, // [] + { AtCommand_Hidenpc, "@hidenpc", 80, atcommand_hidenpc }, // [] + { AtCommand_Loadnpc, "@loadnpc", 80, atcommand_loadnpc }, // [] + { AtCommand_Unloadnpc, "@unloadnpc", 80, atcommand_unloadnpc }, // [] + { AtCommand_ServerTime, "@time", 1, atcommand_servertime }, // by Yor + { AtCommand_ServerTime, "@date", 1, atcommand_servertime }, // by Yor + { AtCommand_ServerTime, "@serverdate", 1, atcommand_servertime }, // by Yor + { AtCommand_ServerTime, "@servertime", 1, atcommand_servertime }, // by Yor + { AtCommand_Jail, "@jail", 60, atcommand_jail }, // by Yor + { AtCommand_UnJail, "@unjail", 60, atcommand_unjail }, // by Yor + { AtCommand_UnJail, "@discharge", 60, atcommand_unjail }, // by Yor + { AtCommand_JailFor, "@jailfor", 60, atcommand_jailfor }, //Meruru + { AtCommand_JailTime, "@jailtime", 1, atcommand_jailtime }, //Change this to 0 in atcommand_conf.txt if you want it accessible to players (you most likely will ;)) + { AtCommand_Disguise, "@disguise", 20, atcommand_disguise }, // [Valaris] + { AtCommand_UnDisguise, "@undisguise", 20, atcommand_undisguise }, // by Yor + { AtCommand_EMail, "@email", 1, atcommand_email }, // by Yor + { AtCommand_Effect, "@effect", 40, atcommand_effect }, // by Apple + { AtCommand_Follow, "@follow", 20, atcommand_follow }, // by MouseJstr + { AtCommand_AddWarp, "@addwarp", 60, atcommand_addwarp }, // by MouseJstr + { AtCommand_SkillOn, "@skillon", 80, atcommand_skillon }, // by MouseJstr + { AtCommand_SkillOff, "@skilloff", 80, atcommand_skilloff }, // by MouseJstr + { AtCommand_Killer, "@killer", 60, atcommand_killer }, // by MouseJstr + { AtCommand_NpcMove, "@npcmove", 80, atcommand_npcmove }, // by MouseJstr + { AtCommand_Killable, "@killable", 40, atcommand_killable }, // by MouseJstr + { AtCommand_Dropall, "@dropall", 40, atcommand_dropall }, // MouseJstr + { AtCommand_Storeall, "@storeall", 40, atcommand_storeall }, // MouseJstr + { AtCommand_Skillid, "@skillid", 40, atcommand_skillid }, // MouseJstr + { AtCommand_Useskill, "@useskill", 40, atcommand_useskill }, // MouseJstr + { AtCommand_Snow, "@snow", 99, atcommand_snow }, + { AtCommand_Sakura, "@sakura", 99, atcommand_sakura }, + { AtCommand_Clouds, "@clouds", 99, atcommand_clouds }, + { AtCommand_Clouds2, "@clouds2", 99, atcommand_clouds2 }, + { AtCommand_Fog, "@fog", 99, atcommand_fog }, + { AtCommand_Fireworks, "@fireworks", 99, atcommand_fireworks }, + { AtCommand_Leaves, "@leaves", 99, atcommand_leaves }, + { AtCommand_Summon, "@summon", 60, atcommand_summon }, + { AtCommand_AdjGmLvl, "@adjgmlvl", 99, atcommand_adjgmlvl }, + { AtCommand_AdjCmdLvl, "@adjcmdlvl", 99, atcommand_adjcmdlvl }, + { AtCommand_Trade, "@trade", 60, atcommand_trade }, + { AtCommand_Send, "@send", 99, atcommand_send }, + { AtCommand_SetBattleFlag, "@setbattleflag", 99, atcommand_setbattleflag }, + { AtCommand_UnMute, "@unmute", 80, atcommand_unmute }, // [Valaris] + { AtCommand_Clearweather, "@clearweather", 99, atcommand_clearweather }, // Dexity + { AtCommand_UpTime, "@uptime", 1, atcommand_uptime }, // by MC Cameri + { AtCommand_ChangeSex, "@changesex", 60, atcommand_changesex }, // by MC Cameri <- do we still need this? [Foruken] <- why not? [Skotlex] + { AtCommand_Mute, "@mute", 80, atcommand_mute }, // [celest] + { AtCommand_WhoZeny, "@whozeny", 20, atcommand_whozeny }, // [Valaris] + { AtCommand_Refresh, "@refresh", 1, atcommand_refresh }, // by MC Cameri + { AtCommand_PetId, "@petid", 40, atcommand_petid }, // by MC Cameri + { AtCommand_Identify, "@identify", 40, atcommand_identify }, // by MC Cameri + { AtCommand_Gmotd, "@gmotd", 20, atcommand_gmotd }, // Added by MC Cameri, created by davidsiaw + { AtCommand_MiscEffect, "@misceffect", 50, atcommand_misceffect }, // by MC Cameri + { AtCommand_MobSearch, "@mobsearch", 10, atcommand_mobsearch }, + { AtCommand_CleanMap, "@cleanmap", 40, atcommand_cleanmap }, + { AtCommand_NpcTalk, "@npctalk", 20, atcommand_npctalk }, + { AtCommand_PetTalk, "@pettalk", 10, atcommand_pettalk }, + { AtCommand_Users, "@users", 40, atcommand_users }, + { AtCommand_ResetState, "@reset", 40, atcommand_reset }, + { AtCommand_SkillTree, "@skilltree", 40, atcommand_skilltree }, // [MouseJstr] + { AtCommand_Marry, "@marry", 40, atcommand_marry }, // [MouseJstr] + { AtCommand_Divorce, "@divorce", 40, atcommand_divorce }, // [MouseJstr] + { AtCommand_JumpToId2, "@jumptoid2", 20, atcommand_jumptoid2 }, // [Dino9021] + { AtCommand_JumpToId2, "@warptoid2", 20, atcommand_jumptoid2 }, // [Dino9021] + { AtCommand_JumpToId2, "@gotoid2", 20, atcommand_jumptoid2 }, // [Dino9021] + { AtCommand_RecallId2, "@recallid2", 60, atcommand_recallid2 }, // [Dino9021] + { AtCommand_KickId2, "@kickid2", 99, atcommand_kickid2 }, // [Dino9021] + { AtCommand_ReviveId2, "@reviveid2", 60, atcommand_reviveid2 }, // [Dino9021] + { AtCommand_KillId2, "@killid2", 60, atcommand_killid2 }, // [Dino9021] + { AtCommand_Sound, "@sound", 40, atcommand_sound }, + { AtCommand_UndisguiseAll, "@undisguiseall", 99, atcommand_undisguiseall }, + { AtCommand_DisguiseAll, "@disguiseall", 99, atcommand_disguiseall }, + { AtCommand_ChangeLook, "@changelook", 60, atcommand_changelook }, + { AtCommand_AutoLoot, "@autoloot", 10, atcommand_autoloot }, // Upa-Kun + { AtCommand_MobInfo, "@mobinfo", 1, atcommand_mobinfo }, // [Lupus] + { AtCommand_MobInfo, "@monsterinfo", 1, atcommand_mobinfo }, // [Lupus] + { AtCommand_MobInfo, "@mi", 1, atcommand_mobinfo }, // [Lupus] + { AtCommand_Exp, "@exp", 1, atcommand_exp }, // [Skotlex] + { AtCommand_Adopt, "@adopt", 40, atcommand_adopt }, // [Veider] + { AtCommand_Version, "@version", 1, atcommand_version }, + { AtCommand_MuteArea, "@mutearea", 99, atcommand_mutearea }, // MouseJstr + { AtCommand_MuteArea, "@stfu", 99, atcommand_mutearea }, // MouseJstr + { AtCommand_Rates, "@rates", 1, atcommand_rates }, // MouseJstr + { AtCommand_ItemInfo, "@iteminfo", 1, atcommand_iteminfo }, // [Lupus] + { AtCommand_ItemInfo, "@ii", 1, atcommand_iteminfo }, // [Lupus] + { AtCommand_WhoDrops, "@whodrops", 1, atcommand_whodrops }, // [Skotlex] + { AtCommand_MapFlag, "@mapflag", 99, atcommand_mapflag }, // [Lupus] + { AtCommand_Me, "@me", 20, atcommand_me }, //added by massdriller, code by lordalfa + { AtCommand_MonsterIgnore, "@monsterignore", 99, atcommand_monsterignore }, // [Valaris] + { AtCommand_MonsterIgnore, "@battleignore", 99, atcommand_monsterignore }, + { AtCommand_FakeName, "@fakename", 20, atcommand_fakename }, // [Valaris] + { AtCommand_Size, "@size", 20, atcommand_size }, + { AtCommand_ShowExp, "@showexp", 10, atcommand_showexp}, + { AtCommand_ShowZeny, "@showzeny", 10, atcommand_showzeny}, + { AtCommand_ShowDelay, "@showdelay", 1, atcommand_showdelay}, + { AtCommand_AutoTrade, "@autotrade", 10, atcommand_autotrade }, // durf + { AtCommand_AutoTrade, "@at", 10, atcommand_autotrade }, + { AtCommand_ChangeGM, "@changegm", 10, atcommand_changegm }, // durf + { AtCommand_ChangeLeader, "@changeleader", 10, atcommand_changeleader }, // durf + { AtCommand_PartyOption, "@partyoption", 10, atcommand_partyoption}, // durf + { AtCommand_Invite, "@invite", 1, atcommand_invite }, // By LuzZza + { AtCommand_Duel, "@duel", 1, atcommand_duel }, // By LuzZza + { AtCommand_Leave, "@leave", 1, atcommand_leave }, // By LuzZza + { AtCommand_Accept, "@accept", 1, atcommand_accept }, // By LuzZza + { AtCommand_Reject, "@reject", 1, atcommand_reject }, // By LuzZza + { AtCommand_Away, "@away", 1, atcommand_away }, // [LuzZza] + { AtCommand_Away, "@aw", 1, atcommand_away }, // [LuzZza] + { AtCommand_Main, "@main", 1, atcommand_main }, // [LuzZza] + { AtCommand_Clone, "@clone", 50, atcommand_clone }, + { AtCommand_Clone, "@slaveclone", 50, atcommand_clone }, + { AtCommand_Clone, "@evilclone", 50, atcommand_clone }, // [Valaris] + { AtCommand_ToNPC, "@tonpc", 40, atcommand_tonpc }, // LuzZza + { AtCommand_Commands, "@commands", 1, atcommand_commands }, // [Skotlex] + { AtCommand_NoAsk, "@noask", 1, atcommand_noask }, // [LuzZza] + { AtCommand_Request, "@request", 20, atcommand_request }, // [Skotlex] + { AtCommand_HomLevel, "@hlvl", 60, atcommand_homlevel }, + { AtCommand_HomLevel, "@hlevel", 60, atcommand_homlevel }, + { AtCommand_HomLevel, "@homlvl", 60, atcommand_homlevel }, + { AtCommand_HomLevel, "@homlevel", 60, atcommand_homlevel }, + { AtCommand_HomEvolution, "@homevolution", 60, atcommand_homevolution }, + { AtCommand_MakeHomun, "@makehomun", 60, atcommand_makehomun }, + { AtCommand_HomFriendly, "@homfriendly", 60, atcommand_homfriendly }, + { AtCommand_HomHungry, "@homhungry", 60, atcommand_homhungry }, + { AtCommand_HomTalk, "@homtalk", 10, atcommand_homtalk }, + { AtCommand_HomInfo, "@hominfo", 1, atcommand_hominfo }, + { AtCommand_HomStats, "@homstats", 1, atcommand_homstats }, + { AtCommand_HomShuffle, "@homshuffle", 60, atcommand_homshuffle }, + { AtCommand_ShowMobs, "@showmobs", 10, atcommand_showmobs }, //KarLaeda + { AtCommand_FeelReset, "@feelreset", 10, atcommand_feelreset }, //[HiddenDragon] #ifndef TXT_ONLY // sql-only commands - { AtCommand_CheckMail, "@checkmail", 1, atcommand_listmail }, // [Valaris] - { AtCommand_ListMail, "@listmail", 1, atcommand_listmail }, // [Valaris] - { AtCommand_ListNewMail, "@listnewmail", 1, atcommand_listmail }, // [Valaris] - { AtCommand_ReadMail, "@readmail", 1, atcommand_readmail }, // [Valaris] - { AtCommand_DeleteMail, "@deletemail", 1, atcommand_readmail }, // [Valaris] - { AtCommand_SendMail, "@sendmail", 1, atcommand_sendmail }, // [Valaris] - { AtCommand_SendPriorityMail, "@sendprioritymail",80, atcommand_sendmail }, // [Valaris] - { AtCommand_RefreshOnline, "@refreshonline", 99, atcommand_refreshonline }, // [Valaris] - -#endif /* TXT_ONLY */ - { AtCommand_SkillTree, "@skilltree", 40, atcommand_skilltree }, // [MouseJstr] - { AtCommand_Marry, "@marry", 40, atcommand_marry }, // [MouseJstr] - { AtCommand_Divorce, "@divorce", 40, atcommand_divorce }, // [MouseJstr] - { AtCommand_Grind, "@grind", 99, atcommand_grind }, // [MouseJstr] - { AtCommand_Grind2, "@grind2", 99, atcommand_grind2 }, // [MouseJstr] - + { AtCommand_CheckMail, "@checkmail", 1, atcommand_listmail }, // [Valaris] + { AtCommand_ListMail, "@listmail", 1, atcommand_listmail }, // [Valaris] + { AtCommand_ListNewMail, "@listnewmail", 1, atcommand_listmail }, // [Valaris] + { AtCommand_ReadMail, "@readmail", 1, atcommand_readmail }, // [Valaris] + { AtCommand_DeleteMail, "@deletemail", 1, atcommand_readmail }, // [Valaris] + { AtCommand_SendMail, "@sendmail", 1, atcommand_sendmail }, // [Valaris] + { AtCommand_SendPriorityMail, "@sendprioritymail",80, atcommand_sendmail }, // [Valaris] + { AtCommand_RefreshOnline, "@refreshonline", 99, atcommand_refreshonline }, // [Valaris] +#endif #ifdef DMALLOC - { AtCommand_DMStart, "@dmstart", 99, atcommand_dmstart }, // [MouseJstr] - { AtCommand_DMTick, "@dmtick", 99, atcommand_dmtick }, // [MouseJstr] + { AtCommand_DMStart, "@dmstart", 99, atcommand_dmstart }, // [MouseJstr] + { AtCommand_DMTick, "@dmtick", 99, atcommand_dmtick }, // [MouseJstr] #endif - - { AtCommand_JumpToId, "@jumptoid", 20, atcommand_jumptoid }, // [Dino9021] - { AtCommand_JumpToId, "@warptoid", 20, atcommand_jumptoid }, // [Dino9021] - { AtCommand_JumpToId, "@gotoid", 20, atcommand_jumptoid }, // [Dino9021] - { AtCommand_JumpToId2, "@jumptoid2", 20, atcommand_jumptoid2 }, // [Dino9021] - { AtCommand_JumpToId2, "@warptoid2", 20, atcommand_jumptoid2 }, // [Dino9021] - { AtCommand_JumpToId2, "@gotoid2", 20, atcommand_jumptoid2 }, // [Dino9021] - { AtCommand_RecallId, "@recallid", 60, atcommand_recallid }, // [Dino9021] - { AtCommand_RecallId2, "@recallid2", 60, atcommand_recallid2 }, // [Dino9021] - { AtCommand_KickId, "@kickid", 99, atcommand_kickid }, // [Dino9021] - { AtCommand_KickId2, "@kickid2", 99, atcommand_kickid2 }, // [Dino9021] - { AtCommand_ReviveId, "@reviveid", 60, atcommand_reviveid }, // [Dino9021] - { AtCommand_ReviveId2, "@reviveid2", 60, atcommand_reviveid2 }, // [Dino9021] - { AtCommand_KillId, "@killid", 60, atcommand_killid }, // [Dino9021] - { AtCommand_KillId2, "@killid2", 60, atcommand_killid2 }, // [Dino9021] - { AtCommand_CharKillableId, "@charkillableid", 40, atcommand_charkillableid }, // [Dino9021] - { AtCommand_CharKillableId2, "@charkillableid2", 40, atcommand_charkillableid2 }, // [Dino9021] - - { AtCommand_Sound, "@sound", 40, atcommand_sound }, - { AtCommand_UndisguiseAll, "@undisguiseall", 99, atcommand_undisguiseall }, - { AtCommand_DisguiseAll, "@disguiseall", 99, atcommand_disguiseall }, - { AtCommand_ChangeLook, "@changelook", 60, atcommand_changelook }, - { AtCommand_AutoLoot, "@autoloot", 10, atcommand_autoloot }, // Upa-Kun - { AtCommand_MobInfo, "@mobinfo", 1, atcommand_mobinfo }, // [Lupus] - { AtCommand_MobInfo, "@monsterinfo", 1, atcommand_mobinfo }, // [Lupus] - { AtCommand_MobInfo, "@mi", 1, atcommand_mobinfo }, // [Lupus] - { AtCommand_Exp, "@exp", 1, atcommand_exp }, // [Skotlex] - { AtCommand_Adopt, "@adopt", 40, atcommand_adopt }, // [Veider] - { AtCommand_Version, "@version", 1, atcommand_version }, - - { AtCommand_MuteArea, "@mutearea", 99, atcommand_mutearea }, // MouseJstr - { AtCommand_MuteArea, "@stfu", 99, atcommand_mutearea }, // MouseJstr - { AtCommand_Rates, "@rates", 1, atcommand_rates }, // MouseJstr - - { AtCommand_ItemInfo, "@iteminfo", 1, atcommand_iteminfo }, // [Lupus] - { AtCommand_ItemInfo, "@ii", 1, atcommand_iteminfo }, // [Lupus] - { AtCommand_WhoDrops, "@whodrops", 1, atcommand_whodrops }, // [Skotlex] - { AtCommand_MapFlag, "@mapflag", 99, atcommand_mapflag }, // [Lupus] - - { AtCommand_Me, "@me", 20, atcommand_me }, //added by massdriller, code by lordalfa - { AtCommand_MonsterIgnore, "@monsterignore", 99, atcommand_monsterignore }, // [Valaris] - { AtCommand_MonsterIgnore, "@battleignore", 99, atcommand_monsterignore }, - { AtCommand_FakeName, "@fakename", 20, atcommand_fakename }, // [Valaris] - { AtCommand_Size, "@size", 20, atcommand_size }, - { AtCommand_ShowExp, "@showexp", 10, atcommand_showexp}, - { AtCommand_ShowZeny, "@showzeny", 10, atcommand_showzeny}, - { AtCommand_ShowDelay, "@showdelay", 1, atcommand_showdelay}, - { AtCommand_AutoTrade, "@autotrade", 10, atcommand_autotrade }, // durf - { AtCommand_AutoTrade, "@at", 10, atcommand_autotrade }, - { AtCommand_ChangeGM, "@changegm", 10, atcommand_changegm }, // durf - { AtCommand_ChangeLeader, "@changeleader", 10, atcommand_changeleader }, // durf - { AtCommand_PartyOption, "@partyoption", 10, atcommand_partyoption}, // durf - { AtCommand_Invite, "@invite", 1, atcommand_invite }, // By LuzZza - { AtCommand_Duel, "@duel", 1, atcommand_duel }, // By LuzZza - { AtCommand_Leave, "@leave", 1, atcommand_leave }, // By LuzZza - { AtCommand_Accept, "@accept", 1, atcommand_accept }, // By LuzZza - { AtCommand_Reject, "@reject", 1, atcommand_reject }, // By LuzZza - { AtCommand_Away, "@away", 1, atcommand_away }, // [LuzZza] - { AtCommand_Away, "@aw", 1, atcommand_away }, // [LuzZza] - { AtCommand_Main, "@main", 1, atcommand_main }, // [LuzZza] - { AtCommand_Clone, "@clone", 50, atcommand_clone }, - { AtCommand_Clone, "@slaveclone", 50, atcommand_clone }, - { AtCommand_Clone, "@evilclone", 50, atcommand_clone }, // [Valaris] - { AtCommand_ToNPC, "@tonpc", 40, atcommand_tonpc }, // LuzZza - { AtCommand_Commands, "@commands", 1, atcommand_commands }, // [Skotlex] - { AtCommand_NoAsk, "@noask", 1, atcommand_noask }, // [LuzZza] - { AtCommand_Request, "@request", 20, atcommand_request }, // [Skotlex] - - { AtCommand_HomLevel, "@homlvup", 60, atcommand_homlevel }, - { AtCommand_HomEvolution, "@homevolution", 60, atcommand_homevolution }, - { AtCommand_MakeHomun, "@makehomun", 60, atcommand_makehomun }, - { AtCommand_HomFriendly, "@homfriendly", 60, atcommand_homfriendly }, - { AtCommand_HomHungry, "@homhungry", 60, atcommand_homhungry }, - { AtCommand_HomTalk, "@homtalk", 10, atcommand_homtalk }, - { AtCommand_HomInfo, "@hominfo", 1, atcommand_hominfo }, - { AtCommand_HomStats, "@homstats", 1, atcommand_homstats }, - { AtCommand_HomShuffle, "@homshuffle", 60, atcommand_homshuffle }, - { AtCommand_ShowMobs, "@showmobs", 10, atcommand_showmobs }, //KarLaeda // add new commands before this line - { AtCommand_Unknown, NULL, 1, NULL } + { AtCommand_Unknown, NULL, 1, NULL } }; /*========================================= @@ -650,7 +593,7 @@ static AtCommandInfo atcommand_info[] = { *----------------------------------------- */ char atcmd_output[200]; -char atcmd_player_name[100]; +char atcmd_player_name[NAME_LENGTH]; char atcmd_temp[100]; /*========================================== @@ -670,13 +613,13 @@ char *estr_lower(char *str) // compare function for sorting high to lowest int hightolow_compare (const void * a, const void * b) { - return ( *(int*)b - *(int*)a ); + return ( *(int*)b - *(int*)a ); } // compare function for sorting lowest to highest int lowtohigh_compare (const void * a, const void * b) { - return ( *(int*)a - *(int*)b ); + return ( *(int*)a - *(int*)b ); } //----------------------------------------------------------- @@ -1046,9 +989,9 @@ int atcommand_send(const int fd, struct map_session_data* sd, const char* comman || sscanf(message, "%x", &type)==1) ) { clif_displaymessage(fd, "Usage:"); - clif_displaymessage(fd, " @send len "); - clif_displaymessage(fd, " @send {}*"); - clif_displaymessage(fd, " Value: or S\"\""); + clif_displaymessage(fd, " @send len "); + clif_displaymessage(fd, " @send {}*"); + clif_displaymessage(fd, " Value: or S\"\""); return -1; } @@ -1311,13 +1254,12 @@ int atcommand_rura( const int fd, struct map_session_data* sd, const char* comma clif_displaymessage(fd, msg_txt(248)); return -1; } - if (pc_setpos(sd, mapindex, x, y, 3) == 0) - clif_displaymessage(fd, msg_txt(0)); // Warped. - else { + if (pc_setpos(sd, mapindex, x, y, 3) != 0) { clif_displaymessage(fd, msg_txt(1)); // Map not found. return -1; } + clif_displaymessage(fd, msg_txt(0)); // Warped. return 0; } @@ -1328,7 +1270,6 @@ int atcommand_rura( const int fd, struct map_session_data* sd, const char* comma int atcommand_where(const int fd, struct map_session_data* sd, const char* command, const char* message) { struct map_session_data *pl_sd = NULL; - int GM_level, pl_GM_level; nullpo_retr(-1, sd); memset(atcmd_player_name, '\0', sizeof atcmd_player_name); @@ -1337,20 +1278,23 @@ int atcommand_where(const int fd, struct map_session_data* sd, const char* comma clif_displaymessage(fd, "Please, enter a player name (usage: @where )."); return -1; } - pl_sd = map_nick2sd(atcmd_player_name); - - if (pl_sd == NULL) + + if ((pl_sd = map_nick2sd(atcmd_player_name)) == NULL) + { + clif_displaymessage(fd, msg_txt(3)); // Character not found. return -1; + } if(strncmp(pl_sd->status.name,atcmd_player_name,NAME_LENGTH)!=0) + { + clif_displaymessage(fd, "You already know where you are..."); return -1; + } - GM_level = pc_isGM(sd);//also hide gms depending on settings in battle_athena.conf, show if they are aid [Kevin] - pl_GM_level = pc_isGM(pl_sd); - if (battle_config.hide_GM_session) { - if(GM_level < pl_GM_level) { - if (!(battle_config.who_display_aid && GM_level >= battle_config.who_display_aid)) { + if(pc_isGM(sd) < pc_isGM(pl_sd)) { + if (!(battle_config.who_display_aid && pc_isGM(sd) >= battle_config.who_display_aid)) { + clif_displaymessage(fd, msg_txt(3)); // Character not found. return -1; } } @@ -1373,30 +1317,38 @@ int atcommand_jumpto(const int fd, struct map_session_data* sd, const char* comm nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) { - clif_displaymessage(fd, "Please, enter a player name (usage: @jumpto/@warpto/@goto )."); + if (!message || !*message) { + clif_displaymessage(fd, "Please, enter a player name (usage: @jumpto/@warpto/@goto )."); return -1; } - if(strncmp(sd->status.name,atcmd_player_name,NAME_LENGTH)==0) //Yourself mate? Tsk tsk tsk. - return -1; - - if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { - if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { - clif_displaymessage(fd, msg_txt(247)); - return -1; - } - if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarp && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { - clif_displaymessage(fd, msg_txt(248)); - return -1; - } - pc_setpos(sd, pl_sd->mapindex, pl_sd->bl.x, pl_sd->bl.y, 3); - sprintf(atcmd_output, msg_txt(4), atcmd_player_name); // Jump to %s - clif_displaymessage(fd, atcmd_output); - } else { + if((pl_sd=map_nick2sd((char *)message)) == NULL && (pl_sd=map_charid2sd(atoi(message))) == NULL) + { clif_displaymessage(fd, msg_txt(3)); // Character not found. return -1; } + + if (pl_sd == sd) + { + clif_displaymessage(fd, "But you are already where you are..."); + return -1; + } + + if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) + { + clif_displaymessage(fd, msg_txt(247)); // You are not authorized to warp to this map. + return -1; + } + + if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarp && battle_config.any_warp_GM_min_level > pc_isGM(sd)) + { + clif_displaymessage(fd, msg_txt(248)); // You are not authorized to warp from your current map. + return -1; + } + + pc_setpos(sd, pl_sd->mapindex, pl_sd->bl.x, pl_sd->bl.y, 3); + sprintf(atcmd_output, msg_txt(4), atcmd_player_name); // Jumped to %s + clif_displaymessage(fd, atcmd_output); return 0; } @@ -1420,11 +1372,11 @@ int atcommand_jump(const int fd, struct map_session_data* sd, const char* comman if (y <= 0) y = -1; if (sd->bl.m >= 0 && (map[sd->bl.m].flag.nowarp || map[sd->bl.m].flag.nowarpto) && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { - clif_displaymessage(fd, msg_txt(248)); + clif_displaymessage(fd, msg_txt(248)); // You are not authorized to warp from your current map. return -1; } pc_setpos(sd, sd->mapindex, x, y, 3); - sprintf(atcmd_output, msg_txt(5), sd->bl.x, sd->bl.y); // Jump to %d %d + sprintf(atcmd_output, msg_txt(5), sd->bl.x, sd->bl.y); // Jumped to %d %d clif_displaymessage(fd, atcmd_output); return 0; } @@ -2023,11 +1975,11 @@ int atcommand_load(const int fd, struct map_session_data* sd, const char* comman m = map_mapindex2mapid(sd->status.save_point.map); if (m >= 0 && map[m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { - clif_displaymessage(fd, msg_txt(249)); + clif_displaymessage(fd, msg_txt(249)); // You are not authorized to warp to your save map. return -1; } if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarp && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { - clif_displaymessage(fd, msg_txt(248)); + clif_displaymessage(fd, msg_txt(248)); // You are not authorized to warp from your current map. return -1; } @@ -2056,61 +2008,18 @@ int atcommand_speed(const int fd, struct map_session_data* sd, const char* comma } speed = atoi(message); - if (speed >= MIN_WALK_SPEED && speed <= MAX_WALK_SPEED) { - sd->base_status.speed = speed; - status_calc_bl(&sd->bl, SCB_SPEED); - clif_displaymessage(fd, msg_txt(8)); // Speed changed. - } else { - sprintf(atcmd_output, "Please, enter a valid speed value (usage: @speed <%d-%d>).", MIN_WALK_SPEED, MAX_WALK_SPEED); - clif_displaymessage(fd, atcmd_output); - return -1; - } - - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int atcommand_charspeed(const int fd, struct map_session_data* sd, const char* command, const char* message) -{ - struct map_session_data *pl_sd; - int speed; - - nullpo_retr(-1, sd); - - memset(atcmd_output, '\0', sizeof(atcmd_output)); - memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - - if (!message || !*message || sscanf(message, "%d %23[^\n]", &speed, atcmd_player_name) < 2) { - sprintf(atcmd_output, "Please, enter a speed and a player name (usage: @charspeed > ).", MIN_WALK_SPEED, MAX_WALK_SPEED); - clif_displaymessage(fd, atcmd_output); - return -1; - } - - if ((pl_sd = map_nick2sd(atcmd_player_name)) == NULL) { - clif_displaymessage(fd, msg_txt(3)); // Character not found. - return -1; - } - - if (pc_isGM(sd) < pc_isGM(pl_sd)) - { //GM level check - clif_displaymessage(fd, msg_txt(81)); // Your GM level don't authorise you to do this action on this player. - return -1; + if (speed < MIN_WALK_SPEED) + { + speed = MIN_WALK_SPEED; } - - if (speed >= MIN_WALK_SPEED && speed <= MAX_WALK_SPEED) { - pl_sd->base_status.speed = speed; - status_calc_bl(&pl_sd->bl, SCB_SPEED); - clif_displaymessage(fd, msg_txt(8)); // Speed changed. - if(pl_sd->fd) - clif_displaymessage(pl_sd->fd, msg_txt(8)); // Speed changed. - } else { - sprintf(atcmd_output, "Please, enter a valid speed value (usage: @speed <%d-%d>).", MIN_WALK_SPEED, MAX_WALK_SPEED); - clif_displaymessage(fd, atcmd_output); - return -1; + else if (speed > MAX_WALK_SPEED) + { + speed = MAX_WALK_SPEED; } + + sd->base_status.speed = speed; + status_calc_bl(&sd->bl, SCB_SPEED); + clif_displaymessage(fd, msg_txt(8)); // Speed changed. return 0; } @@ -2126,10 +2035,13 @@ int atcommand_storage(const int fd, struct map_session_data* sd, const char* com return -1; if (storage_storageopen(sd) == 1) - { //Already open. + { //Already open. clif_displaymessage(fd, msg_txt(250)); return -1; } + + clif_displaymessage(fd, "Storage opened."); + return 0; } @@ -2161,6 +2073,7 @@ int atcommand_guildstorage(const int fd, struct map_session_data* sd, const char return -1; } storage_guild_storageopen(sd); + clif_displaymessage(fd, "Guild storage opened."); return 0; } @@ -2310,7 +2223,29 @@ int atcommand_jobchange(const int fd, struct map_session_data* sd, const char* c } if (!found) { - clif_displaymessage(fd, "Please, enter job ID (usage: @job/@jobchange )."); + clif_displaymessage(fd, "Please, enter job ID (usage: @job/@jobchange )."); + clif_displaymessage(fd, " 0 Novice 7 Knight 14 Crusader 21 Peco Crusader"); + clif_displaymessage(fd, " 1 Swordman 8 Priest 15 Monk 22 N/A"); + clif_displaymessage(fd, " 2 Mage 9 Wizard 16 Sage 23 Super Novice"); + clif_displaymessage(fd, " 3 Archer 10 Blacksmith 17 Rogue 24 Gunslinger"); + clif_displaymessage(fd, " 4 Acolyte 11 Hunter 18 Alchemist 25 Ninja"); + clif_displaymessage(fd, " 5 Merchant 12 Assassin 19 Bard 26 N/A"); + clif_displaymessage(fd, " 6 Thief 13 Peco Knight 20 Dancer"); + clif_displaymessage(fd, "4001 Novice High 4008 Lord Knight 4015 Paladin 4022 Peco Paladin"); + clif_displaymessage(fd, "4002 Swordman High 4009 High Priest 4016 Champion"); + clif_displaymessage(fd, "4003 Mage High 4010 High Wizard 4017 Professor"); + clif_displaymessage(fd, "4004 Archer High 4011 Whitesmith 4018 Stalker"); + clif_displaymessage(fd, "4005 Acolyte High 4012 Sniper 4019 Creator"); + clif_displaymessage(fd, "4006 Merchant High 4013 Assassin Cross 4020 Clown"); + clif_displaymessage(fd, "4007 Thief High 4014 Peco Lord Knight 4021 Gypsy"); + clif_displaymessage(fd, "4023 Baby Novice 4030 Baby Knight 4037 Baby Crusader 4044 Baby Peco Crusader"); + clif_displaymessage(fd, "4024 Baby Swordsman 4031 Baby Priest 4038 Baby Monk 4045 Super Baby"); + clif_displaymessage(fd, "4025 Baby Mage 4032 Baby Wizard 4039 Baby Sage 4046 Taekwon Kid"); + clif_displaymessage(fd, "4026 Baby Archer 4033 Baby Blacksmith 4040 Baby Rogue 4047 Taekwon Master"); + clif_displaymessage(fd, "4027 Baby Acolyte 4034 Baby Hunter 4041 Baby Alchemist 4048 N/A"); + clif_displaymessage(fd, "4028 Baby Merchant 4035 Baby Assassin 4042 Baby Bard 4049 Soul Linker"); + clif_displaymessage(fd, "4029 Baby Thief 4036 Baby Peco-Knight 4043 Baby Dancer"); + clif_displaymessage(fd, "[upper]: -1 (default) to automatically determine the 'level', 0 to force normal job, 1 to force high job."); return -1; } } @@ -2333,7 +2268,29 @@ int atcommand_jobchange(const int fd, struct map_session_data* sd, const char* c return -1; } } else { - clif_displaymessage(fd, "Please, enter a valid job ID (usage: @job/@jobchange )."); + clif_displaymessage(fd, "Please, enter a valid job ID (usage: @job/@jobchange )."); + clif_displaymessage(fd, " 0 Novice 7 Knight 14 Crusader 21 Peco Crusader"); + clif_displaymessage(fd, " 1 Swordman 8 Priest 15 Monk 22 N/A"); + clif_displaymessage(fd, " 2 Mage 9 Wizard 16 Sage 23 Super Novice"); + clif_displaymessage(fd, " 3 Archer 10 Blacksmith 17 Rogue 24 Gunslinger"); + clif_displaymessage(fd, " 4 Acolyte 11 Hunter 18 Alchemist 25 Ninja"); + clif_displaymessage(fd, " 5 Merchant 12 Assassin 19 Bard 26 N/A"); + clif_displaymessage(fd, " 6 Thief 13 Peco Knight 20 Dancer"); + clif_displaymessage(fd, "4001 Novice High 4008 Lord Knight 4015 Paladin 4022 Peco Paladin"); + clif_displaymessage(fd, "4002 Swordman High 4009 High Priest 4016 Champion"); + clif_displaymessage(fd, "4003 Mage High 4010 High Wizard 4017 Professor"); + clif_displaymessage(fd, "4004 Archer High 4011 Whitesmith 4018 Stalker"); + clif_displaymessage(fd, "4005 Acolyte High 4012 Sniper 4019 Creator"); + clif_displaymessage(fd, "4006 Merchant High 4013 Assassin Cross 4020 Clown"); + clif_displaymessage(fd, "4007 Thief High 4014 Peco Lord Knight 4021 Gypsy"); + clif_displaymessage(fd, "4023 Baby Novice 4030 Baby Knight 4037 Baby Crusader 4044 Baby Peco Crusader"); + clif_displaymessage(fd, "4024 Baby Swordsman 4031 Baby Priest 4038 Baby Monk 4045 Super Baby"); + clif_displaymessage(fd, "4025 Baby Mage 4032 Baby Wizard 4039 Baby Sage 4046 Taekwon Kid"); + clif_displaymessage(fd, "4026 Baby Archer 4033 Baby Blacksmith 4040 Baby Rogue 4047 Taekwon Master"); + clif_displaymessage(fd, "4027 Baby Acolyte 4034 Baby Hunter 4041 Baby Alchemist 4048 N/A"); + clif_displaymessage(fd, "4028 Baby Merchant 4035 Baby Assassin 4042 Baby Bard 4049 Soul Linker"); + clif_displaymessage(fd, "4029 Baby Thief 4036 Baby Peco-Knight 4043 Baby Dancer"); + clif_displaymessage(fd, "[upper]: -1 (default) to automatically determine the 'level', 0 to force normal job, 1 to force high job."); return -1; } @@ -2365,23 +2322,27 @@ int atcommand_kill(const int fd, struct map_session_data* sd, const char* comman memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) { - clif_displaymessage(fd, "Please, enter a player name (usage: @kill )."); + if (!message || !*message) { + clif_displaymessage(fd, "Please, enter a player name (usage: @kill )."); return -1; } - if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { - if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can kill only lower or same level - status_kill(&pl_sd->bl); - clif_displaymessage(fd, msg_txt(14)); // Character killed. - } else { - clif_displaymessage(fd, msg_txt(81)); // Your GM level don't authorise you to do this action on this player. - return -1; - } - } else { + if((pl_sd=map_nick2sd((char *)message)) == NULL && (pl_sd=map_charid2sd(atoi(message))) == NULL) + { clif_displaymessage(fd, msg_txt(3)); // Character not found. return -1; } + + if (pc_isGM(sd) < pc_isGM(pl_sd)) + { // you can kill only lower or same level + clif_displaymessage(fd, msg_txt(81)); // Your GM level don't authorise you to do this action on this player. + return -1; + } + + status_kill(&pl_sd->bl); + clif_displaymessage(pl_sd->fd, msg_txt(13)); // A pity! You've died. + if (fd != pl_sd->fd) + clif_displaymessage(fd, msg_txt(14)); // Character killed. return 0; } @@ -2394,7 +2355,10 @@ int atcommand_alive(const int fd, struct map_session_data* sd, const char* comma { nullpo_retr(-1, sd); if (!status_revive(&sd->bl, 100, 100)) + { + clif_displaymessage(fd, "You're not dead."); return -1; + } clif_skill_nodamage(&sd->bl,&sd->bl,ALL_RESURRECTION,4,1); clif_displaymessage(fd, msg_txt(16)); // You've been revived! It's a miracle! return 0; @@ -2911,10 +2875,10 @@ int atcommand_pvpoff(const int fd, struct map_session_data* sd, const char* comm { nullpo_retr(-1, sd); - if (battle_config.pk_mode) { //disable command if server is in PK mode [Valaris] - clif_displaymessage(fd, msg_txt(52)); // This option cannot be used in PK Mode. - return -1; - } + //if (battle_config.pk_mode) { //disable command if server is in PK mode [Valaris] + // clif_displaymessage(fd, msg_txt(52)); // This option cannot be used in PK Mode. + // return -1; + //} if (!map[sd->bl.m].flag.pvp) { clif_displaymessage(fd, msg_txt(160)); // PvP is already Off. @@ -2922,7 +2886,9 @@ int atcommand_pvpoff(const int fd, struct map_session_data* sd, const char* comm } map[sd->bl.m].flag.pvp = 0; - clif_send0199(sd->bl.m, 0); + + if (!battle_config.pk_mode) + clif_send0199(sd->bl.m, 0); map_foreachinmap(atcommand_pvpoff_sub,sd->bl.m, BL_PC); map_foreachinmap(atcommand_stopattack,sd->bl.m, BL_CHAR, 0); clif_displaymessage(fd, msg_txt(31)); // PvP: Off. @@ -2939,23 +2905,26 @@ int atcommand_pvpon(const int fd, struct map_session_data* sd, const char* comma int i, users; nullpo_retr(-1, sd); - if (battle_config.pk_mode) { //disable command if server is in PK mode [Valaris] - clif_displaymessage(fd, msg_txt(52)); // This option cannot be used in PK Mode. - return -1; - } + //if (battle_config.pk_mode) { //disable command if server is in PK mode [Valaris] + // clif_displaymessage(fd, msg_txt(52)); // This option cannot be used in PK Mode. + // return -1; + //} if (!map[sd->bl.m].flag.pvp) { map[sd->bl.m].flag.pvp = 1; - clif_send0199(sd->bl.m, 1); - pl_allsd = map_getallusers(&users); - for (i = 0; i < users; i++) { - if ((pl_sd = pl_allsd[i]) && sd->bl.m == pl_sd->bl.m && pl_sd->pvp_timer == -1) { - pl_sd->pvp_timer = add_timer(gettick() + 200, pc_calc_pvprank_timer, pl_sd->bl.id, 0); - pl_sd->pvp_rank = 0; - pl_sd->pvp_lastusers = 0; - pl_sd->pvp_point = 5; - pl_sd->pvp_won = 0; - pl_sd->pvp_lost = 0; + if (!battle_config.pk_mode) + { + clif_send0199(sd->bl.m, 1); + pl_allsd = map_getallusers(&users); + for (i = 0; i < users; i++) { + if ((pl_sd = pl_allsd[i]) && sd->bl.m == pl_sd->bl.m && pl_sd->pvp_timer == -1) { + pl_sd->pvp_timer = add_timer(gettick() + 200, pc_calc_pvprank_timer, pl_sd->bl.id, 0); + pl_sd->pvp_rank = 0; + pl_sd->pvp_lastusers = 0; + pl_sd->pvp_point = 5; + pl_sd->pvp_won = 0; + pl_sd->pvp_lost = 0; + } } } clif_displaymessage(fd, msg_txt(32)); // PvP: On. @@ -3456,7 +3425,7 @@ int atcommand_monstersmall(const int fd, struct map_session_data* sd, const char } if (mob_id == MOBID_EMPERIUM) { - clif_displaymessage(fd, msg_txt(83)); + clif_displaymessage(fd, msg_txt(83)); // Cannot spawn emperium return -1; } @@ -3532,7 +3501,7 @@ int atcommand_monsterbig(const int fd, struct map_session_data* sd, const char* } if (mob_id == MOBID_EMPERIUM) { - clif_displaymessage(fd, msg_txt(83)); + clif_displaymessage(fd, msg_txt(83)); // Cannot spawn emperium return -1; } @@ -3653,6 +3622,26 @@ int atcommand_refine(const int fd, struct map_session_data* sd, const char* comm if (!message || !*message || sscanf(message, "%d %d", &position, &refine) < 2) { clif_displaymessage(fd, "Please, enter a position and a amount (usage: @refine <+/- amount>)."); + sprintf(atcmd_output, "%d: Left Accessory", EQI_ACC_L); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "%d: Right Accessory", EQI_ACC_R); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "%d: Shoes", EQI_SHOES); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "%d: Garment", EQI_GARMENT); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "%d: Lower Headgear", EQI_HEAD_LOW); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "%d: Mid Headgear", EQI_HEAD_MID); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "%d: Top Headgear", EQI_HEAD_TOP); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "%d: Body Armor", EQI_ARMOR); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "%d: Left Hand", EQI_HAND_L); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "%d: Right Hand", EQI_HAND_R); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -3863,47 +3852,18 @@ int atcommand_gat(const int fd, struct map_session_data* sd, const char* command * *------------------------------------------ */ -int atcommand_packet(const int fd, struct map_session_data* sd, const char* command, const char* message) +int atcommand_displaystatus(const int fd, struct map_session_data* sd, const char* command, const char* message) { - static int packet_mode = 0; - int i, x = 0, y = 0; + int i, type, flag; nullpo_retr(-1, sd); - - if (strstr(command, "packetmode")) { - packet_mode = atoi(message); - clif_displaymessage(fd, "Packet mode changed."); - return 0; - } - if (!message || !*message || (i = sscanf(message, "%d %d", &x, &y)) < 1) { - clif_displaymessage(fd, "Please, enter a status type/flag (usage: @packet )."); + if (!message || !*message || (i = sscanf(message, "%d %d", &type, &flag)) < 1) { + clif_displaymessage(fd, "Please, enter a status type/flag (usage: @displaystatus )."); return -1; } - if (i == 1) y = 1; + if (i == 1) flag = 1; - switch (packet_mode) - { - case 0: - clif_status_change(&sd->bl, x, y); - break; - case 1: - sd->status.skill[sd->cloneskill_id].id=0; - sd->status.skill[sd->cloneskill_id].lv=0; - sd->status.skill[sd->cloneskill_id].flag=0; - sd->cloneskill_id = x; - sd->status.skill[x].id = x; - sd->status.skill[x].lv = skill_get_max(x); - sd->status.skill[x].flag = 13;//cloneskill flag - clif_skillinfoblock(sd); - break; - case 2: - clif_skill_nodamage(&sd->bl,&sd->bl,x,y,1); - case 3: - clif_skill_poseffect(&sd->bl,x,y,sd->bl.x,sd->bl.y,gettick()); - default: - break; - //added later - } + clif_status_change(&sd->bl, type, flag); return 0; } @@ -4029,7 +3989,7 @@ int atcommand_param(const int fd, struct map_session_data* sd, const char* comma memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%d", &value) < 1 || value == 0) { - sprintf(atcmd_output, "Please, enter a valid value (usage: @str,@agi,@vit,@int,@dex,@luk <+/-adjustement>)."); + sprintf(atcmd_output, "Please, enter a valid value (usage: @str,@agi,@vit,@int,@dex,@luk <+/-adjustment>)."); clif_displaymessage(fd, atcmd_output); return -1; } @@ -4039,7 +3999,7 @@ int atcommand_param(const int fd, struct map_session_data* sd, const char* comma break; if (param[i] == NULL || i > MAX_STATUS_TYPE) { // normally impossible... - sprintf(atcmd_output, "Please, enter a valid value (usage: @str,@agi,@vit,@int,@dex,@luk <+/-adjustement>)."); + sprintf(atcmd_output, "Please, enter a valid value (usage: @str,@agi,@vit,@int,@dex,@luk <+/-adjustment>)."); clif_displaymessage(fd, atcmd_output); return -1; } @@ -4051,7 +4011,7 @@ int atcommand_param(const int fd, struct map_session_data* sd, const char* comma status[4] = &sd->status.dex; status[5] = &sd->status.luk; - max = pc_maxparameter(sd); + max = SHRT_MAX; new_value = cap_value(*status[i] + value, 1, max); if (new_value != (int)*status[i]) { @@ -4093,7 +4053,7 @@ int atcommand_stat_all(const int fd, struct map_session_data* sd, const char* co value = pc_maxparameter(sd); count = 0; - max = pc_maxparameter(sd); + max = SHRT_MAX; for (index = 0; index < (int)(sizeof(status) / sizeof(status[0])); index++) { if (value > 0 && *status[index] > max - value) @@ -4145,10 +4105,10 @@ int atcommand_guildlevelup(const int fd, struct map_session_data* sd, const char clif_displaymessage(fd, msg_txt(43)); // You're not in a guild. return -1; } - if (strcmp(sd->status.name, guild_info->master) != 0) { - clif_displaymessage(fd, msg_txt(44)); // You're not the master of your guild. - return -1; - } + //if (strcmp(sd->status.name, guild_info->master) != 0) { + // clif_displaymessage(fd, msg_txt(44)); // You're not the master of your guild. + // return -1; + //} added_level = (short)level; if (level > 0 && (level > MAX_GUILDLEVEL || added_level > ((short)MAX_GUILDLEVEL - guild_info->guild_lv))) // fix positiv overflow @@ -4331,67 +4291,41 @@ int atcommand_recall(const int fd, struct map_session_data* sd, const char* comm nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) { - clif_displaymessage(fd, "Please, enter a player name (usage: @recall )."); + if (!message || !*message) { + clif_displaymessage(fd, "Please, enter a player name (usage: @recall )."); return -1; } - if(strncmp(sd->status.name,atcmd_player_name,NAME_LENGTH)==0) - return -1; - - if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { - if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can recall only lower or same level - if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { - clif_displaymessage(fd, "You are not authorised to warp somenone to your actual map."); - return -1; - } - if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarp && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { - clif_displaymessage(fd, "You are not authorized to warp this player from its actual map."); - return -1; - } - pc_setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, 2); - sprintf(atcmd_output, msg_txt(46), atcmd_player_name); // %s recalled! - clif_displaymessage(fd, atcmd_output); - } else { - clif_displaymessage(fd, msg_txt(81)); // Your GM level don't authorise you to do this action on this player. - return -1; - } - } else { + if((pl_sd=map_nick2sd((char *)message)) == NULL && (pl_sd=map_charid2sd(atoi(message))) == NULL) + { clif_displaymessage(fd, msg_txt(3)); // Character not found. return -1; } + + if (pl_sd == sd) + { + clif_displaymessage(fd, "You are already where you are..."); + return -1; + } - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ -int atcommand_revive(const int fd, struct map_session_data* sd, const char* command, const char* message) -{ - struct map_session_data *pl_sd; - nullpo_retr(-1, sd); - - memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - - if (!message || !*message || sscanf(message, "%23[^\n]", atcmd_player_name) < 1) { - clif_displaymessage(fd, "Please, enter a player name (usage: @revive )."); + if ( pc_isGM(sd) < pc_isGM(pl_sd) ) + { + clif_displaymessage(fd, msg_txt(81)); // Your GM level don't authorise you to do this action on this player. return -1; } - pl_sd = map_nick2sd(atcmd_player_name); - - if (!pl_sd) { - clif_displaymessage(fd, msg_txt(3)); // Character not found. + if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { + clif_displaymessage(fd, "You are not authorised to warp somenone to your actual map."); return -1; } - - if (!status_revive(&pl_sd->bl, 100, 0)) + if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarp && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { + clif_displaymessage(fd, "You are not authorized to warp this player from its actual map."); return -1; - - clif_skill_nodamage(&sd->bl,&pl_sd->bl,ALL_RESURRECTION,4,1); - clif_displaymessage(fd, msg_txt(51)); // Character revived. + } + pc_setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, 2); + sprintf(atcmd_output, msg_txt(46), pl_sd->status.name); // %s recalled! + clif_displaymessage(fd, atcmd_output); + return 0; } @@ -4451,7 +4385,7 @@ int atcommand_char_ban(const int fd, struct map_session_data* sd, const char* co memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%199s %99[^\n]", atcmd_output, atcmd_player_name) < 2) { + if (!message || !*message || sscanf(message, "%s %23[^\n]", atcmd_output, atcmd_player_name) < 2) { clif_displaymessage(fd, "Please, enter ban time and a player name (usage: @charban/@ban/@banish/@charbanish