Code: Show/Hide /******************* TEAMKILL REFEREE ******************************\ Checks all arenas for teamkilling. Responds with configured chat messages in .conf [Teamkill] KillerChatResponse = <string> ;sent to teamkiller in chat VictimChatResponse = <string> ;same for the victim WarpVictim = <bool 1|0> ;if 1, will warp the victim back to their position WarpKiler = <bool 1|0> ;if 1, will set killer to ship 1 (or 2 if they are in a warbird) Obviously, many more options will become available as billing support comes online \*******************************************************************/ //// INCLUDES //// #include "asss.h" ////// GLOBAL VARS /////// local Ichat *chat; local Imodman *mm; local Iconfig *cfg; local Igame *game; //// EVENT HANDLERS //// void onChatMessage(Player *p, int type, Player *target, int freq, const char *text){ } void onKill(Arena *arena, Player *killer, Player *killed, int bounty, int flags){ //check for teamkill if (killer->p_freq == killed->p_freq){ //message killer chat->SendMessage(killer,cfg->GetStr(GLOBAL,"Teamkill","KillerChatResponse")); //change killer ship to Warbird if(cfg->GetInt(GLOBAL,"Teamkill","WarpKiller",0) == 1){ if(killer->p_ship == WARBIRD){ //already in warbird, send to Jav game->SetShip(killer,JAVELIN); } else{ //send to Warbird game->SetShip(killer, WARBIRD); } } //message victim chat->SendMessage(killed,cfg->GetStr(GLOBAL,"Teamkill","VictimChatResponse")); //warp victim? if(cfg->GetInt(GLOBAL,"Teamkill","WarpVictim",0) == 1){ //build target struct, thanks Smong! Target t; t.type = T_PLAYER; t.u.p = killed; game->WarpTo(&t, killed->position.x, killed->position.y); } } } /******************** MAIN DLL BODY ************************/ EXPORT int MM_modbot(int action, Imodman *mm_, Arena *arena){ if (action == MM_LOAD){ mm = mm_; chat = mm->GetInterface(I_CHAT, ALLARENAS); cfg = mm->GetInterface(I_CONFIG,ALLARENAS); game = mm->GetInterface(I_GAME,ALLARENAS); if(!chat) return MM_FAIL; //game.h mm->RegCallback(CB_KILL,onKill,ALLARENAS); //chat.h mm->RegCallback(CB_CHATMSG,onChatMessage,ALLARENAS); return MM_OK; } else if (action == MM_UNLOAD){ //game.h mm->UnregCallback(CB_KILL,onKill,ALLARENAS); //chat.h mm->UnregCallback(CB_CHATMSG,onChatMessage,ALLARENAS); mm->ReleaseInterface(chat); mm->ReleaseInterface(cfg); mm->ReleaseInterface(game); return MM_OK; } return MM_FAIL; } |
Quote: |
118 C:\Dev-Cpp\Examples\asss-20030327\ref_teamkill.c [Warning] assignment discards qualifiers from pointer target type |
Code: Show/Hide 109: char *KillerChatResponse; 117: KillerChatResponse = cfg->GetStr(killer->arena->cfg, "Teamkill", 118: "KillerChatResponse"); |
Code: Show/Hide const char *KillerChatResponse; |