Jump to content
  • Announcements

    • Xmat

      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.
    • Replik

      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
    • Aristo

      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.
    • Aristo

      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:  
Sign in to follow this  
Wolf Officious

[Patch] RP LevelUp by PlayedTime (RP-LUPT) 4TC

Recommended Posts

Může to být snad lepší? :D:)

 

Suprová práce dík +1

Ještě na tom makám, vylepšuju... Rád bych udělal ještě výpis textů z DB do chatu hráče při dosažení levelu po odehrání toho určitého času. Taky chci vychytat prevenci zneužívání při /AFK.. :D

  • Upvote 2

Share this post


Link to post
Share on other sites

Ještě na tom makám, vylepšuju... Rád bych udělal ještě výpis textů z DB do chatu hráče při dosažení levelu po odehrání toho určitého času. Taky chci vychytat prevenci zneužívání při /AFK.. :D

 

To jsou přeci jen drobnosti skvělá práce :), ale když už to děláš. NightElf by měl být nesmrtelný.

Share this post


Link to post
Share on other sites

To jsou přeci jen drobnosti skvělá práce :), ale když už to děláš. NightElf by měl být nesmrtelný.

Nesmrtelný? Jakto? :D

Jo, ještě malá poznámka. Leveling se zastaví na hodnotě, kterou máte nastavenou v konfigu jako maximální možnou (MaxPlayerLevel = 80).. ;) Funguje jenom podkud je hráč online. :)

  • Upvote 2

Share this post


Link to post
Share on other sites

Je to vzkutku hodně zajímavý. Wolfe ty by jsi mohl tady vést odělení pro RP :D

 

Víceméně by to pak šlo udělat nějaký herní čas (1 rok) vždy od datumu registrace a vlastně jakoby herní rok = 1 lvl up.

 

Možná by to bylo taky zajímavé.

 

Pak možná jako bonus udělat i narozeniny, že když dojde na herní narozeniny tak by to hráče portlo na určité místo kde by mohl se svými přáteli narozeniny oslavit.

 

Ale je to jen nápad a možná spíš i nemožný :-)

  • Upvote 1

Share this post


Link to post
Share on other sites

Elfové vždy byli nesmrtelní. :) Jako že je nezabilo stáří.

 

Jinak kompilacemi hází 

 

2>ObjectAccessor.cpp
2>.\Globals\ObjectAccessor.cpp(203) : error C3867: 'Player::SaveToDB': function call missing argument list; use '&Player::SaveToDB' to create a pointer to member

Revka 10353, poslední stable revize. Doufám že je to u mě :)

 

EDIT: Už to mám nebyli tam závorky za SaveToDB; (SaveToDB(); :)

Edited by hejsek

Share this post


Link to post
Share on other sites

Pokud chces, aby hraci umirali starim, je potreba tam dodelat jeste par veci :D

 

Bylo by to zajímavý ale jen pro určitej class

Share this post


Link to post
Share on other sites

Elfové vždy byli nesmrtelní. :) Jako že je nezabilo stáří.

 

Jinak kompilacemi hází 

 

2>ObjectAccessor.cpp
2>.\Globals\ObjectAccessor.cpp(203) : error C3867: 'Player::SaveToDB': function call missing argument list; use '&Player::SaveToDB' to create a pointer to member

Revka 10353, poslední stable revize. DOufám že je to u mě :)

Opraveno, chyběli závorky u SaveToDB().. Omlouvám se, je to tím, že to neustále upravuju a v době kdy jsem zakládal topic, měl jsem to rozdělaný. :) Moje chyba. Ještě jednou sorry. :D

 

EDIT: pozdě jsem to napsal, ale přece.. no nic..

 

A pro ostatní: Je to zatím jenom v plenkách. Je to Beta LUPT patch prostě. :D A díky za vaší přízeň a reputaci. Vážím si toho. :) Může z toho vzniknout zajímavá věc.

Edited by Wolf Officious
  • Upvote 2

Share this post


