-
Announcements
-
Pravidlo pro postování v TTT
Do sekce Tipy, triky, tutoriály nepatří žádné dotazy. Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse. -
Seznam návodů a důležitých témat v této sekci
Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou. Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku. Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid Chyby a jejich řešení při přihlašování k serveru - Autor Cybe Zálohování uživatelských dat Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik Kompilování - tvoření vlastních release (revizí) Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM. Díky a přeji hezký den na WoWResource Replik -
Příspěvky tam, kde nemají co dělat
Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem. -
Používání spoilerů
Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru. Funkci vyvoláte příkazem [spoiler] text [/spoiler] Ukázka:
-
-
Content count
2523 -
Joined
-
Last visited
-
Days Won
19
Posts posted by bLuma
-
-
Obsfukace skriptů je sice fajn, ale nikdy nechrání dokonale. Musím si rýpnout, mluvíš tu o curl a přitom to rozšíření vůbec nepoužiješ. Voláš tam sice funkci, kterou někdo pojmenoval curl_request_async, ale ta využívá standardních možností funkcí fsockopen a fwrite.
Na výpočet online hráčů by ti stačil jediný select se seskupením.
-
mana
in TrinityCore
kdyz si vezmutreba dam priklad, item Refreshing Spring Water, kdyz se na něj podíváš, tak ti má přidávat manu, což u mě nedělá a já nevím proč
Must remain seated while drinking.
Aby to mělo účinek musíš během pití zůstat sedět (ve hře, ne na židli u počítače).
- 3
-
UseProcessors říká windowsu, na které procesory se proces může pověsit. To tě nejspíše nijak nevytrhne (v základu mangos/tc využívá jen jedno vlákno na veškeré updaty, pouze obsluha síťových rozhraní jde asynchronně), ale tvé pochopení té hodnoty je chybné. Hodnota je totiž bitová maska jednotlivých jader/procesorů. Aby jsi to povolil pro všechna jádra měl by jsi tam mít hodnotu 255.
-
Nezkoušel jsem to, ale mám dojem, že string konstruktor nemá definovaný jako explicit a ta konverze by mohla proběhnout implicitně. Schválně to zkus jenom jako "return buf;". Jinak samozřejmě to bylo myšleno, aby to vracelo std::string.
Cčkové řetězce jsou jen pole znaků, ovšem pro poznání konce tam musí být znak \0. Proto je nutné si alokovat pole o jeden prvek delší, aby jsi tam měl místo na nulu.
Ad dvě tečky - je to nesmysl. V češtině existuje pouze jedna tečka a poté trojtečka (výpustka, elipsa).
- 1
-
std::string GetTestMessage() { char hexVal_R[3] = "00"; sprintf(hexVal_R, "%.2X", color[color_R]); char hexVal_G[3] = "00"; sprintf(hexVal_G, "%.2X", color[color_G]); char hexVal_B[3] = "00"; sprintf(hexVal_B, "%.2X", color[color_B]); std::ostringstream os; os << "|cff" << hexVal_R << hexVal_G << hexVal_B << "WORLD OF COLORS: #" << hexVal_R << hexVal_G << hexVal_B << " TEST MESSAGE.."; return os.str(); }
Stačí 1x sprintf, aby jsi složil celý RGB str. A navíc dokonce jeden sprintf zvládne složit komplet celý rětězec
char buf[51]; sprintf(buf, "|cff%.2X%.2X%.2XWORLD OF COLORS: #%.2X%.2X%.2X TEST MESSAGE...", color[color_R], color[color_G], color[color_B], color[color_R], color[color_G], color[color_B]); return buf;
- 1
-
Ok, ale jak z ostreamu vymáčknu string?
Ostream jsem zmiňoval, protože se jedná o předka těchto tříd. Z ostringstreamu dostaneš string stejným způsobem - metodou str() - http://www.cplusplus.com/reference/iostream/ostringstream/'>http://www.cplusplus.com/reference/iostream/ostringstream/
Celá ta hierarchie tříd streamů je znázorněna na http://www.cplusplus.com/reference/iostream/
- 1
-
To si domysli V hlavě kompilátor C/C++ vážně nevedu.Od kdy se ve třídě definujou hodnoty proměných mimo konstruktor?
Stringstream disponuje funkcemi z istream i ostream. Jediné co však využiješ je ostream část (proto ostringstream), takže alokuješ nějakou pamět navíc a provádíš určité inicilizace navíc.mě stačí stringstream..const char* GetTestMessage()
Tak přesně tohle jsi dělat neměl. Protože ti to alokuje string na stacku, ze kterého si přečteš adresu ukazatele, vrátíš ji z funkce, string umře a zbylý odpad na dané adrese se pokusíš vložit do gossipu. tady jsi měl nechat vracet string. Jediný důvod proč ti to generuje bordel, je protože jsi provedl tuhle "optimalizaci" navíc, v mých úpravách byl string na tomhle místě ponechán záměrně.
A navíc ten bordel by jsi byl schopen dohledat, kdyby jsi použil debugging tak by jsi našel místo, kde se vrací nesmysl.
Myslim si že to vůbec nehoří..Tu metodu voláš 6x v ní provedeš 52x konstrukci stringu. A to pokaždém vybrání volby v menu. Trochu moc zbytečné práce.
- 1
-
Pořád je co kritizovat Viz komentáře.
/******************************************************* * File:'world_of_colors.cpp' * (c)2011 - Wolf Officious ([email protected]) *******************************************************/ /* ScriptData Name: color_palette %Complete: 100 Comment: Color palette test in gossip menu testing.. version 0.2 Category: cusomscripts EndScriptData */ /* INSERT INTO `creature_template` (`entry`, `difficulty_entry_1`, `difficulty_entry_2`, `difficulty_entry_3`, `KillCredit1`, `KillCredit2`, `modelid1`, `modelid2`, `modelid3`, `modelid4`, `name`, `subname`, `IconName`, `gossip_menu_id`, `minlevel`, `maxlevel`, `exp`, `faction_A`, `faction_H`, `npcflag`, `speed_walk`, `speed_run`, `scale`, `rank`, `mindmg`, `maxdmg`, `dmgschool`, `attackpower`, `dmg_multiplier`, `baseattacktime`, `rangeattacktime`, `unit_class`, `unit_flags`, `dynamicflags`, `family`, `trainer_type`, `trainer_spell`, `trainer_class`, `trainer_race`, `minrangedmg`, `maxrangedmg`, `rangedattackpower`, `type`, `type_flags`, `lootid`, `pickpocketloot`, `skinloot`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `spell1`, `spell2`, `spell3`, `spell4`, `spell5`, `spell6`, `spell7`, `spell8`, `PetSpellDataId`, `VehicleId`, `mingold`, `maxgold`, `AIName`, `MovementType`, `InhabitType`, `Health_mod`, `Mana_mod`, `Armor_mod`, `RacialLeader`, `questItem1`, `questItem2`, `questItem3`, `questItem4`, `questItem5`, `questItem6`, `movementId`, `RegenHealth`, `equipment_id`, `mechanic_immune_mask`, `flags_extra`, `ScriptName`, `WDBVerified`) VALUES('700015','0','0','0','0','0','736','0','0','0','WORLD OF COLORS','(c)Wolf Ofiicious','','0','80','80','1','35','35','1','1','1.14286','2','0','5000','5000','0','35000','10','1','0','1','512','0','0','0','0','0','0','10000','10000','68','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','','0','3','20','20','20','0','0','0','0','0','0','0','0','255','0','0','0','npc_world_of_colors','0'); */ #include "ScriptPCH.h" // GOSSIP ACTIONS #define GOSSIP_WOC_ROOT_R_PLUS GOSSIP_ACTION_INFO_DEF + 1 #define GOSSIP_WOC_ROOT_R_MINUS GOSSIP_ACTION_INFO_DEF + 2 #define GOSSIP_WOC_ROOT_G_PLUS GOSSIP_ACTION_INFO_DEF + 3 #define GOSSIP_WOC_ROOT_G_MINUS GOSSIP_ACTION_INFO_DEF + 4 #define GOSSIP_WOC_ROOT_B_PLUS GOSSIP_ACTION_INFO_DEF + 5 #define GOSSIP_WOC_ROOT_B_MINUS GOSSIP_ACTION_INFO_DEF + 6 #define GOSSIP_TEST_CHAT GOSSIP_ACTION_INFO_DEF + 7 #define GOSSIP_TEST_NOTICE GOSSIP_ACTION_INFO_DEF + 8 #define STEP_COLOR_MAX 52 // COLOR GLOBALS - globální proměnné? fuj //uint8 colorR = 0; //uint8 colorG = 0; //uint8 colorB = 0; class npc_world_of_colors : public CreatureScript { private: // pole RGB uint8 color[3] = {0, 0, 0} ; // GAMEMASTER CHECKER // je dobré si držet určitou konvenci, když už máš Get, Set // je pro bool příhodné mít Is // ValidGamemaster vrací true při chybě? // kdyžtak IsNotValidGamemaster() inline bool ValidGamemaster(Player *player) { if(player->GetSession()->GetSecurity() < SEC_GAMEMASTER) { player->GetSession()->SendNotification("You aren't GameMaster!"); return true; } return false; } // Get test message content std::string GetTestMessage() { // ostringstream stačí std::stringstream ss; ss << "|cff" // po změně GetStringStep (níže) není nutné volat c_str() << GetStringStep(colorR).c_str() << GetStringStep(colorG).c_str() << GetStringStep(colorB).c_str() << " WORLD OF COLORS: #" << GetStringStep(colorR).c_str() << GetStringStep(colorG).c_str() << GetStringStep(colorB).c_str() << " TEST MESSAGE.."; return ss.str(); } // Get string value of color // string je zbytečné plýtvání pamětí a časem procesoru pro neustále inicializace // lépe vracet const char* std::string GetStringStep(uint8 step) { // předělat na "static const char* hexSteps[]" // static zajistí jedinou inicilizaci a setrvání v paměti // bez stringu je ta incializace navíc mnohem rychlejší std::string hexSteps[sTEP_COLOR_MAX] = {"00","05","0A","0F","14","19","1E","23","28","2D", "32","37","3C","41","46","4B","50","55","5A","5F", "64","69","6E","73","78","7D","82","87","8C","91", "96","9B","A0","A5","AA","AF","B4","B9","BE","C3", "C8","CD","D2","D7","DC","E1","E6","EB","F0","F5", "FA","FF"}; // a nakonci vrátíš jen ukazatel, nedochází ke kopírování objektu return hexSteps[step]; } public: npc_world_of_colors() : CreatureScript("npc_world_of_colors") { } bool OnGossipHello(Player *player, Creature *creature) { if(ValidGamemaster(player)) return false; player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM( 0, GetTestMessage().c_str(), GOSSIP_SENDER_MAIN, NULL); player->ADD_GOSSIP_ITEM(10, "|cffff0000R <+>", GOSSIP_SENDER_MAIN, GOSSIP_WOC_ROOT_R_PLUS); player->ADD_GOSSIP_ITEM(10, "|cffff0000R <->", GOSSIP_SENDER_MAIN, GOSSIP_WOC_ROOT_R_MINUS); player->ADD_GOSSIP_ITEM(10, "|cff00ee00G <+>", GOSSIP_SENDER_MAIN, GOSSIP_WOC_ROOT_G_PLUS); player->ADD_GOSSIP_ITEM(10, "|cff00ee00G <->", GOSSIP_SENDER_MAIN, GOSSIP_WOC_ROOT_G_MINUS); player->ADD_GOSSIP_ITEM(10, "|cff0000ffB <+>", GOSSIP_SENDER_MAIN, GOSSIP_WOC_ROOT_B_PLUS); player->ADD_GOSSIP_ITEM(10, "|cff0000ffB <->", GOSSIP_SENDER_MAIN, GOSSIP_WOC_ROOT_B_MINUS); player->ADD_GOSSIP_ITEM( 5, "TEST - CHAT", GOSSIP_SENDER_MAIN, GOSSIP_TEST_CHAT); player->ADD_GOSSIP_ITEM( 5, "TEST - NOTICE", GOSSIP_SENDER_MAIN, GOSSIP_TEST_NOTICE); player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID()); return true; } bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action) { if(ValidGamemaster(player) || sender != GOSSIP_SENDER_MAIN) { player->CLOSE_GOSSIP_MENU(); return true; } player->PlayerTalkClass->ClearMenus(); // lenost nadevše #define INC_COLOR(c) if (color[c] < (STEP_COLOR_MAX - 1)) ++color[c]; break; #define DEC_COLOR(c) if (color[c]) --color[c]; break; // lépe - inline funkce + enum pro indexy switch(action) { case GOSSIP_WOC_ROOT_R_PLUS: INC_COLOR(0); // středník je kosmetická záležitost case GOSSIP_WOC_ROOT_R_MINUS: DEC_COLOR(0); case GOSSIP_WOC_ROOT_G_PLUS: INC_COLOR(1); case GOSSIP_WOC_ROOT_G_MINUS: DEC_COLOR(1); case GOSSIP_WOC_ROOT_B_PLUS: INC_COLOR(2); case GOSSIP_WOC_ROOT_B_MINUS: DEC_COLOR(2); case GOSSIP_TEST_CHAT: sWorld->SendServerMessage(SERVER_MSG_STRING, GetTestMessage().c_str(), player); break; case GOSSIP_TEST_NOTICE: player->GetSession()->SendNotification(GetTestMessage().c_str()); break; default: break; } OnGossipHello(player, creature); return true; } }; void AddSC_npc_world_of_colors() { new npc_world_of_colors(); }
- 3
-
define(MYSQL_HOST," "); - pomocí define bych rozhodně přístup do mysql nedefinoval, základem bezpečnosti je smazat minimálně heslo hned po připojení do db a to takhle rozhodně nedokážeš.
"html_entity_decode(htmlentities($login))" je blbost, akorát plýtváš výkonem na převedení na entity a zpět.
s těma 3x query, máš pravdu by to stačilo tak jak si napsal ty, ale je to takové pojištění pro špatný spojení DBTakže vlastně 3x zvyšuješ šanci, že se to rozpadne. Protože místo jednoho selectu pošleš hned tři, za kterými navíc z nepochopitelných důvodů vnucuješ php cyklus while a děláš tím určitou režii navíc.
session_write_close() je rovněž nepotřebné, děje se to automaticky při ukončení skriptu.
mysql_fetch_array, mysql_fetch_assoc pravděpodobně vůbec netušíš rozdíl mezi těmi funkcemi a svévolně je mixuješ. Rozdíl je v tom, jestli se vrací pole indexované (row), asociativní (assoc) nebo obojí (array).
- 2
-
Způsobů je hodně - http://en.wikipedia.org/wiki/Inter-process_communication. Záleží, jaké máš požadavky (komunikace pouze v rámci jednoho OS, přes síť, co nejrychlejší, ...)? Obecně přes síť sokety, v rámci jednoho pc se dají použít i roury nebo různé formy sdílení paměti.
-
Použití mapy je v tvém případě zbytečné, její funkce vůbec nevyužíváš a výkonově to degraduješ na klasické iterování přes vektor. Tím, že jsi entry neuložil jako klíč v mTeleportLoctData nemáš možnost přistoupit k tomu přímo. Obdobně v gossip menu by použitím vhodné složitější struktury bylo možné indexovat podle ID menu a pod tím mít vektor, který jenom vypíšeš.
GetTeleportMenuData a GetTeleportLoctData by bylo lepší také označit inline.
Automatické načtení dat by bylo vhodnější detekovat a řešit přímo ve třídě DynamicTeleportMgr, podle těch bool příznaků, které tam už máš. Případné dlouhé načtení z db stejně ovlivní všechny hráče a notifikace by tak měla směřovat do broadcastu, aby měla smysl.
Pro action_type by bylo vhodnější použít vlastní enum a v načítání z DB kontrolovat správnost vstupů.
"#pragma once #ifndef _DYNTEL_H" - totožná funkce pomocí dvou různých způsobů. Vzhledem k lepší kompatibilitě se obvykle používá ifndef, define. Pragma once můžeš klidně smazat.
- 2
-
Funguje ti příkaz startx na spuštění GUI? Pokud ne tak co píše?
Ale i tak nepočítej s tím, že by jsi tady dostal v případě větších problémů odpověď. Na linux se specializují servery jako je abclinuxu.cz aj.
-
struct MANGOS_DLL_DECL ScriptedAI: public CreatureAI
Vytváříš strukturu ScriptedAI, kterou dědíš z CreatureAI. Ovšem v SD2 již ScriptedAI existuje. Ta definice by měla být:
struct MANGOS_DLL_DECL boss_critter : public ScriptedAI
Což odpovídá tomu, jak máš napsaný konstruktor.
- 1
-
struct MANGOS_DLL_DECL scriptedAI: public CreatureAI,
{
- 1
-
Ak by si chcel aby si to hráči nemuseli kupovať no tak by si musel zmazať funkciu commandu ale potom by si si musel doprogramovať napríklad keď stlačia E tak sa im to zapne.
Takže myslím že toto stačí zmazať a potom ešte niečo ku tomu a stačí si doprogramovať:
Zbytečně složitý, správná odpověď už tu zazněla. Stačí si nastavit cenu padáku na nulu, protože na reset hudu máš funkci:
public newSpawn(id) { if(para_ent[id] > 0) { remove_entity(para_ent[id]) set_user_gravity(id, 1.0) para_ent[id] = 0 } if (!gCStrike || access(id,PARACHUTE_LEVEL) || get_pcvar_num(pCost) <= 0) { // <-- poslední podmínka has_parachute[id] = true //set_view(id, CAMERA_3RDPERSON) } }
A padák ti to nastaví automaticky při nulové ceně.
-
Já potřebuju,aby 1 Mysql Querry vzalo z DB Characters a zároveň aby to vzalo i z realmd..
To je čistě problém databázového serveru. Musíš si nastavit, aby ten uživatel (kterým se v PHP připojuješ do DB) měl práva číst z obou těch databází, resp. konkrétních tabulek.
-
Neposlal jsi kód, kterým jsi se to pokusil spustit, ani chybu, kterou to vyvolalo.
V principu by mělo stačit: sGameEventMgr.StartEvent(12345, true);
-
1) SELECT TOP10 - blbost
2) FROM arena_team,arena_team_stats - bez omezujících podmínek provedeš akorát kartézský součin a výsledek ti je k ničemu
3) $riadok = mysql_fetch_row($vysledok); - absence cyklu vypíše pouze první záznam
Když už sem chceš něčím přispět opravdu si to nejdříve ozkoušej.
-
napiste mi jeden jedinej duvod proc tady mazete uzitecne posty, a topic jak by to nazval slusne ´´zbytocnosti´´ tady nechavate?Téma bylo smazáno ze zcela konkrétního důvodu, který ti byl oznámen na PM. Navíc osobně podobné téma stejně nepovažuji za přínosné. Diskutovat nad teorií DoS útoků je sice hezké, ale nepřináší to žádné hmatatelné postupy pro uživatele windows/linuxu na čem běžně wow server běží. 99% místních provozovatelů nemá vlastní firewall nebo Cisco router s IOSem, aby pro něj podobné věci byly přínosem.
Celý obsah příspěvku byl zkopírován ze serveru živě.cz, který nedovoluje šíření jejich příspěvků. V takovém případě je vhodné pouze uvést odkaz nebo citaci, ale ne provádět kopírování, které je zapovězeno zákony i pravidly fóra:
Zákaz vydávání cizích výtvorů za svoje vlastní. Při kopírování cizích textů je nutné vždy uvést URL odkud bylo čerpáno a jméno autora. U textů, u nichž autor nedovoluje kopírování, je jejich šíření zakázáno.Můžete tu klidně polemizovat, že se tu kopíruje z mnoha jiných fór. Ano je to pravda, ale vesměs jde o veřejné materiály nebo samozřejmě i o autorské texty, ovšem takové návody jsou množeny velmi hromadně a myšlenka, že by to někdo takový chtěl hnát k soudu není příliš reálná. Což v porovnání se solidním periodikem je podstatný rozdíl. A každý rozumný člověk uvidí rozdíl mezi zkopírováním článku z časopisu nebo online periodika a přeposláním příspěvku z jiného fóra (i zde je povinnost uvádět autora a zdroj).
Byl tu zmíněn nedávný topic Wolfa ohledně toho, jak se ptát. Zde je zachován plný copyright a licence originálního dokumentu dovoluje za těchto podmínek šíření překladů. (Ne to jsem nehledal při čtení tohoto tématu, ale už když se toto téma objevilo.)
Sekce offtopic je na věci, které se vymykají zaměření fóra, ale to neznamená, že ta sekce snese vše. Naprosté blbosti se prostě mažou a mezi to témata typu "plačte - odcházím" prostě patří. Když někdo chce odejít může tak učinit, rozloučit se osobně přes PM, ale opravdu zde není nutné zakládat téma, kde se opět budete hádat nad důvody, proč tomu tak je.
A musím říci, že uživatel STONERSVK mě velice zklamal. Toto téma není ničím jiným než dalším flamewarem, kvůli někomu, kdo nemůže nahamtat reputaci na cizím díle. Reagovat mohl odpovědí na PM, místo toho zvolil tuto formu agresivní debaty.
ad latnar: warny jsou označením prohřešku uživatele, pokud si myslíš, že jsi se polepšil a nechceš mít tuto výstrahu na svém kontě je čistě na tobě, aby jsi se angažoval v jeho snížení. Nemůžeš chtít, aby moderátoři procházeli všechny pravidla porušující uživatele a čistili jim warny.
Co se týče moderátorů a přístupu k tématům, které by se daly považovat za odpad, je čistě individuální. Já osobně témata, která jsou špatně umístěna v tipy&triky, mají titulek "pls pomoc" apod. rovnou mažu. Ohledně kvalit fóra nelze očekávat, že když se zdvojnásobí počet uživatelů a průměrný věk poklesne na 14 let, že při stejném počtu moderátorů bude toto téma vynikat v čistotě a dokonalosti. V poslední době tu nevidím mnoho užitečných příspěvků ani od starších a zkušenějších členů fóra. Fórum je, bylo a bude tvořeno jeho uživateli, pokud každý z nich se bude chovat jako hulvát nemůžete čekat zázraky.
- 7
- 1
-
Kolik máš volného místa na disku C?
-
Ach jo, zase...
Připojovat se na svůj počítač přes veřejnou IP adresu je kravina, to co od těch low-end zařízeních chcete (aby uměli poslat data do smyčky a pak zpátky) to většinou neumějí. Pokud chceš hrát sám nech si tam všude 127.0.0.1, pokud chceš mít i kamarády, vytvoř si v db realm pro ně (veřejná ip) a tebe (127.0.0.1). Nebo si zaregistruj doménu (i .tk) nastav si tam tuto doménu a na svém PC si přidej do souboru HOSTS "přesměrování" této domény na 127.0.0.1.
-
No je zcela evidentní, že jsi si ten PNG export nezapnul, protože jsem to zkoušel a s ním to opravdu GIFy nedělá.
-
-
Tohle v PHP neuděláš, příslušnost guildy se určuje až u charakteru a to nemůžeš nijak v PHP odchytit. Je nutné upravit zdroják emu, aby se ta guilda přiřadila při vytvoření charakteru a upravit handler na leave z guildy, aby ji nešlo opustit.
- 1
Online grafy pro servery - beta
in Tools
Posted · Report reply
fsockopen není funkce z rozšíření, je dostupná vždy, pokud není zablokována. Ovšem pokud tímhle způsobem voláš i tento skript u klientů bylo by vhodné nastavit ignore_user_abort(true), jinak se ti skript ukončí jakmile to spojení uzavřeš. Což vzhledem k rychlosti SQL dotazů může způsobit, že ten skript přerušíš v půlce činnosti. A opačně stejný problém by mohl mít i server.