HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Paylaşım için teşekkürler.
Evet bu sistemi satan çok kişi gördüm . bende filesim de ekimdejkini paylasıcaktım sen paylasmıssın ellerine sağlık . Doya doya kullansınlar 250 -500 TL arası fiyat biçiyor kendini bilmezlerEl altı satılıyormuş. Kendi c++ sürüm hatanızı kendiniz çözersiniz metin2 ile artık ilgilenmiyorum.
Ekli dosyayı görüntüle 111928
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
)Geçmiş olsun.
yüksek c++ sürümü kullanmayan arkadaşlar bunu kullanabilirler gcc49 ve üstünde bu kod çalışacaktır eror alan olursa yardımcı olabilirim konu üzerinden.
yüksek c++ sürümü kullanmayan arkadaşlar bunu kullanabilirler gcc49 ve üstünde bu kod çalışacaktır eror alan olursa yardımcı olabilirim konu üzerinden.
C++:
#include "stdafx.h"
#ifdef ENABLE_PLAYTIME_TITLE
#include "PlayTimeTitle.h"
#include "char.h"
#include "db.h"
#include "desc.h"
void CPlayTimeTitle::Initialize()
{
std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT * FROM playtimetitle_infos"));
if (pMsg->Get()->uiNumRows == 0)
{
sys_err("Playtime title table is empty!");
return;
}
MYSQL_ROW row;
while((row = mysql_fetch_row(pMsg->Get()->pSQLResult)))
{
uint8_t col = 0;
SPlayTimeTitleInfo data;
str_to_number(data.titleIdx, row[col++]);
str_to_number(data.needTime, row[col++]);
for (uint8_t i = 0; i < TITLE_MAX_AFF_NUM; ++i)
{
uint8_t affID = 0; uint16_t affValue = 0;
str_to_number(affID, row[col++]);
str_to_number(affValue, row[col++]);
if (affID == 0 || affValue == 0)
{
break;
}
data.titleAffMap.insert(std::make_pair(affID, affValue));
}
m_TitleVec.push_back(data);
}
}
void CPlayTimeTitle::SendToClient(LPCHARACTER ch)
{
if (!ch || !ch->GetDesc())
{
return;
}
const auto rank = ch->GetTimeTitle();
const uint8_t idx = rank >= m_TitleVec.size() ? rank : rank + 1;
auto info = m_TitleVec.begin();
for (; info != m_TitleVec.end(); ++info)
{
if (info->titleIdx == idx)
{
break;
}
}
if (info != m_TitleVec.end())
{
const auto needTime = info->needTime;
const auto point = needTime > ch->GetRealPoint(POINT_PLAYTIME) ? needTime - ch->GetRealPoint(POINT_PLAYTIME) : 0;
std::string szAffInfo;
for (const auto& affPair : info->titleAffMap)
{
szAffInfo += "|" + std::to_string(affPair.first) + "," + std::to_string(affPair.second);
}
ch->ChatPacket(CHAT_TYPE_COMMAND, "UpdatePTime %u %u %u %s",
rank >= m_TitleVec.size() ? idx : idx - 1,
idx,
point,
szAffInfo.c_str()
);
}
}
void CPlayTimeTitle::UpdateTitle(LPCHARACTER ch)
{
if (!ch || !ch->GetDesc())
{
return;
}
const size_t nextIDX = ch->GetTimeTitle();
if (nextIDX >= m_TitleVec.size())
{
return;
}
const auto& info = m_TitleVec.at(nextIDX);
if (ch->GetRealPoint(POINT_PLAYTIME) < info.needTime)
{
return;
}
ch->RemoveAffect(PTIME_AFF);
const auto& affMap = info.titleAffMap;
for (const auto& affPair : affMap)
{
ch->AddAffect(PTIME_AFF, aApplyInfo[affPair.first].bPointType, affPair.second, AFF_NONE, INFINITE_AFFECT_DURATION, 0, false);
}
ch->SetTimeTitle(ch->GetTimeTitle() + 1);
ch->UpdatePacket();
SendToClient(ch);
}
#endif
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 9
- Görüntüleme
- 1K
- Cevaplar
- 8
- Görüntüleme
- 555
- Cevaplar
- 3
- Görüntüleme
- 319
- Cevaplar
- 0
- Görüntüleme
- 66
