|
Классы - Общение разработчиков - Программирование для Point Blank, общение и обсуждение разработок |
09.09.2012, 20:51
|
#1
|
|
|
|
Фельдмаршал
|
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
|
Классы
Интересуют такие классы как
class RenderContext;
class RenderData;
class PlayerInfo;
Что это такое и как их находить, а также структуры, пример
struct CPlayers
{
float yaw;
float pitch;
D3DXVECTOR3 pos;
char unkno8[2704];
};
|
|
|
09.09.2012, 21:01
|
#2
|
|
|
|
Пехотинец
|
Регистрация: 04.02.2012
Сообщений: 71
Популярность: 2775
Сказал(а) спасибо: 77
Поблагодарили 153 раз(а) в 60 сообщениях
|
Re: Классы
Я тоже с этим долго мучался, но понял, что слишком муторно обновлять после больших обнов.
Тут только мазай, Слава и может нестер знают как всё правильно делать. Я немного знаю... Дальше считывания позиции мыши не заходил.
|
|
|
09.09.2012, 21:07
|
#3
|
|
|
|
Фельдмаршал
|
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
|
Re: Классы
Вот от нефик делать сделал такую хрень
Код:
class PlayerInfo;
class PlayerInfo
{
public:
char _0x0000[852];
Slot; //0x0354
Teror; //0x0358
Swat; //0x035C
Shlem; //0x0360
N000F3D11; //0x0364
Dino^^; //0x0368
N000F3D13; //0x036C
N000F3D14; //0x0370
N000F3D15; //0x0374
Osnovnoe; //0x0378
Pistols; //0x037C
Knife; //0x0380
Granata1; //0x0384
Granata2; //0x0388
N000F3D1B; //0x038C
N000F3D1C; //0x0390
};//Size=0x0394
//"PointBlank.exe.exe"+0069E9C8 + 384
|
|
|
09.09.2012, 21:17
|
#4
|
|
|
|
Пехотинец
|
Регистрация: 04.02.2012
Сообщений: 71
Популярность: 2775
Сказал(а) спасибо: 77
Поблагодарили 153 раз(а) в 60 сообщениях
|
Re: Классы
Тоже есп захотел сделать? xD
|
|
|
09.09.2012, 21:41
|
#5
|
|
|
|
Разведчик
|
Регистрация: 11.08.2012
Сообщений: 14
Популярность: 12
Сказал(а) спасибо: 3
Поблагодарили 1 раз в 1 сообщении
|
Re: Классы
Вот такая вот хрень.
Код:
#ifndef __PLAYERINFO_H__
#define __PLAYERINFO_H__
// bzflag global header
#include "global.h"
// system headers
#include <string>
#ifndef _WIN32
#include <unistd.h>
#include <sys/socket.h>
#endif
// common interface headers
#include "TimeKeeper.h"
#include "Team.h"
#include "Protocol.h"
#include "Flag.h"
#include "WordFilter.h"
enum ClientState {
PlayerNoExist,
PlayerInLimbo,
PlayerDead,
PlayerAlive
};
enum PlayerReplayState {
ReplayNone,
ReplayReceiving,
ReplayStateful
};
#define SEND 1
#define RECEIVE 0
struct TeamInfo {
public:
Team team;
TimeKeeper flagTimeout;
};
class PlayerInfo {
public:
PlayerInfo(int _playerIndex);
int getPlayerIndex( void ) const { return playerIndex; }
void setLastMsg(std::string msg);
const std::string& getLastMsg() const;
TimeKeeper getLastMsgTime() const;
void incSpamWarns();
int getSpamWarns() const;
void resetPlayer(bool ctf);
void setRestartOnBase(bool on);
bool shouldRestartAtBase();
bool isPlaying() const;
void signingOn();
bool isAlive() const;
void setAlive();
void setDead();
bool isPaused() const;
bool isAutoPilot() const;
bool canMove() const;
bool canShoot() const;
void setAllowMovement(bool allow);
void setAllowShooting(bool allow);
bool isBot() const;
bool isHuman() const;
bool isChat() const;
void *packUpdate(void *buf);
void *packId(void *buf);
bool unpackEnter(void *buf, uint16_t &rejectCode, char *rejectMsg);
const char *getCallSign() const;
const char *getEMail() const;
const char *getToken() const;
void clearToken();
void *packVirtualFlagCapture(void *buf);
bool isTeam(TeamColor team) const;
bool isObserver() const;
TeamColor getTeam() const;
void setTeam(TeamColor team);
void wasARabbit();
void wasNotARabbit();
bool isARabbitKill(PlayerInfo &victim) const;
void resetFlag();
bool haveFlag() const;
int getFlag() const;
void setFlag(int flag);
bool isFlagTransitSafe();
const char *getClientVersion();
std::string getIdleStat();
bool canBeRabbit(bool relaxing = false);
void setPaused(bool paused);
void setAutoPilot(bool autopilot);
bool isTooMuchIdling(float kickThresh);
bool hasStartedToNotRespond();
void hasSent();
bool hasPlayedEarly();
void setPlayedEarly(bool early = true);
void setReplayState(PlayerReplayState state);
void updateIdleTime();
int pauseRequestLag;
TimeKeeper pauseRequestTime; // time used to determine whether a player pauses too fast
float jumpStartPos;
float allowedHeightAtJumpStart;
PlayerReplayState getReplayState();
static void setCurrentTime(TimeKeeper tm);
static void setFilterParameters(bool callSignFiltering,
WordFilter &filterData,
bool simpleFiltering);
void setTrackerID(unsigned short int t);
unsigned short int trackerID();
static TimeKeeper now;
int endShotCredit;
TimeKeeper allowChangeTime;
PlayerType getType( void ) {return type;}
// only used by the server side bot API
void setCallsign ( const char* text );
void setEmail ( const char* text );
void setToken ( const char* text );
void setClientVersion ( const char* text );
void setType ( PlayerType playerType );
bool processEnter ( uint16_t &rejectCode, char *rejectMsg );
private:
void cleanEMail();
bool isCallSignReadable();
bool isEMailReadable();
int playerIndex;
bool restartOnBase;
// current state of player
ClientState state;
// Need to know if entered is already done
bool hasDoneEntering;
// type of player
PlayerType type;
// player's pseudonym
char callSign[CallSignLen];
// token from db server
char token[TokenLen];
// player's email address
char email[EmailLen];
// version information from client
char clientVersion[VersionLen];
// player's team
TeamColor team;
// true for dead rabbit until respawn
bool wasRabbit;
// flag index player has
int flag;
TimeKeeper lastFlagDropTime;
bool allowMovement;
bool allowShooting;
// spam prevention
std::string lastMsgSent;
int spamWarns;
TimeKeeper lastMsgTime;
bool paused;
TimeKeeper pausedSince;
bool autopilot;
bool notResponding;
// Has the player been sent any replay 'faked' state
PlayerReplayState replayState;
// idle kick
TimeKeeper lastmsg;
TimeKeeper lastupdate;
// player played before countdown started
bool playedEarly;
// tracker id for position tracking
unsigned short int tracker;
// Error string
std::string errorString;
// just need one of these for
static WordFilter serverSpoofingFilter;
static bool callSignFiltering;
static WordFilter *filterData;
static bool simpleFiltering;
};
inline bool PlayerInfo::isPlaying() const {
return state > PlayerInLimbo;
}
inline bool PlayerInfo::isHuman() const {
return (type == TankPlayer) && hasDoneEntering;
}
inline bool PlayerInfo::haveFlag() const {
return flag >= 0;
}
inline int PlayerInfo::getFlag() const {
return flag;
}
inline const std::string& PlayerInfo::getLastMsg() const {
return lastMsgSent;
}
inline TimeKeeper PlayerInfo::getLastMsgTime() const {
return lastMsgTime;
}
inline int PlayerInfo::getSpamWarns() const {
return spamWarns;
}
inline void PlayerInfo::incSpamWarns() {
++spamWarns;
}
inline void PlayerInfo::setLastMsg(std::string msg) {
lastMsgSent = msg;
lastMsgTime = now;
}
inline bool PlayerInfo::isAlive() const {
return state == PlayerAlive;
}
inline bool PlayerInfo::isPaused() const {
return paused;
}
inline bool PlayerInfo::canMove() const
{
return allowMovement;
}
inline bool PlayerInfo::canShoot() const
{
return allowShooting;
}
inline void PlayerInfo::setAllowMovement(bool allow)
{
allowMovement = allow;
allowChangeTime = now;
}
inline void PlayerInfo::setAllowShooting(bool allow)
{
allowShooting = allow;
allowChangeTime = now;
}
inline bool PlayerInfo::isAutoPilot() const {
return autopilot;
}
inline bool PlayerInfo::isBot() const {
return type == ComputerPlayer;
}
inline bool PlayerInfo::isChat() const {
return type == ChatPlayer;
}
inline bool PlayerInfo::isARabbitKill(PlayerInfo &victim) const {
return wasRabbit || victim.team == RabbitTeam;
}
ЗЫ: может пригодится.
|
|
|
09.09.2012, 21:45
|
#6
|
|
|
|
Пехотинец
|
Регистрация: 04.02.2012
Сообщений: 71
Популярность: 2775
Сказал(а) спасибо: 77
Поблагодарили 153 раз(а) в 60 сообщениях
|
Re: Классы
|
Цитата: |
|
|
|
|
Сообщение от Metro Berlin |
|
|
|
|
|
|
|
Вот такая вот хрень.
Код:
#ifndef __PLAYERINFO_H__
#define __PLAYERINFO_H__
// bzflag global header
#include "global.h"
// system headers
#include <string>
#ifndef _WIN32
#include <unistd.h>
#include <sys/socket.h>
#endif
// common interface headers
#include "TimeKeeper.h"
#include "Team.h"
#include "Protocol.h"
#include "Flag.h"
#include "WordFilter.h"
enum ClientState {
PlayerNoExist,
PlayerInLimbo,
PlayerDead,
PlayerAlive
};
enum PlayerReplayState {
ReplayNone,
ReplayReceiving,
ReplayStateful
};
#define SEND 1
#define RECEIVE 0
struct TeamInfo {
public:
Team team;
TimeKeeper flagTimeout;
};
class PlayerInfo {
public:
PlayerInfo(int _playerIndex);
int getPlayerIndex( void ) const { return playerIndex; }
void setLastMsg(std::string msg);
const std::string& getLastMsg() const;
TimeKeeper getLastMsgTime() const;
void incSpamWarns();
int getSpamWarns() const;
void resetPlayer(bool ctf);
void setRestartOnBase(bool on);
bool shouldRestartAtBase();
bool isPlaying() const;
void signingOn();
bool isAlive() const;
void setAlive();
void setDead();
bool isPaused() const;
bool isAutoPilot() const;
bool canMove() const;
bool canShoot() const;
void setAllowMovement(bool allow);
void setAllowShooting(bool allow);
bool isBot() const;
bool isHuman() const;
bool isChat() const;
void *packUpdate(void *buf);
void *packId(void *buf);
bool unpackEnter(void *buf, uint16_t &rejectCode, char *rejectMsg);
const char *getCallSign() const;
const char *getEMail() const;
const char *getToken() const;
void clearToken();
void *packVirtualFlagCapture(void *buf);
bool isTeam(TeamColor team) const;
bool isObserver() const;
TeamColor getTeam() const;
void setTeam(TeamColor team);
void wasARabbit();
void wasNotARabbit();
bool isARabbitKill(PlayerInfo &victim) const;
void resetFlag();
bool haveFlag() const;
int getFlag() const;
void setFlag(int flag);
bool isFlagTransitSafe();
const char *getClientVersion();
std::string getIdleStat();
bool canBeRabbit(bool relaxing = false);
void setPaused(bool paused);
void setAutoPilot(bool autopilot);
bool isTooMuchIdling(float kickThresh);
bool hasStartedToNotRespond();
void hasSent();
bool hasPlayedEarly();
void setPlayedEarly(bool early = true);
void setReplayState(PlayerReplayState state);
void updateIdleTime();
int pauseRequestLag;
TimeKeeper pauseRequestTime; // time used to determine whether a player pauses too fast
float jumpStartPos;
float allowedHeightAtJumpStart;
PlayerReplayState getReplayState();
static void setCurrentTime(TimeKeeper tm);
static void setFilterParameters(bool callSignFiltering,
WordFilter &filterData,
bool simpleFiltering);
void setTrackerID(unsigned short int t);
unsigned short int trackerID();
static TimeKeeper now;
int endShotCredit;
TimeKeeper allowChangeTime;
PlayerType getType( void ) {return type;}
// only used by the server side bot API
void setCallsign ( const char* text );
void setEmail ( const char* text );
void setToken ( const char* text );
void setClientVersion ( const char* text );
void setType ( PlayerType playerType );
bool processEnter ( uint16_t &rejectCode, char *rejectMsg );
private:
void cleanEMail();
bool isCallSignReadable();
bool isEMailReadable();
int playerIndex;
bool restartOnBase;
// current state of player
ClientState state;
// Need to know if entered is already done
bool hasDoneEntering;
// type of player
PlayerType type;
// player's pseudonym
char callSign[CallSignLen];
// token from db server
char token[TokenLen];
// player's email address
char email[EmailLen];
// version information from client
char clientVersion[VersionLen];
// player's team
TeamColor team;
// true for dead rabbit until respawn
bool wasRabbit;
// flag index player has
int flag;
TimeKeeper lastFlagDropTime;
bool allowMovement;
bool allowShooting;
// spam prevention
std::string lastMsgSent;
int spamWarns;
TimeKeeper lastMsgTime;
bool paused;
TimeKeeper pausedSince;
bool autopilot;
bool notResponding;
// Has the player been sent any replay 'faked' state
PlayerReplayState replayState;
// idle kick
TimeKeeper lastmsg;
TimeKeeper lastupdate;
// player played before countdown started
bool playedEarly;
// tracker id for position tracking
unsigned short int tracker;
// Error string
std::string errorString;
// just need one of these for
static WordFilter serverSpoofingFilter;
static bool callSignFiltering;
static WordFilter *filterData;
static bool simpleFiltering;
};
inline bool PlayerInfo::isPlaying() const {
return state > PlayerInLimbo;
}
inline bool PlayerInfo::isHuman() const {
return (type == TankPlayer) && hasDoneEntering;
}
inline bool PlayerInfo::haveFlag() const {
return flag >= 0;
}
inline int PlayerInfo::getFlag() const {
return flag;
}
inline const std::string& PlayerInfo::getLastMsg() const {
return lastMsgSent;
}
inline TimeKeeper PlayerInfo::getLastMsgTime() const {
return lastMsgTime;
}
inline int PlayerInfo::getSpamWarns() const {
return spamWarns;
}
inline void PlayerInfo::incSpamWarns() {
++spamWarns;
}
inline void PlayerInfo::setLastMsg(std::string msg) {
lastMsgSent = msg;
lastMsgTime = now;
}
inline bool PlayerInfo::isAlive() const {
return state == PlayerAlive;
}
inline bool PlayerInfo::isPaused() const {
return paused;
}
inline bool PlayerInfo::canMove() const
{
return allowMovement;
}
inline bool PlayerInfo::canShoot() const
{
return allowShooting;
}
inline void PlayerInfo::setAllowMovement(bool allow)
{
allowMovement = allow;
allowChangeTime = now;
}
inline void PlayerInfo::setAllowShooting(bool allow)
{
allowShooting = allow;
allowChangeTime = now;
}
inline bool PlayerInfo::isAutoPilot() const {
return autopilot;
}
inline bool PlayerInfo::isBot() const {
return type == ComputerPlayer;
}
inline bool PlayerInfo::isChat() const {
return type == ChatPlayer;
}
inline bool PlayerInfo::isARabbitKill(PlayerInfo &victim) const {
return wasRabbit || victim.team == RabbitTeam;
}
ЗЫ: может пригодится.
|
|
|
|
|
|
Ну это не полный исход.... У меня тоже есть вопросы по классам, но никто их толком не знает. До мазая или Славы нереально достучаться, а в паблик ничего не напишут по поводу этого
Добавлено через 10 часов 9 минут
Как всегда игнор по этому вопросу
Последний раз редактировалось pia3333(4); 10.09.2012 в 07:54.
Причина: Добавлено сообщение
|
|
|
11.09.2012, 13:53
|
#7
|
|
|
|
Пехотинец
|
Регистрация: 04.02.2012
Сообщений: 71
Популярность: 2775
Сказал(а) спасибо: 77
Поблагодарили 153 раз(а) в 60 сообщениях
|
Re: Классы
UP
|
|
|
11.09.2012, 19:07
|
#8
|
|
|
|
Сержант
|
Регистрация: 31.03.2011
Сообщений: 131
Популярность: 3991
Сказал(а) спасибо: 46
Поблагодарили 162 раз(а) в 87 сообщениях
|
Re: Классы
В чём именно надо помочь по класcам?
|
|
|
11.09.2012, 19:25
|
#9
|
|
|
|
Разведчик
|
Регистрация: 11.09.2012
Сообщений: 5
Популярность: 224
Сказал(а) спасибо: 1
Поблагодарили 4 раз(а) в 4 сообщениях
|
Re: Классы
|
|
|
11.09.2012, 21:23
|
#10
|
|
|
|
Сержант
|
Регистрация: 31.03.2011
Сообщений: 131
Популярность: 3991
Сказал(а) спасибо: 46
Поблагодарили 162 раз(а) в 87 сообщениях
|
Re: Классы
C майонезом кетчупом и прочими специями x)
|
|
|
11.09.2012, 21:59
|
#11
|
|
|
|
Разведчик
|
Регистрация: 06.08.2012
Сообщений: 1
Популярность: 72
Сказал(а) спасибо: 3
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Классы
|
Цитата: |
|
|
|
|
|
|
|
|
|
C майонезом кетчупом и прочими специями x)
|
|
|
|
|
|
________________
все ку!
|
|
|
11.09.2012, 22:05
|
#12
|
|
|
|
Сержант
|
Регистрация: 31.03.2011
Сообщений: 131
Популярность: 3991
Сказал(а) спасибо: 46
Поблагодарили 162 раз(а) в 87 сообщениях
|
Re: Классы
Конкретно вопросы задавайте!
|
|
|
11.09.2012, 22:09
|
#13
|
|
|
|
Пехотинец
|
Регистрация: 04.02.2012
Сообщений: 71
Популярность: 2775
Сказал(а) спасибо: 77
Поблагодарили 153 раз(а) в 60 сообщениях
|
Re: Классы
|
|
|
11.09.2012, 22:16
|
#14
|
|
|
|
Сержант
|
Регистрация: 12.04.2011
Сообщений: 142
Популярность: 3904
Сказал(а) спасибо: 279
Поблагодарили 361 раз(а) в 174 сообщениях
|
Re: Классы
Да, меня тоже!
Сам вопрос, как их найти?
|
|
|
11.09.2012, 22:30
|
#15
|
|
|
|
Разведчик
|
Регистрация: 04.05.2012
Сообщений: 18
Популярность: 805
Сказал(а) спасибо: 24
Поблагодарили 25 раз(а) в 18 сообщениях
|
Re: Классы
$._KING_.$
Дим, сам же мало знаешь... Хотя хоть что нибудь расскажешь....
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Обсуждение] WOW персы и классы
|
ДИМАНЧЕГСАН |
Общение и обсуждение WoW |
6 |
30.03.2012 01:41 |
[Баг] ДК и другие классы.
|
AlanMix |
Читы, баги и статьи по WoW |
4 |
07.03.2012 06:33 |
[Информация] Классы
|
[ZVER] |
Общение и обсуждение WoW |
1 |
29.12.2011 19:05 |
[Руководство] Гайд на все классы по чуть-чуть
|
Xoma163 |
Team Fortress 2 |
7 |
30.09.2011 15:46 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 19:09.
|
|