[Help] /gg source

pafa7a

Well-Known Member
Joined
Jul 9, 2009
Messages
1,399
Reaction score
816
Здравейте дарковци. Ползвам Exillum Season 3 ep 1 файловете: Exillum Server Files Season 3 Ep1 - DarksTeam Forum
и искам да добавя /gg командата, ама незнам как да я направя глобална (сега когато напиша '/gg test' си ми излиза "[pafa7a] test", но е само локално (на другите в сървъра не им излиза)).
Та ако може някой по-напреднал да удари 1 рамо ще съм доволен :)
 
Мога дамо да дам предложение:

Ако имаш стандартния сорс направи го така както се прави през сайта, там с ип и порт. В случая ще ползваш локалното ип и порта на чат сървъра. Не знам обаче на какъв принцип работи за локализиране на сървъра до сега не съм го ползвал...

Успех.
 
Имам го .php модула, ама е коренно различен от това което ми трябва на мене. Той праща сокети към joinserver-а
 
Имах предвид да направиш самия длл по същият начин. Ако го имаш стандартния сорс на длл-то мисля, че може да се преработи да праща към JS-to
 
Много съм зле с този език C++ и другите от сорта иначе бих го написал :D
 
Ето кода (в случея за /online командата която си работи перфектно но само който я е написал вижда резултата)
Code:
char CommandOnline[] = "/online";

void MsgGM(int aIndex,char* Message,...)
{
 char Packet[1024]="";
 va_list pArguments;
 va_start(pArguments,Message);
 vsprintf(&Packet[0],Message,pArguments);
 va_end(pArguments);
 GCServerMsgStringSend(&Packet[0],aIndex,0);
}

void OnlineCommand(int aIndex,char* Message)
{
 if(gObj[aIndex].Authority != 32)
{
 GCServerMsgStringSend("[pafa7a] This command is only for admins.",aIndex,1);
 return;
}
 if(!_strcmpi("/online",Message))
 {
  return;
 }
 int TotalPlayers = GetPlayerCount();
 MsgGM(aIndex,"Online players: %d", TotalPlayers);
}

void InitCommands(int aIndex,unsigned char* Protocol)
{
	if(!memcmp(&Protocol[13],CommandOnline,strlen(CommandOnline)))
	{
		OnlineCommand(aIndex,(char*)Protocol+13+strlen(CommandOnline));
	}
	
}
 
Last edited:
Дай да ти видя кода на /gg.
 
структурата му е същата. С две думи - помогнете /online да стане глобално, аз ще си направя и /gg
 
Last edited:
Code:
MsgGM(aIndex,"Online players: %d", TotalPlayers);

Става на:

Code:
char message[256];
sprintf(message,"Online players: %d", TotalPlayers);
AllSendServerMsg(message);
Code:
#define AllSendServerMsg ((void(*) (char * message)) 0x0054E700)
 
1>Commands.cpp(60): error C2082: redefinition of formal parameter 'Message'
1>Commands.cpp(61): error C2664: 'int sprintf(char *,size_t,const char *,...)' : cannot convert parameter 2 from 'const char [19]' to 'size_t'
1> There is no context in which this conversion is possible
 
1>Commands.cpp(60): error C2082: redefinition of formal parameter 'Message'
1>Commands.cpp(61): error C2664: 'int sprintf(char *,size_t,const char *,...)' : cannot convert parameter 2 from 'const char [19]' to 'size_t'
1> There is no context in which this conversion is possible
void OnlineCommand(int aIndex,char* Message) <-- обърни специално внимание.

И за да не се напрягаш толкова "рано", ще ти спестя мисленето.

void OnlineCommand(int aIndex,char* Message)
Става на:
void OnlineCommand(int aIndex)

OnlineCommand(aIndex,(char*)Protocol+13+strlen(CommandOnline));
Става на:
OnlineCommand(aIndex);
 
1>Commands.cpp(55): error C2065: 'Message' : undeclared identifier

този ред :
Code:
	[COLOR="Red"]if(!_strcmpi("/online",Message))[/COLOR]
	{
		return;
	}
 
1>Commands.cpp(55): error C2065: 'Message' : undeclared identifier

този ред :
Code:
    [COLOR=Red]if(!_strcmpi("/online",Message))[/COLOR]
    {
        return;
    }
Трий.
 
keep-praying-because-jesus-bless-you.png