Link to post
Share on other sites

Opraveno, chyběli závorky u SaveToDB().. Omlouvám se, je to tím, že to neustále upravuju a v době kdy jsem zakládal topic, měl jsem to rozdělaný. :) Moje chyba. Ještě jednou sorry. :D

 

EDIT: pozdě jsem to napsal, ale přece.. no nic..

 

A pro ostatní: Je to zatím jenom v plenkách. Je to Beta LUPT patch prostě. :D A díky za vaší přízeň a reputaci. Vážím si toho. :) Může z toho vzniknout zajímavá věc.

Takže v tom hodláš pokračovat? :P Jakože furt to vylepšovat a tak.

 

 

 

Share this post


Link to post
Share on other sites

No a pak překope celej svět až udělá jeden z nejlepších WoW RP serverů :-D

Share this post


Link to post
Share on other sites

Takže v tom hodláš pokračovat? :P Jakože furt to vylepšovat a tak.

No a proč ne? :D Je to hustý, jsem rád že se vám to líbí a mám chuť v tom pokračovat. ;)

 

No a pak překope celej svět až udělá jeden z nejlepších WoW RP serverů :-D

No to nevím, ale možná něco časem vymyslím. Kdo ví. :D

  • Upvote 2

Share this post


Link to post
Share on other sites

Jo, možná by se to tam dalo doplnit. Vlastně se to všechno točí kolem tý nový funkce ObjectAccessor::PlayerLevelByTime() v souboru ObjectAccessor.cpp :D

 

:beta:(Verze 0.2a)

 

void ObjectAccessor::PlayerLevelByTime() // WLK RP LUPT system v0.2a
{
   ACE_GUARD(LockType, g, *HashMapHolder<Player>::GetLock());
   HashMapHolder<Player>::MapType& m = HashMapHolder<Player>::GetContainer();
   for (HashMapHolder<Player>::MapType::iterator iter = m.begin(); iter != m.end(); ++iter)
   {
    // If player is online & has played time
       if (iter->second->IsInWorld() && iter->second->GetLevelPlayedTime() >= sWorld.getIntConfig(CONFIG_RP_LUPT_AGE_PER_LEVEL))
       {
        // If player isn't in AFK mode & isn't in combat & is alive & has lower level than max level
           if(!iter->second->isAFK() && !iter->second->isInCombat() && iter->second->isAlive() &&
               iter->second->getLevel() < sWorld.getIntConfig(CONFIG_MAX_PLAYER_LEVEL))
           {
               uint8 lvl = iter->second->getLevel() + 1;
               uint32 pHealth = iter->second->GetMaxHealth();
               uint32 pPower = iter->second->GetMaxPower(iter->second->getPowerType());

               iter->second->GiveLevel(lvl);
               iter->second->InitTalentForLevel();
               iter->second->SetUInt32Value(PLAYER_XP, 0);

               // This skipped if conf value RP_LUPT.DecreaseLevel is 0 or lower than new player level
               // (NOTE: Data isn't saved into a database. Player relogin causes reload of original data.   )
               // (      The problem maybe arised in the function Player::InitStatsForLevel from Player.cpp )
               if (sWorld.getIntConfig(CONFIG_RP_LUPT_DECREASE_LEVEL) > 0 &&
                   sWorld.getIntConfig(CONFIG_RP_LUPT_DECREASE_LEVEL) <= lvl)
               {
                   uint32 DecreasedHealth = pHealth - ((pHealth / 100) * sWorld.getIntConfig(CONFIG_RP_LUPT_HEALTH_DECREASE));
                   iter->second->SetMaxHealth(DecreasedHealth);
                   iter->second->SetHealth(DecreasedHealth);

                   uint32 DecreasedPower = pPower - ((pPower / 100) * sWorld.getIntConfig(CONFIG_RP_LUPT_POWER_DECREASE));
                   iter->second->SetMaxPower(iter->second->getPowerType(), DecreasedPower);
                   if (iter->second->getPowerType() != POWER_RUNIC_POWER || iter->second->getPowerType() != POWER_RAGE)
                       iter->second->SetPower(iter->second->getPowerType(), DecreasedPower);
               }
               iter->second->SaveToDB(); // Save player to DB - NEED FIX! The autosave system doesn't works properly 
                                         // (because using of the function causing reset timer).
           }
       }
   }
}

 

