From: Keith F. <ven...@us...> - 2002-07-27 15:05:52
|
Update of /cvsroot/planeshift/planeshift/src/server In directory usw-pr-cvs1:/tmp/cvs-serv6537 Modified Files: usermanager.h usermanager.cpp Log Message: Added attack,stopattack commands. If you quit your client while attacking, the server will crash because it doesn't set the mode back yet, btw. Index: usermanager.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/usermanager.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** usermanager.h 2 Jul 2002 23:37:37 -0000 1.8 --- usermanager.h 27 Jul 2002 15:05:47 -0000 1.9 *************** *** 16,21 **** #include "eventmanager.h" - class psCelServer; class UserManager : public iNetSubscriber --- 16,21 ---- #include "eventmanager.h" class psCelServer; + class psCombatManager; class UserManager : public iNetSubscriber *************** *** 25,29 **** UserManager(MsgHandler *mh, ClientConnectionSet *pCCS, ! psDatabase *db,EventManager *em); virtual ~UserManager(); --- 25,29 ---- UserManager(MsgHandler *mh, ClientConnectionSet *pCCS, ! psDatabase *db,EventManager *em,psCombatManager *cm); virtual ~UserManager(); *************** *** 46,49 **** --- 46,51 ---- void ReportPosition(psUserCmdMessage& msg,Client *client,int clientnum); void MoveToSpawnPos(psUserCmdMessage& msg,Client *client,int clientnum); + void Attack(psUserCmdMessage& msg,Client *client,int clientnum); + void StopAttack(psUserCmdMessage& msg,Client *client,int clientnum); MsgHandler* msghandler; *************** *** 53,56 **** --- 55,59 ---- psCelServer *celserver; EventManager *eventmanager; + psCombatManager *combatmanager; }; Index: usermanager.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/usermanager.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** usermanager.cpp 2 Jul 2002 23:37:37 -0000 1.29 --- usermanager.cpp 27 Jul 2002 15:05:47 -0000 1.30 *************** *** 24,27 **** --- 24,28 ---- #include "engine/netpersist.h" #include "engine/drmessage.h" + #include "combatmanager.h" *************** *** 31,47 **** UserManager::UserManager(MsgHandler *mh, ClientConnectionSet *cs, ! psDatabase *db,EventManager *em) { SCF_CONSTRUCT_IBASE(0); ! msghandler = mh; ! clients = cs; ! database = db; ! eventmanager = em; celserver = NULL; msghandler->Subscribe(this,MSGTYPEUSERCMD); ! randomgen = new csRandomGen; } --- 32,49 ---- UserManager::UserManager(MsgHandler *mh, ClientConnectionSet *cs, ! psDatabase *db,EventManager *em,psCombatManager *cm) { SCF_CONSTRUCT_IBASE(0); ! msghandler = mh; ! clients = cs; ! database = db; ! eventmanager = em; ! combatmanager = cm; celserver = NULL; msghandler->Subscribe(this,MSGTYPEUSERCMD); ! randomgen = new csRandomGen(csGetTicks()); } *************** *** 116,119 **** --- 118,129 ---- MoveToSpawnPos(msg,client,me->clientnum); } + else if (msg.command == "/attack") + { + Attack(msg,client,me->clientnum); + } + else if (msg.command == "/stopattack") + { + StopAttack(msg,client,me->clientnum); + } else { *************** *** 446,449 **** --- 456,480 ---- } } + + void UserManager::Attack(psUserCmdMessage& ,Client *client,int clientnum) + { + if (client->GetTargetEntity()) + { + // Initiate attack if something is targeted. + combatmanager->AttackSomeone(client->GetEntity(),client->GetTargetEntity() ); + } + else + { + psSystemMessage error(clientnum,"You do not have a target selected."); + msghandler->SendMessage(error.msg); + } + } + + void UserManager::StopAttack(psUserCmdMessage& ,Client *client,int clientnum) + { + // Initiate attack if something is targeted. + combatmanager->StopAttack(client->GetEntity() ); + } + /*---------------------------------------------------------------------*/ |