Sziasztok!
Kerestem de nem igazán találtam meg, hogy a kilépésnél, kari cserénél a 3 vagy 10 másodperces visszaszámlálót hol lehet csökkenteni, átírni? Köszi előre is!
cmd_general.cpp
az ujra éledési időt azt itt lehet Szerintem azokat is nézd meg.
Szia!
Bár ez nem az, de hátha ez is jó lesz.
Gyors kilépés gomb beüzemelése.
https://just4metin.ro/ghiduri-tutoriale/iesire-rapida-optiune-t56593.html (https://just4metin.ro/ghiduri-tutoriale/iesire-rapida-optiune-t56593.html)
cmd_general.cpp + még egy kis józan ész. :P
Igazából neked sem tartott volna sokáig locale_string alapján visszakövetni, csupán pár pillanat.
EVENTFUNC(shutdown_event)
{
shutdown_event_data* info = dynamic_cast<shutdown_event_data*>(event->info);
if (info == NULL)
{
return 0;
}
int * pSec = & (info->seconds);
if (*pSec < 0)
{
if (--*pSec == -10)
{
const DESC_MANAGER::DESC_SET & c_set_desc = DESC_MANAGER::instance().GetClientSet();
std::for_each(c_set_desc.begin(), c_set_desc.end(), DisconnectFunc());
return passes_per_sec;
}
else if (*pSec < -10)
{
return 0;
}
return passes_per_sec;
}
else if (*pSec == 0)
{
const DESC_MANAGER::DESC_SET & c_set_desc = DESC_MANAGER::instance().GetClientSet();
std::for_each(c_set_desc.begin(), c_set_desc.end(), SendDisconnectFunc());
g_bNoMoreClient = true;
--*pSec;
return passes_per_sec;
}
else
{
char buf[64];
snprintf(buf, sizeof(buf), LC_TEXT("ĽË´ŮżîŔĚ %dĂĘ ł˛ľŇ˝Ŕ´Ď´Ů."), *pSec);
SendNotice(buf);
--*pSec;
return passes_per_sec;
}
}
Átírtam a Shutdown(10) et 1 re, de nem változott semmi.
A gyors kilépés gombot beraktam köszi :D , csak azért lenne szükségem a számlálóra, mert pl karicserénél, vagy account váltásnál a kilépésnél megmaradt a 3 illetve 10 sec.
Ne írd át, hanem kommentezd ki. :D
Kikommentezve sem működik és átírva sem működik :( Akkor is visszaszámol 3tól illetve combat után 10től
Ha tudsz várni estig, akkor megpróbálok segíteni benne, hogy 0 másodperc legyen a karicsere vagy kilépés.
Idézetet írta: Chookez™ Dátum 2019-10-13, 14:26:58
cmd_general.cpp + még egy kis józan ész. :P
Igazából neked sem tartott volna sokáig locale_string alapján visszakövetni, csupán pár pillanat.
EVENTFUNC(shutdown_event)
{
shutdown_event_data* info = dynamic_cast<shutdown_event_data*>(event->info);
if (info == NULL)
{
return 0;
}
int * pSec = & (info->seconds);
if (*pSec < 0)
{
if (--*pSec == -10)
{
const DESC_MANAGER::DESC_SET & c_set_desc = DESC_MANAGER::instance().GetClientSet();
std::for_each(c_set_desc.begin(), c_set_desc.end(), DisconnectFunc());
return passes_per_sec;
}
else if (*pSec < -10)
{
return 0;
}
return passes_per_sec;
}
else if (*pSec == 0)
{
const DESC_MANAGER::DESC_SET & c_set_desc = DESC_MANAGER::instance().GetClientSet();
std::for_each(c_set_desc.begin(), c_set_desc.end(), SendDisconnectFunc());
g_bNoMoreClient = true;
--*pSec;
return passes_per_sec;
}
else
{
char buf[64];
snprintf(buf, sizeof(buf), LC_TEXT("ĽË´ŮżîŔĚ %dĂĘ ł˛ľŇ˝Ŕ´Ď´Ů."), *pSec);
SendNotice(buf);
--*pSec;
return passes_per_sec;
}
}
Nem vitatkozni akarok de józan paraszt ésszel rá nézve ez nem az :D Ez maga a shutdown parancsnak a megfelelője.
Amit te keressel az is a cmd_generalban kell keresni.
Keres erre rá:
ACMD(do_cmd)
Ezen belül pedig keres ezt a részt:
case SCMD_PHASE_SELECT:
{
TimedEventInfo* info = AllocEventInfo<TimedEventInfo>();
{
if (ch->IsPosition(POS_FIGHTING))
info->left_second = 10;
else
info->left_second = 3;
}
info->ch = ch;
info->subcmd = subcmd;
strlcpy(info->szReason, argument, sizeof(info->szReason));
ch->m_pkTimedEvent = event_create(timed_event, info, 1);
}
break;
És ebből neked ez a rész az érdekess:
{
if (ch->IsPosition(POS_FIGHTING))
info->left_second = 10;
else
info->left_second = 3;
}