Kilépési idő

Indította idok2, 2019-10-13, 03:15:27

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
A különbség a sikertelen és a sikeres ember között nem feltétlenül a tehetség, hanem a kitartás.
https://youtu.be/jGQJqcyHjY0

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
A különbség a sikertelen és a sikeres ember között nem feltétlenül a tehetség, hanem a kitartás.
https://youtu.be/jGQJqcyHjY0

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;
}