- Katılım
- 22 Kas 2024
- Mesajlar
- 37
- Tepkime puanı
- 64
- Puanları
- 18
input_main.cpp aç ve arat
extern void SendShout(const char * szText, BYTE bEmpire);
değiştir
#ifdef ENABLE_FAKE_CHAT
extern void SendShout(const char * szText, BYTE bEmpire);
#endif
arat
static int __deposit_limit()
altına ekle
#ifdef ENABLE_FAKE_CHAT
#define FILE_MAX_LEN 256
#include <iostream>
#include <fstream>
std::vector<std::string> vec_chNames;
std::string textArray[9] = {
"AS", "as","aleykum selam", "ALEYKUM SELAM", "a.s", "A.S", "was", "A.s", "Aleykum Selam"
};
#define TIMER_TICK_DIVIDING 6 //1 sec / x
#define MIN_CHAT_COUNT_FOR_A_TICK 4
#define MAX_CHAT_COUNT_FOR_A_TICK 10
EVENTINFO(chat_shout_event_info)
{
const char * szText;
int chatCount;
int maxCount;
};
EVENTFUNC(chat_shout_update_event)
{
chat_shout_event_info* info = dynamic_cast<chat_shout_event_info*>(event->info);
if (info == NULL)
{
sys_err("mountsystem_update_event> <Factor> Null pointer");
return 0;
}
if (info->chatCount >= info->maxCount) { vec_chNames.clear(); return 0; }
int startIndex = info->chatCount;
const int shoutCount = number(MIN_CHAT_COUNT_FOR_A_TICK, MAX_CHAT_COUNT_FOR_A_TICK);
info->chatCount += shoutCount;
//int tekrar = 4;
//for(int bear = 0; bear <= tekrar; bear++){
for (int i = 0; i < shoutCount; i++) {
const int useIndex = startIndex + i;
if (useIndex >= vec_chNames.size()) { vec_chNames.clear(); return 0; }
char chatbuf_global[CHAT_MAX_LEN + 1];
std::string chName = vec_chNames[useIndex];
std::string chatText = textArray[number(0, _countof(textArray)-1)];
const BYTE charEmpire = number(1,3);
const char* iconEmp[3] = {"[1] ","[2] ","[3] "};
const char* colorEmp[3] = {"|cFFFF0000","|cffffff00","|cFF0080FF"};
int len_global = snprintf(chatbuf_global, sizeof(chatbuf_global), "%s%s : %s|HVectors:%s |h[PM]|h|r : %s" , iconEmp[charEmpire - 1], chName.c_str(), colorEmp[charEmpire - 1], chName.c_str(), chatText.c_str());
SendShout(chatbuf_global, charEmpire);
TPacketGGShout p;
p.bHeader = HEADER_GG_SHOUT;
p.bEmpire = charEmpire;
strlcpy(p.szText, chatbuf_global, sizeof(p.szText));
P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGShout));
}
//}
return PASSES_PER_SEC(1) / TIMER_TICK_DIVIDING;
}
void CreateShoutEvent() {
FILE* f;
char line[FILE_MAX_LEN];
unsigned n = 0;
f = fopen("/usr/game/share/locale/turkey/fake_names.txt", "r"); // Bu kısımı ftp üzerinde kendinize göre ayarlamayı unutmayın fake_names.txt içerisinde sadece kullanıcı adlarını çekmektedir.
if (!f) { return; }
while (fgets(line, FILE_MAX_LEN, f)) {
std::string tmpStr = (std::string)line;
std::string strLine = tmpStr.substr(0, tmpStr.size() - 2);
vec_chNames.push_back(strLine);
}
if (!feof(f)){
fclose(f);
return;
}
fclose(f);
/***/
chat_shout_event_info* info = AllocEventInfo<chat_shout_event_info>();
info->maxCount = vec_chNames.size();
info->chatCount = 0;
event_create(chat_shout_update_event, info, PASSES_PER_SEC(1));
}
#endif
-----------------------------
cmd_gm.cpp aç
arat
ACMD(do_map_notice)
ve altına ekle
#ifdef ENABLE_FAKE_CHAT
extern void CreateShoutEvent();
#endif
ACMD(do_big_notice)
{
#ifdef ENABLE_FAKE_CHAT
std::string strLine = static_cast<std::string>(argument), stName = static_cast<std::string>(ch->GetName());
if ((strLine == " SELAMUN ALEYKUM" || strLine == " SA" || strLine == " SELAMIN ALEYKUM" || strLine == " SELAMIN ALEYKUM") && (ch->IsGM()))
CreateShoutEvent();
#endif
#ifdef ENABLE_FULL_NOTICE
BroadcastNotice(argument, true);
#else
ch->ChatPacket(CHAT_TYPE_BIG_NOTICE, "%s", argument);
#endif
}
#ifdef ENABLE_FULL_NOTICE
ACMD(do_map_big_notice)
{
SendNoticeMap(argument, ch->GetMapIndex(), true);
}
ACMD(do_notice_test)
{
ch->ChatPacket(CHAT_TYPE_NOTICE, "%s", argument);
}
ACMD(do_big_notice_test)
{
ch->ChatPacket(CHAT_TYPE_BIG_NOTICE, "%s", argument);
}
#endif
extern void SendShout(const char * szText, BYTE bEmpire);
değiştir
#ifdef ENABLE_FAKE_CHAT
extern void SendShout(const char * szText, BYTE bEmpire);
#endif
arat
static int __deposit_limit()
altına ekle
#ifdef ENABLE_FAKE_CHAT
#define FILE_MAX_LEN 256
#include <iostream>
#include <fstream>
std::vector<std::string> vec_chNames;
std::string textArray[9] = {
"AS", "as","aleykum selam", "ALEYKUM SELAM", "a.s", "A.S", "was", "A.s", "Aleykum Selam"
};
#define TIMER_TICK_DIVIDING 6 //1 sec / x
#define MIN_CHAT_COUNT_FOR_A_TICK 4
#define MAX_CHAT_COUNT_FOR_A_TICK 10
EVENTINFO(chat_shout_event_info)
{
const char * szText;
int chatCount;
int maxCount;
};
EVENTFUNC(chat_shout_update_event)
{
chat_shout_event_info* info = dynamic_cast<chat_shout_event_info*>(event->info);
if (info == NULL)
{
sys_err("mountsystem_update_event> <Factor> Null pointer");
return 0;
}
if (info->chatCount >= info->maxCount) { vec_chNames.clear(); return 0; }
int startIndex = info->chatCount;
const int shoutCount = number(MIN_CHAT_COUNT_FOR_A_TICK, MAX_CHAT_COUNT_FOR_A_TICK);
info->chatCount += shoutCount;
//int tekrar = 4;
//for(int bear = 0; bear <= tekrar; bear++){
for (int i = 0; i < shoutCount; i++) {
const int useIndex = startIndex + i;
if (useIndex >= vec_chNames.size()) { vec_chNames.clear(); return 0; }
char chatbuf_global[CHAT_MAX_LEN + 1];
std::string chName = vec_chNames[useIndex];
std::string chatText = textArray[number(0, _countof(textArray)-1)];
const BYTE charEmpire = number(1,3);
const char* iconEmp[3] = {"[1] ","[2] ","[3] "};
const char* colorEmp[3] = {"|cFFFF0000","|cffffff00","|cFF0080FF"};
int len_global = snprintf(chatbuf_global, sizeof(chatbuf_global), "%s%s : %s|HVectors:%s |h[PM]|h|r : %s" , iconEmp[charEmpire - 1], chName.c_str(), colorEmp[charEmpire - 1], chName.c_str(), chatText.c_str());
SendShout(chatbuf_global, charEmpire);
TPacketGGShout p;
p.bHeader = HEADER_GG_SHOUT;
p.bEmpire = charEmpire;
strlcpy(p.szText, chatbuf_global, sizeof(p.szText));
P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGShout));
}
//}
return PASSES_PER_SEC(1) / TIMER_TICK_DIVIDING;
}
void CreateShoutEvent() {
FILE* f;
char line[FILE_MAX_LEN];
unsigned n = 0;
f = fopen("/usr/game/share/locale/turkey/fake_names.txt", "r"); // Bu kısımı ftp üzerinde kendinize göre ayarlamayı unutmayın fake_names.txt içerisinde sadece kullanıcı adlarını çekmektedir.
if (!f) { return; }
while (fgets(line, FILE_MAX_LEN, f)) {
std::string tmpStr = (std::string)line;
std::string strLine = tmpStr.substr(0, tmpStr.size() - 2);
vec_chNames.push_back(strLine);
}
if (!feof(f)){
fclose(f);
return;
}
fclose(f);
/***/
chat_shout_event_info* info = AllocEventInfo<chat_shout_event_info>();
info->maxCount = vec_chNames.size();
info->chatCount = 0;
event_create(chat_shout_update_event, info, PASSES_PER_SEC(1));
}
#endif
-----------------------------
cmd_gm.cpp aç
arat
ACMD(do_map_notice)
ve altına ekle
#ifdef ENABLE_FAKE_CHAT
extern void CreateShoutEvent();
#endif
ACMD(do_big_notice)
{
#ifdef ENABLE_FAKE_CHAT
std::string strLine = static_cast<std::string>(argument), stName = static_cast<std::string>(ch->GetName());
if ((strLine == " SELAMUN ALEYKUM" || strLine == " SA" || strLine == " SELAMIN ALEYKUM" || strLine == " SELAMIN ALEYKUM") && (ch->IsGM()))
CreateShoutEvent();
#endif
#ifdef ENABLE_FULL_NOTICE
BroadcastNotice(argument, true);
#else
ch->ChatPacket(CHAT_TYPE_BIG_NOTICE, "%s", argument);
#endif
}
#ifdef ENABLE_FULL_NOTICE
ACMD(do_map_big_notice)
{
SendNoticeMap(argument, ch->GetMapIndex(), true);
}
ACMD(do_notice_test)
{
ch->ChatPacket(CHAT_TYPE_NOTICE, "%s", argument);
}
ACMD(do_big_notice_test)
{
ch->ChatPacket(CHAT_TYPE_BIG_NOTICE, "%s", argument);
}
#endif
Metin2 Yazılım - Geliştirme kategorisindeki içeriklerimizi indirebilmeniz için yorum ve beğeni bırakmanız gerekmektedir.
Moderatör tarafında düzenlendi: