summaryrefslogblamecommitdiff
path: root/src/map/atcommand.h
blob: 3dd8fc83809736fd56915663e9f8190acc032c7a (plain) (tree)
1
2
3
4
5
6





                                                          






                                                      





















































                                 







                               
                                















                               






































                                          










                                         



                                      

                                        


                                     






                                           
                                          
                                           

                                           
                               



















                                                                       









                                                                    


                                            
                                                              

                                          
                                           
                                           
                                         
                                           
                                         








                                        
                                        
                                     












                                             




                                      

                                 



                                        
                                       






                                       
                                       
                                         
                                      














                                                









                                         
                                                                                                         

                


                                                                                                                

                                                  

                                             













                                                                                                                    
                            
 
                             
                    
                                
 
                          
// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#ifndef _ATCOMMAND_H_
#define _ATCOMMAND_H_

//This is the distance at which @autoloot works,
//if the item drops farther from the player than this,
//it will not be autolooted. [Skotlex]
#ifndef AUTOLOOT_DISTANCE 
	#define AUTOLOOT_DISTANCE AREA_SIZE
#endif

enum AtCommandType {
	AtCommand_None = -1,
	AtCommand_Broadcast = 0,
	AtCommand_LocalBroadcast,
	AtCommand_MapMove,
	AtCommand_ResetState,
	AtCommand_RuraP,
	AtCommand_Rura,
	AtCommand_Warp,
	AtCommand_Where,
	AtCommand_JumpTo,
	AtCommand_Jump,
	AtCommand_Who,
	AtCommand_Who2,
	AtCommand_Who3,
	AtCommand_WhoMap,
	AtCommand_WhoMap2,
	AtCommand_WhoMap3,
	AtCommand_WhoGM,
	AtCommand_Save,
	AtCommand_Load,
	AtCommand_Speed,
	AtCommand_CharSpeed,
	AtCommand_Storage,
	AtCommand_GuildStorage,
	AtCommand_Option,
	AtCommand_Hide,
	AtCommand_JobChange,
	AtCommand_JobChange2,
	AtCommand_JobChange3,
	AtCommand_Die,
	AtCommand_Kill,
	AtCommand_Alive,
	AtCommand_Kami,
	AtCommand_KamiB,
	AtCommand_KamiC, //LuzZza
	AtCommand_Heal,
	AtCommand_Item,
	AtCommand_Item2,
	AtCommand_ItemReset,
	AtCommand_BaseLevelUp,
	AtCommand_JobLevelUp,
	AtCommand_H,
	AtCommand_Help,
	AtCommand_H2,
	AtCommand_Help2,
	AtCommand_GM,
	AtCommand_PvPOff,
	AtCommand_PvPOn,
	AtCommand_GvGOff,
	AtCommand_GvGOn,
	AtCommand_Model,
	AtCommand_Go,
	AtCommand_Spawn,
	AtCommand_MonsterSmall,
	AtCommand_MonsterBig,
	AtCommand_KillMonster,
	AtCommand_KillMonster2,
	AtCommand_Refine,
	AtCommand_Produce,
	AtCommand_Memo,
	AtCommand_GAT,
	AtCommand_DisplayStatus,
	AtCommand_StatusPoint,
	AtCommand_SkillPoint,
	AtCommand_Zeny,
	AtCommand_Param,
	AtCommand_Strength,
	AtCommand_Agility,
	AtCommand_Vitality,
	AtCommand_Intelligence,
	AtCommand_Dexterity,
	AtCommand_Luck,
	AtCommand_GuildLevelUp,
	AtCommand_MakeEgg,
	AtCommand_PetFriendly,
	AtCommand_PetHungry,
	AtCommand_PetRename,
	AtCommand_Recall,
	AtCommand_Night,
	AtCommand_Day,
	AtCommand_Doom,
	AtCommand_DoomMap,
	AtCommand_Raise,
	AtCommand_RaiseMap,
	AtCommand_Kick,
	AtCommand_KickAll,
	AtCommand_AllSkill,
	AtCommand_QuestSkill,
	AtCommand_LostSkill,
	AtCommand_SpiritBall,
	AtCommand_Party,
	AtCommand_Guild,
	AtCommand_AgitStart,
	AtCommand_AgitEnd,
	AtCommand_MapExit,
	AtCommand_IDSearch,
	AtCommand_RecallAll,
	AtCommand_ReloadItemDB,
	AtCommand_ReloadMobDB,
	AtCommand_ReloadSkillDB,
	AtCommand_ReloadScript,
	AtCommand_ReloadGMDB,
	AtCommand_ReloadAtcommand,
	AtCommand_ReloadBattleConf,
	AtCommand_ReloadStatusDB,
	AtCommand_ReloadPcDB,
	AtCommand_ReloadMOTD, // [Valaris]
	AtCommand_MapInfo,
	AtCommand_Dye,
	AtCommand_Hstyle,
	AtCommand_Hcolor,
	AtCommand_StatAll,
	AtCommand_CharBlock, // by Yor
	AtCommand_CharBan, // by Yor
	AtCommand_CharUnBlock, // by Yor
	AtCommand_CharUnBan, // by Yor
	AtCommand_MountPeco, // by Valaris
	AtCommand_GuildSpy, // [Syrus22]
	AtCommand_PartySpy, // [Syrus22]
	AtCommand_RepairAll, // [Valaris]
	AtCommand_GuildRecall, // by Yor
	AtCommand_PartyRecall, // by Yor
	AtCommand_Nuke,	// [Valaris]
	AtCommand_Shownpc,
	AtCommand_Hidenpc,
	AtCommand_Loadnpc,
	AtCommand_Unloadnpc,
	AtCommand_ServerTime, // by Yor
	AtCommand_Jail, // by Yor
	AtCommand_UnJail, // by Yor
	AtCommand_JailFor, // Meruru
	AtCommand_JailTime, // Coltaro
	AtCommand_Disguise, // [Valaris]
	AtCommand_UnDisguise, // by Yor
	AtCommand_EMail, // by Yor
	AtCommand_Hatch,
	AtCommand_Effect, // by Apple
	AtCommand_AddWarp, // by MouseJstr
	AtCommand_Follow, // by MouseJstr
	AtCommand_SkillOn, // by MouseJstr
	AtCommand_SkillOff, // by MouseJstr
	AtCommand_Killer, // by MouseJstr
	AtCommand_NpcMove, // by MouseJstr
	AtCommand_Killable, // by MouseJstr
	AtCommand_Dropall, // by MouseJstr
	AtCommand_Storeall, // by MouseJstr
	AtCommand_Skillid, // by MouseJstr
	AtCommand_Useskill, // by MouseJstr
	AtCommand_DisplaySkill,
	AtCommand_Summon,
	AtCommand_Rain,
	AtCommand_Snow,
	AtCommand_Sakura,
	AtCommand_Clouds,
	AtCommand_Clouds2, // [Valaris]
	AtCommand_Fog,
	AtCommand_Fireworks,
	AtCommand_Leaves,
	AtCommand_AdjGmLvl, // MouseJstr
	AtCommand_AdjCmdLvl, // MouseJstr
	AtCommand_Trade, // MouseJstr
	AtCommand_Send,
	AtCommand_SetBattleFlag,
	AtCommand_UnMute,
	AtCommand_Clearweather, // by Dexity
	AtCommand_UpTime, // by MC Cameri
	AtCommand_ChangeSex, // by MC Cameri
	AtCommand_Mute, // [celest]
	AtCommand_WhoZeny, // [Valaris] <-- LOL...(MC Cameri) worth it.
	AtCommand_Refresh, // by MC Cameri
	AtCommand_PetId, // by MC Cameri
	AtCommand_Identify, // by MC Cameri
	AtCommand_Gmotd, // Added by MC Cameri, created by davidsiaw
	AtCommand_MiscEffect, // by MC Cameri
	AtCommand_MobSearch,
	AtCommand_CleanMap,
	AtCommand_NpcTalk,
	AtCommand_PetTalk,
	AtCommand_Users,
	AtCommand_SkillTree, // by MouseJstr
	AtCommand_Marry, // by MouseJstr
	AtCommand_Divorce, // by MouseJstr
	AtCommand_Me, //added by massdriller, code by lordalfa
	AtCommand_DMStart, // by MouseJstr
	AtCommand_DMTick, // by MouseJstr
	AtCommand_JumpToId2, // by Dino9021
	AtCommand_RecallId2, // by Dino9021
	AtCommand_KickId2, // by Dino9021
	AtCommand_ReviveId2, // by Dino9021
	AtCommand_KillId2, // by Dino9021
	AtCommand_Sound,
	AtCommand_UndisguiseAll,
	AtCommand_DisguiseAll,
	AtCommand_ChangeLook,
	AtCommand_AutoLoot, //by Upa-Kun
	AtCommand_MobInfo, //by Lupus
	AtCommand_Exp,	// by Skotlex
	AtCommand_Adopt, // by Veider
	AtCommand_Version, // by Ancyker
	AtCommand_MuteArea, // MouseJstr
	AtCommand_Rates, // MouseJstr
	AtCommand_ItemInfo, // Lupus
	AtCommand_WhoDrops, // Skotlex
	AtCommand_MapFlag, // Lupus
	AtCommand_MonsterIgnore, // [Valaris]
	AtCommand_FakeName, // [Valaris]
	AtCommand_Size, // [Valaris]
	AtCommand_ShowDelay,
	AtCommand_ShowExp,
	AtCommand_ShowZeny,
	AtCommand_AutoTrade,//durf
	AtCommand_ChangeGM,//durf
	AtCommand_ChangeLeader,
	AtCommand_PartyOption,
	AtCommand_Invite, // By LuzZza
	AtCommand_Duel, // By LuzZza
	AtCommand_Leave, // By LuzZza
	AtCommand_Accept, // By LuzZza
	AtCommand_Reject, // By LuzZza
	AtCommand_Away, // LuzZza
	AtCommand_Main, // LuzZza
	AtCommand_Clone, // [Valaris]
	AtCommand_ToNPC, // LuzZza
	AtCommand_Commands, // [Skotlex]
	AtCommand_NoAsk, // [LuzZza]
	AtCommand_Request, // [Skotlex]
	AtCommand_HomLevel, //[orn]
	AtCommand_HomEvolution, //[orn]
	AtCommand_MakeHomun, //[orn]
	AtCommand_HomFriendly, //[orn]
	AtCommand_HomHungry, //[orn]
	AtCommand_HomTalk, //[orn]
	AtCommand_HomInfo, //[Toms]
	AtCommand_HomStats, //[Skotlex]
	AtCommand_HomShuffle, //[Skotlex]
	AtCommand_ShowMobs, //KarLaeda
	AtCommand_FeelReset, //[HiddenDragon]
	AtCommand_HappyHappyJoyJoy,
	// SQL-only commands start
#ifndef TXT_ONLY
	AtCommand_CheckMail, // [Valaris]
	AtCommand_ListMail, // [Valaris]
	AtCommand_ListNewMail, // [Valaris]
	AtCommand_ReadMail, // [Valaris]
	AtCommand_SendMail, // [Valaris]
	AtCommand_DeleteMail, // [Valaris]
	AtCommand_SendPriorityMail, // [Valaris]
	AtCommand_RefreshOnline, // [Valaris]
	// SQL-only commands end
#endif
	// No more commands after this line
	AtCommand_Unknown,
	AtCommand_MAX
};