Neni to hotový, dělá to bordel.. Po relogu se stejně umíněnej init rozhodne přepočítat staty, takže funkce zatím neodvádí dobrou práci. SaveToDB(); pak utlačuje automatické ukládání hráčů, což je docela podstatná věc. Přidal jsem nějaký poznámky.. :D Dělal jsem to celou noc, už tu sedim asi 8 hodin u toho.. + jsem ještě upravoval další věci, třeba ty definice v konfigu atd.. Začíná se mi to pěkně nafukovat. :D

 

EDIT: ZBYTEČNÉ - Viz.: http://www.wowresource.eu/index.php?showtopic=20677&view=findpost&p=186102

EDIT2: spoiler..

Edited by Wolf Officious
  • Upvote 4

Share this post


Link to post
Share on other sites

skvele rep+

 

uz to vidim ako to budu mat vsetky servery

Edited by STONERSVK

Share this post


Link to post
Share on other sites

skvele rep+

 

uz to vidim ako to budu mat vsetky servery

 

Tak třeba pro blizzy a normální expící funka je to na nic :/ :)

Share this post


Link to post
Share on other sites

Tak třeba pro blizzy a normální expící funka je to na nic :/ :)

myslel som vsetky rp servery

Share this post


Link to post
Share on other sites

Takže. K tomu stárnutí. Nebyl to moc dobrej nápad. Zbytečně jsem nad tím ztratil čaš. Něuvědomil jsem si, že staty pro levely se vlastně dají upravit v databázi, žejo. :D Tabulka `player_levelstats` a `player_classlevelstats`.. Bude to daleko jednodušší, takže na stárnutí asi kašlu, ale dalo by se udělat spoustu jiných věcí. :)

 

EDIT: Udělám raději ten výpis textů z DB do chatu hráče při zvýšení levelu. To asi bude užitečnější. Nejdřív upravím na verzi 0.2b (coming soon) :)

 

BUMP! :diablo::D

 

--################

--## Verze 0.2b ##

--################

  • změna názvů definic konfigurovatelných hodnot (World.h)
  • změna položek konfiguračního souboru (World.cpp, worldserver.conf)
  • časovač prověřování PlayedTime hráčů se nyní v konfiguračním souboru nastavuje V SEKUDÁCH (World.cpp)
  • oprava kolizí se systémem automatického ukládání hráčů (Player.h, Player.cpp, ObjectAccessor.cpp)
  • výpis do logu - "RP LUPT: ACC:X GUID:X jméno:Abcdefgh dosáhl levelu X a byl uložen do DB." (Player.cpp)

Přidal jsem screen :D ..to jen tak na ukázku výpisu do logu :D

Edited by Wolf Officious
  • Upvote 1

Share this post


Link to post
Share on other sites

Dobrá práce +1 doufám, že se to rozroste do nějaké lepší podoby. Doufám, že to potom předěláš na Cata.

Edited by Apixx

Share this post


Link to post
Share on other sites

RP CaTa si neumím představit, ale.. ..tohle dodělám. Momentálně už mám připravený systém na výpis hlášek do chatu. Rozuměj - výpis zprávy danému hráči (který osáhnul levelu) do chatu z určené databáze. Už jsem naprogramoval určování názvu tabulky v konfigu.. Teď jen hledám vhodný způsob výpisů zpráv. :):rolleyes:

Dvojitý vypisování whisperu "sám sobě" je na prd.. :D:rofl:

No, podívejte se sami, jak to blbě vypadá.. :diablo:

 

565_WoWScrnShot_111410_032423.jpg

 

EDIT: Spoiler..

Edited by Wolf Officious
  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×