If you are using mumaker sno__numb should be (char)18 (MEMB_INFO)
- - - Updated - - -
And here is non-md5 joinserver
https://mega.co.nz/#!yFRxjJBB!Tp-Nkx...G5t60Oo1Sbw2JE
If you are using mumaker sno__numb should be (char)18 (MEMB_INFO)
- - - Updated - - -
And here is non-md5 joinserver
https://mega.co.nz/#!yFRxjJBB!Tp-Nkx...G5t60Oo1Sbw2JE
bug that i think i found GM cant move with M only by command
I need help programming the color of its source code like this ServerMsgSendGreen
void ServerMsgSendGreen(int aIndex,char* Name,char* Message,...)
{
char szPacket[1024];
va_list pArguments;
va_start(pArguments,Message);
vsprintf(szPacket,Message,pArguments);
va_end(pArguments);
BYTE Packet[0xFF] = {0};
BYTE Len = (strlen(szPacket) + 0x13);
Packet[0] = 0xC1;
Packet[1] = Len+15;
Packet[2] = 0x00;
strncpy((char*)&Packet[3],Name,10);
Packet[13] = 0x40;
strncpy((char*)&Packet[14],szPacket,strlen(szPacket));
if(!aIndex)DataSendAll(Packet,Packet[1]);
else
if(gObjIsConnected(aIndex))
DataSendAll(Packet,Packet[1]);
}
i need code on : msg color on : OutGreenMSG
Can someone help me add info employ this command on and off here castrated:
Code:void InfoCommand(int aIndex,char* Message) { OBJECTSTRUCT *gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex); char Target[111]; sscanf(Message,"%s",Target); int tIndex = gObjGetIndex(Target); OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(tIndex); if(tIndex == -1) { GCServerMsgStringSend("השחקן לא מחובר או לא נמצא במערכת",aIndex,1); return; } else { if(tObj->Authority == 32) { OutBlueMsg(aIndex,"אתה לא יכול לבצע בדיקה על מנהל"); } else { if(tObj->MapNumber == 0) { char Msg1[120]; char Msg2[120]; char Msg3[120]; sprintf(Msg1,"Name: %s,Level:%d(%d) Guild(%s)",tObj->Name,tObj->Level,SQL.GetResets(tObj->Name),tObj->GuildName); sprintf(Msg2,"Str : %d,Agi : %d,Vit : %d,Ene : %d,Com : %d",tObj->Strength,tObj->Dexterity,tObj->Vitality,tObj->Energy,tObj->Leadership); sprintf(Msg3,"X : %d , Y : %d,MapNumber : Lorencia",tObj->X,tObj->Y); OutGreenMSG(aIndex,Msg1); OutGreenMSG(aIndex,Msg2); OutGreenMSG(aIndex,Msg3); char msg4[70]; sprintf(msg4," עשה עלייך בדיקת מידע %s השחקן",gObj->Name); OutGreenMSG(tIndex,msg4,1); } else if(tObj->MapNumber == 1) { char Msg1[120]; char Msg2[120]; char Msg3[120]; sprintf(Msg1,"Name: %s,Level:%d(%d) Guild(%s)",tObj->Name,tObj->Level,SQL.GetResets(tObj->Name),tObj->GuildName); sprintf(Msg2,"Str : %d,Agi : %d,Vit : %d,Ene : %d,Com : %d",tObj->Strength,tObj->Dexterity,tObj->Vitality,tObj->Energy,tObj->Leadership); sprintf(Msg3,"X : %d , Y : %d,MapNumber : Dungeon",tObj->X,tObj->Y); OutGreenMSG(aIndex,Msg1); OutGreenMSG(aIndex,Msg2); OutGreenMSG(aIndex,Msg3); char msg4[70]; sprintf(msg4," עשה עלייך בדיקת מידע %s השחקן",gObj->Name); OutGreenMSG(tIndex,msg4,1); } else if(tObj->MapNumber == 2) { char Msg1[120]; char Msg2[120]; char Msg3[120]; sprintf(Msg1,"Name: %s,Level:%d(%d) Guild(%s)",tObj->Name,tObj->Level,SQL.GetResets(tObj->Name),tObj->GuildName); sprintf(Msg2,"Str : %d,Agi : %d,Vit : %d,Ene : %d,Com : %d",tObj->Strength,tObj->Dexterity,tObj->Vitality,tObj->Energy,tObj->Leadership); sprintf(Msg3,"X : %d , Y : %d,MapNumber : Devias",tObj->X,tObj->Y); OutGreenMSG(aIndex,Msg1); OutGreenMSG(aIndex,Msg2); OutGreenMSG(aIndex,Msg3); char msg4[70]; sprintf(msg4," עשה עלייך בדיקת מידע %s השחקן",gObj->Name); OutGreenMSG(tIndex,msg4,1); } else if(tObj->MapNumber == 3) { char Msg1[120]; char Msg2[120]; char Msg3[120]; sprintf(Msg1,"Name: %s,Level:%d(%d) Guild(%s)",tObj->Name,tObj->Level,SQL.GetResets(tObj->Name),tObj->GuildName); sprintf(Msg2,"Str : %d,Agi : %d,Vit : %d,Ene : %d,Com : %d",tObj->Strength,tObj->Dexterity,tObj->Vitality,tObj->Energy,tObj->Leadership); sprintf(Msg3,"X : %d , Y : %d,MapNumber : Noria",tObj->X,tObj->Y); OutGreenMSG(aIndex,Msg1); OutGreenMSG(aIndex,Msg2); OutGreenMSG(aIndex,Msg3); char msg4[70]; sprintf(msg4," עשה עלייך בדיקת מידע %s השחקן",gObj->Name); OutGreenMSG(tIndex,msg4,1); } else if(tObj->MapNumber == 4) { char Msg1[120]; char Msg2[120]; char Msg3[120]; sprintf(Msg1,"Name: %s,Level:%d(%d) Guild(%s)",tObj->Name,tObj->Level,SQL.GetResets(tObj->Name),tObj->GuildName); sprintf(Msg2,"Str : %d,Agi : %d,Vit : %d,Ene : %d,Com : %d",tObj->Strength,tObj->Dexterity,tObj->Vitality,tObj->Energy,tObj->Leadership); sprintf(Msg3,"X : %d , Y : %d,MapNumber : Lost Tower",tObj->X,tObj->Y); OutGreenMSG(aIndex,Msg1); OutGreenMSG(aIndex,Msg2); OutGreenMSG(aIndex,Msg3); char msg4[70]; sprintf(msg4," עשה עלייך בדיקת מידע %s השחקן",gObj->Name); OutGreenMSG(tIndex,msg4,1); } else if(tObj->MapNumber == 6) { char Msg1[120]; char Msg2[120]; char Msg3[120]; sprintf(Msg1,"Name: %s,Level:%d(%d) Guild(%s)",tObj->Name,tObj->Level,SQL.GetResets(tObj->Name),tObj->GuildName); sprintf(Msg2,"Str : %d,Agi : %d,Vit : %d,Ene : %d,Com : %d",tObj->Strength,tObj->Dexterity,tObj->Vitality,tObj->Energy,tObj->Leadership); sprintf(Msg3,"X : %d , Y : %d,MapNumber : Arena",tObj->X,tObj->Y); OutGreenMSG(aIndex,Msg1); OutGreenMSG(aIndex,Msg2); OutGreenMSG(aIndex,Msg3); char msg4[70]; sprintf(msg4," עשה עלייך בדיקת מידע %s השחקן",gObj->Name); OutGreenMSG(tIndex,msg4,1); } else if(tObj->MapNumber == 7) { char Msg1[120]; char Msg2[120]; char Msg3[120]; sprintf(Msg1,"Name: %s,Level:%d(%d) Guild(%s)",tObj->Name,tObj->Level,SQL.GetResets(tObj->Name),tObj->GuildName); sprintf(Msg2,"Str : %d,Agi : %d,Vit : %d,Ene : %d,Com : %d",tObj->Strength,tObj->Dexterity,tObj->Vitality,tObj->Energy,tObj->Leadership); sprintf(Msg3,"X : %d , Y : %d,MapNumber : Atlans",tObj->X,tObj->Y); OutGreenMSG(aIndex,Msg1); OutGreenMSG(aIndex,Msg2); OutGreenMSG(aIndex,Msg3); char msg4[70]; sprintf(msg4," עשה עלייך בדיקת מידע %s השחקן",gObj->Name); OutGreenMSG(tIndex,msg4,1); } else if(tObj->MapNumber == 8) { char Msg1[120]; char Msg2[120]; char Msg3[120]; sprintf(Msg1,"Name: %s,Level:%d(%d) Guild(%s)",tObj->Name,tObj->Level,SQL.GetResets(tObj->Name),tObj->GuildName); sprintf(Msg2,"Str : %d,Agi : %d,Vit : %d,Ene : %d,Com : %d",tObj->Strength,tObj->Dexterity,tObj->Vitality,tObj->Energy,tObj->Leadership); sprintf(Msg3,"X : %d , Y : %d,MapNumber : Tarkan",tObj->X,tObj->Y); OutGreenMSG(aIndex,Msg1); OutGreenMSG(aIndex,Msg2); OutGreenMSG(aIndex,Msg3); char msg4[70]; sprintf(msg4," עשה עלייך בדיקת מידע %s השחקן",gObj->Name); OutGreenMSG(tIndex,msg4,1); } else if(tObj->MapNumber == 10) { char Msg1[120]; char Msg2[120]; char Msg3[120]; sprintf(Msg1,"Name: %s,Level:%d(%d) Guild(%s)",tObj->Name,tObj->Level,SQL.GetResets(tObj->Name),tObj->GuildName); sprintf(Msg2,"Str : %d,Agi : %d,Vit : %d,Ene : %d,Com : %d",tObj->Strength,tObj->Dexterity,tObj->Vitality,tObj->Energy,tObj->Leadership); sprintf(Msg3,"X : %d , Y : %d,MapNumber : Icarus",tObj->X,tObj->Y); OutGreenMSG(aIndex,Msg1); OutGreenMSG(aIndex,Msg2); OutGreenMSG(aIndex,Msg3); char msg4[70]; sprintf(msg4," עשה עלייך בדיקת מידע %s השחקן",gObj->Name); OutGreenMSG(tIndex,msg4,1); } } } }
Last edited by [RCZ]ShadowKing; 18-10-14 at 11:06 PM. Reason: added code tags
How to control server messages output(Type,Color,Times etc) :
1. add this code into user.h:
2.add this into mapping.h:Code:struct PMSG_NOTICE { BYTE c; BYTE size; BYTE headcode; BYTE type; BYTE btCount; WORD wDelay; int dwColor; BYTE btSpeed; char Notice[256]; }; __inline DWORD _ARGB(BYTE a, BYTE r, BYTE g, BYTE b){ return a*16777216 + b*65536 + g*256 + r;}
3.add this into mapping.cpp:Code:typedef void (*pSetNoticeProperty) (void*,BYTE,DWORD,BYTE,WORD,BYTE); extern pSetNoticeProperty SetNoticeProperty;
4.before using message send function add this:Code:pSetNoticeProperty SetNoticeProperty = (pSetNoticeProperty) 0x00403E18; (Normal GS) pSetNoticeProperty SetNoticeProperty = (pSetNoticeProperty) 0x004B9600; (Castle Siege GS)
for example:Code:PMSG_NOTICE pNotice; SetNoticeProperty(&pNotice, 10, _ARGB(255, 128, 149, 196), 1, 0, 20);
5.Enjoy!Code:void ServerMsgSendAll(char* Message,...) { for(int i = OBJECT_MIN; i < OBJECT_MAX; i++) { if(gObjIsConnected(i)) { PMSG_NOTICE pNotice; SetNoticeProperty(&pNotice, 10, _ARGB(255, 128, 149, 196), 1, 0, 20); GCServerMsgStringSend(Message,i,0); } } }
this are the function parameters;
just replace to what you prefferCode:(void * lpNotice, BYTE btType, DWORD dwColor, BYTE btCount, WORD wDelay, BYTE btSpeed)
BTW for lazy guys im attach edited with ServerMsgSendAll edited
Last edited by NanoGuy; 12-10-14 at 12:58 PM.
/ on / off on /info player option command
@
here source :
Code:#include "stdafx.h" Main mGobj[1000]; void InfoCmd(int aIndex,char* Text) { if(!strcmp(Text, "on")){ mGobj[aIndex-6400].infostat = 1; ServerMsgSendGreen(aIndex,"[Info]"," מופעל"); return; } else if(!strcmp(Text, "off")){ mGobj[aIndex-6400].infostat = 0; ServerMsgSendGreen(aIndex,"[Info]"," סגור"); return; } else { if (!strcmpi(Text, "/info")) { GCServerMsgStringSend("Usage: /info <name>",aIndex,1); return; } if(strlen(Text) <= 1) { GCServerMsgStringSend("Usage: /info <name>",aIndex,1); return; } int Spaces = 0,csql=0; for(int i = 0; i < strlen(Text); i++) { if(Text[i] == ' ') { Spaces++; } if(Text[i] == '\'') { csql=1; } } if(Spaces !=1 || csql == 1) { GCServerMsgStringSend("Usage: /info <name>",aIndex,1); return; } char name[11],Query[150],cName[11],Guild[12]; sscanf(Text,"%s",&name); int tIndex = IndexFromName(name); if(tIndex == 0 || OnlineStatus(tIndex)==false) { sprintf(Query,"SELECT * FROM Character WHERE Name = '%s'",name); SQL.Exec(Query); SQL.Fetch(); SQL.GetStr("Name",cName); if(strlen(cName) == strlen(name) && !memcmp(name,cName,strlen(name))) { ServerMsgSendGreen(aIndex,"[Info]"," %s is Offline",cName); ServerMsgSendGreen(aIndex,"[Info]"," Level %d(%d), Class: %s, %s(%d,%d)",SQL.GetInt("cLevel"),SQL.GetInt("Reset"),GetClassName(SQL.GetInt("Class")),GetMapName(SQL.GetInt("MapNumber")),SQL.GetInt("MapPosX"),SQL.GetInt("MaxPosY")); if(SQL.GetInt("Class")!=64) ServerMsgSendGreen(aIndex,"[Info]"," Str: %d, Agi: %d, Vit: %d, Ene: %d",SQL.GetInt("Strength"),SQL.GetInt("Dexterity"),SQL.GetInt("Vitality"),SQL.GetInt("Energy")); else ServerMsgSendGreen(aIndex,"[Info]"," Str: %d, Agi: %d, Vit: %d, Ene: %d, Com: %d",SQL.GetInt("Strength"),SQL.GetInt("Dexterity"),SQL.GetInt("Vitality"),SQL.GetInt("Energy"),SQL.GetInt("Leadership")); SQL.Clear(); sprintf(Query,"SELECT * FROM GuildMember WHERE Name = '%s'",cName); SQL.Exec(Query); SQL.Fetch(); SQL.GetStr("Name",cName); SQL.GetStr("G_Name",Guild); SQL.Clear(); if(strlen(name) == strlen(cName) && !memcmp(name,cName,strlen(name))) ServerMsgSendGreen(aIndex,"[Info]"," Guild: %s",Guild); else ServerMsgSendGreen(aIndex,"[Info]"," Guild: None"); } else { ServerMsgSendGreen(aIndex,"[Info]","!השחקן לא קיים במערכת"); SQL.Clear(); } } else { if(mGobj[aIndex-6400].infostat ==1) { OBJECTSTRUCT *gObj = (OBJECTSTRUCT*)OBJECT_POINTER(tIndex); sprintf(Query,"SELECT * FROM Character WHERE Name = '%s'",name); SQL.Exec(Query); SQL.Fetch(); ServerMsgSendGreen(aIndex,"[Info]"," %s is Online",name); ServerMsgSendGreen(aIndex,"[Info]"," Level %d(%d), Class: %s, %s(%d,%d)",gObj->Level,SQL.GetInt("Reset"),GetClassName(SQL.GetInt("Class")),GetMapName(gObj->MapNumber),gObj->X,gObj->Y); if(gObj->Class!=64) ServerMsgSendGreen(aIndex,"[Info]"," Str: %d, Agi: %d, Vit: %d, Ene: %d",gObj->Strength,gObj->Dexterity,gObj->Vitality,gObj->Energy); else ServerMsgSendGreen(aIndex,"[Info]"," Str: %d, Agi: %d, Vit: %d, Ene: %d, Com: %d",gObj->Strength,gObj->Dexterity,gObj->Vitality,gObj->Energy,gObj->Leadership); SQL.Clear(); if(strlen(gObj->GuildName)>0) ServerMsgSendGreen(aIndex,"[Info]"," Guild: %s",gObj->GuildName); else ServerMsgSendGreen(aIndex,"[Info]"," Guild: None",gObj->GuildName); ServerMsgSendGreen(tIndex,"[Info]"," שחקן חיפש פרטים עליך"); } else if(mGobj[aIndex-6400].infostat == 0) ServerMsgSendGreen(aIndex,"[Info]"," השחקן ביטל את האפשרות לפקודה"); } } } void ReadCommand(int aIndex,unsigned char* Protocol) { char CommandInfo[]="/info"; if(!memcmp(&Protocol[13],CommandInfo,strlen(CommandInfo))) { if(mGobj[aIndex-6400].ctime == 0){ InfoCmd(aIndex,(char*)Protocol+13+strlen(CommandInfo)); mGobj[aIndex-6400].ctime = GetTickCount(); } else if(GetTickCount() - mGobj[aIndex-6400].ctime >= 2000){ InfoCmd(aIndex,(char*)Protocol+13+strlen(CommandInfo)); mGobj[aIndex-6400].ctime = GetTickCount(); } else ServerMsgSendGreen(aIndex,"[Info]"," פקודה כל שתי שניות"); } } header files: #ifndef __COMMANDSYSTEM_H__ #define __COMMANDSYSTEM_H__ void ReadCommand(int aIndex,unsigned char* Message); struct Main{ int infostat; int ctime; }; extern Main mGobj[1000]; #endif
Last edited by [RCZ]ShadowKing; 18-10-14 at 11:06 PM. Reason: added code tags
Someone can remove the function of the "enter" key in the selection of characters?
If you have no idea, someone you please modify the code to block the function of the "enter" key in the selection of characters.
There is a pretty critical bug related to the characters and the enter key.
Here I leave the video that explains it.
Video
Thanks
*googletranstlate
@Shatter
you can upload update?
@Shatter Nice files!! It's just me or Dark Raven attack isn't working??
To anyone who feels the same to me?
If you give trade to another user and then press 2 times the letter T. I disconnect the user you're giving the trade.
Solutions?
Thanks.-
*googletranslate.