typedef enum AtCommandType AtCommandType;

typedef struct AtCommandInfo {
	AtCommandType type;
	const char* command;
	int level;
	int (*proc)(const int fd, struct map_session_data* sd, const char* command, const char* message);
} AtCommandInfo;

AtCommandType is_atcommand(const int fd, struct map_session_data* sd, const char* message);
AtCommandType is_atcommand_sub(const int fd, struct map_session_data* sd, const char* str, int gmlvl);
AtCommandType atcommand(struct map_session_data *sd, const int level, const char* message, AtCommandInfo* info);
int get_atcommand_level(const AtCommandType type);

char* msg_txt(int msg_number); // [Yor]
char* player_title_txt(int level); // [Lupus]

void do_init_atcommand(void);
void do_final_atcommand(void);

int atcommand_item(const int fd, struct map_session_data* sd,const char* command, const char* message); // [Valaris]
int atcommand_rura(const int fd, struct map_session_data* sd,const char* command, const char* message); // [Yor]
int atcommand_jumpto(const int fd, struct map_session_data* sd, const char* command, const char* message); // [Yor]
int atcommand_recall(const int fd, struct map_session_data* sd, const char* command, const char* message); // [Yor]
int atcommand_monster(const int fd, struct map_session_data* sd, const char* command, const char* message);

int atcommand_config_read(const char *cfgName);
int msg_config_read(const char *cfgName);
void do_final_msg(void);

char* estr_lower(char* str);

extern char atcommand_symbol;
#define MAX_MSG 1000
extern char* msg_table[MAX_MSG];

#endif /* _ATCOMMAND_H_ */