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:  
Xmat

Stmívání (temnější noci)

Recommended Posts

Zdravím,

v poslední době se nám hráči na serveru ozývají s prosbou: "Udělejte temnější noci. Snižte v noci viditelnost." Napadlo nás několik řešení. Vzhledem k tomu, že toto může být prospěšné pro více serverů s RP základem (noci ve WoW jsou opravdu jako "dny pod mrakem"), chtěl bych poprosit abyste se vyjádřili, popřípadě mi pomohli s jednotlivými řešeními.

 

1.) Řešení spawnem mlhy na timed eventu

Nejjednodušší, ale asi nejotravnější řešení. Je přijatelné v serverech typu Neotericu, kde se hraje třeba v jedné lokaci, ale na serveru typu Soulwell by to asi moc nešlo. Navíc, má několik výrazných nevýhod. Jednak je to poměrně složitost spawningu (nejpoužitelnějším objektem se jeví Howling Fjordská mlha, která se spawnuje zpod textury, aby ležela na zemi) a hlavně, při zvýšené koncetraci této mlhy rapidně klesá FPS.

 

2.) Řešení addonem

V tvorbě addonů se absolutně nevyznám, nevím zda mohou měnit nastavení klienta. Ideální by bylo, aby se třeba každou hodinu spustil script, který by ověřil kolik je hodin. Pokud by bylo mezi 22. a 06. hodinou, nastavila by se klientova viditelnost na naprosté minimum (nejlépe, jestli jde systémově nastavit ještě níže, než dovoluje nastavení ve WoW). V případě, že by bylo mezi 06. a 22. hodinou, viditelnost by se vrátila na klientův default (tzn. to co si uživatel zvolí jako svou defaultní hodnotu).

 

Žádná další možnost mě nenapadá, protože absolutně nevím jestli může být nějaká "temnota" lokace řízena serverem.

 

S tím se pojí také to, že by mě docela zajímalo, odkud klient bere "ovzduší" lokací (např. Nagrand a Elwyn jsou krásně světlé, Western Plaguelands jsou naoranžovělé, v Moongladu je tak namodralo atd.). Je to přímo součást/nastavení mapy, nebo to ovlivňuje nějaký flag v dbc? Možná by se s tím dalo pracovat i skrze toto, pokud by to šlo nějak ovlivnit ze serveru (což nejspíš ale opravdu nejde).

 

Za jakoukoliv pomoc budu vděčný.

Share this post


Link to post
Share on other sites

Pro vyzkouseni muzes ve hre napsat

/run SetFarclip(0)

ale odpovida to nejmensi hodnote v nastaveni a mene nastavit nejde.Addon by to zmenit mohl.

Share this post


Link to post
Share on other sites

Pick díky. Bohužel, tohle je sakra málo... Já bych si představoval viditelnost tak na 10 metrů.

Share this post


Link to post
Share on other sites

3) Úprava Light.dbc, ale to podle mě nebudeš chtít :D, osobně s tím nemám zatím zkušenosti, ale brzo to budu dělat...takže bych se pak klidně podělil o zkušenosti, jestli bude zájem.

Share this post


Link to post
Share on other sites

Ale jo, teoreticky vzato můžeme udělat malý patchík pro lidi, kteří to budou chtít. Ti co by si to nestáhli, tak by prostě hráli, že je temněji... :) děkuji mockrát. Ale jako i tak, otázku nechávám otevřenou, kdyby někdo vymyslel něco jiného.

Share this post


Link to post
Share on other sites

tuhle jsem viděl na yt video, kde to bylo udelany upravou vykreslovane vzdalenosti (mlhou) - jedinym stisknutim se pak změnila vykreslovaná vzdálenost na maximální. Takže to celkem logicky půjde přes addon co bude podle času nastavovat vykreslovanou vzdálenost. Když budu mít chvilku čas tak na to přes víkend mrknu.

Share this post


Link to post
Share on other sites

Hkarta:

Jak nahoře napsal Pick, dá se to testnout pomocí

/run SetFarclip(0)

což mění na minimum. Ono když se na to podíváš, tak i to minimum je hrozně moc. To by chtělo ještě jít pod minimum a nějak klienta ošálit a podstrčit mu ještě nižší hodnoty.

Share this post


Link to post
Share on other sites
To by chtělo ještě jít pod minimum a nějak klienta ošálit a podstrčit mu ještě nižší hodnoty.

no jasne bud upravou light dbc nebo decompilovat clienta a skompilovat si ho znovu :D

 

 

tady je jeste info o dbc light jestli to nekomu bude k necemu:

 

Light.dbc
This is the starting file for what controls the lights, fogs, sky color, water color, and well other similar items. This information prior to 1.9 used to be stored in the .lit files but in 1.9 was moved to Light.dbc and the other Light DBC files.
Header Info

Records...................550
Fields.....................12  
Record Size................48
String Block Size...........1
Structure

Column 	Field 		Type 		Notes
1 	ID		Integer 	
2 	iRefID_Map	Integer 	
3 	x position	Float		The x position of this "light" multiplied by 36, if not on a map with terrain: x-17066.666.
4 	y position	Float		The y position of this "light" multiplied by 36, if not on a map with terrain: y-17066.666.
5 	z position	Float		The z position of this "light" multiplied by 36
6 	falloffStart 	Float		The inner radius of this "light" multiplied by 36 (if you are within the inner radius there shouldn't be any interpolation with other lights)
7 	falloffEnd 	Float		The outer radius of this "light" multiplied by 36 (if you are outside the inner radius but inside the outer radius then this light can be interpolated with other lights)
8 	Sky & Fog	Integer 	These entries are all IDs in LightParams.dbc. (and in LightIntBand.dbc, LightFloatBand.dbc?)
9 	Water Settings 	Integer		The different columns are for different settings. Water, death etc.
10 	SunsetParams 	Integer		
11 	OtherParams 	Integer		
12 	DeathParams	Integer		
13 	Unknown 	Integer		Only set for some entries in DeathknightStart, Northrend and NexusRaid. They have other values too!
14 	Unknown 	Integer		These may be for different phases.
15 	Unknown 	Integer

 

LightParams.dbc
Controls some of the settings which don't change with time for light, fog, and water.
Header Info

Records...................571
Fields......................9  
Record Size................36
String Block Size...........1
Structure

Column 	Field 					Type 		Notes
1  	ID 					Integer 	
2 	highlightSky 				Boolean 	
3 	lightSkyboxID 				Integer 	This is a ref to LightSkybox
4 	cloudTypeID 				Integer
5 	glow 					Float 		This controls how much Fog gets added to everything (!) and is used in some places to make them look extra bright
6 	waterShallowAlpha			Float 		Controls how transparent the water is for lakes & rivers.
7 	waterDeepAlpha 				Float 		
8 	oceanShallowAlpha 			Float 		Controls how transparent the water is for the ocean.
9 	oceanDeepAlpha 				Float
10	flags					Integer

 

LightIntBand.dbc
Controls the various values that are related to floats in .LIT files which was believed just to be the sky positions. There is 18 rows corresponding to every ID so take the ID*18 to get the proper start ID to look at it and the next 17 rows after it go along with it as well
The 18 rows should then correspond to the below as it was in the .lit files
Number 	Description 
0 		Global diffuse light 
1 		Global ambient light 
2 		Sky color 0 (top) 
3 		Sky color 1 (middle) 
4 		Sky color 2 (middle to horizon) 
5 		Sky color 3 (above horizon) 
6 		Sky color 4 (horizon) 
7 		Fog color / background mountains color 
8 	 	? 
9 		Sun color + sun halo color 
10 		Sun larger halo color 
11 	 	? 
12 		Cloud color 
13 	 	? 
14 	 	? 
15 		Water color [dark] 
16 		Water color [light] 
17 	 	Shadow color? (MapViewer Source)
Header Info

Records.................10278
Fields.....................34
Record Size...............136
String Block Size...........1
Structure

Column	Field 		Type 			Notes 
1 	ID 		Integer 	
2 	# of Entries 	Integer 		This is how many of the columns actually have data for this row (0 to 16) 
3-18 	Time Values 	Unsigned Integer	Time Values from 0 to 2880 where each number represents a half minute from midnight to midnight 
19-34 	Color Values 	Unsigned Integer	These are the actual values that correspond with the time value and are a BGRX color value 

Share this post


Link to post
Share on other sites

Jo... předpokládám, že tady se musí upravit klient, protože si data bere ze své databáze, server dbc s tím asi nemá nic společného, že?

Share this post


Link to post
Share on other sites

Ještě jsou 2 DBC soubory. LightFloatBand.dbc a LightSkybox.dbc (na což odkazuje LightParams.dbc, sloupec 3).

 

Ale vzhůru do oblak. Víte že existuje něco takového?

void SendLightOverride(uint32 overrideId, uint32 fadeInTime) const
{
   WorldPacket data(SMSG_OVERRIDE_LIGHT, 12);
   data << uint32(2488);       // Light.dbc entry (map default)
   data << uint32(overrideId); // Light.dbc entry (override)
   data << uint32(fadeInTime);
   SendPacketToPlayers(&data);
}

Tahle funkce je součástí Lich Kingova scriptu u TC2. Ale co to řešit tímhle packetem? Mělo by to teoreticky měnit světlo. Otázkou je jak, kde a jestli vůbec.

 

V souboru Opcodes.h je:

SMSG_OVERRIDE_LIGHT = 0x412, // uint32 defaultMapLight, uint32 overrideLight, uint32 transitionTimeMs

Edited by Wolf Officious

Share this post


Link to post
Share on other sites

I tak si myslím, že to nepůjde. "Světla" mají definovanou polohu v dbc přes souřadnice a tim to hasne.

Proto se tam uvádí "co" vyměnit "za co". (doba přechodu je celkem irelevantní, to je snad jenom pro efekt.)

Výchozí světlo se vezme (má svojí pozici), zhasne se a místo něj se tam roužne jiný (na pozici původního).

Je to ale jenom teorie. Xmat už testuje, napsali jsme příkaz:

 

// OVERRIDE LIGHT COMMAND ---->>
bool ChatHandler::HandleOverrideLightCommand (char* args)
{
   if(!m_session->GetPlayer())
       return false;

   // EXTRACT ARGS
   int32 defaultMapLight;
   int32 overrideLight;
   int32 transitionTimeMs;

   if (!ExtractOptInt32(&args, defaultMapLight, -1) || !ExtractOptInt32(&args, overrideLight, -1))
   {
       SendSysMessage("Light OVD ERROR: Command has 2 (optionaly 3) arguments.");
       return false;
   }

   if (!ExtractOptInt32(&args, transitionTimeMs, -1))
       transitionTimeMs = 1000;

   // OVERRIDE LIGHT PACKET
   WorldPacket data(SMSG_OVERRIDE_LIGHT, 12);
   data << uint32(defaultMapLight);
   data << uint32(overrideLight);
   data << uint32(transitionTimeMs);
   m_session->SendPacket(&data);

   PSendSysMessage("Light OVD: %i %i %i", defaultMapLight, overrideLight, transitionTimeMs);

   return true;
}
// <<---- OVERRIDE LIGHT COMMAND

 

Můžete si to vyzkoušet sami. (MaNGOS)

 

EDIT:

Kde brát ty IDčka? Light.dbc

sloupec 2 = ID MAPY

sloupec 1 = ID který se píše do příkazu (1. a 2. argument)

Edited by Wolf Officious

Share this post


Link to post
Share on other sites

muzu se neco zeptat? meni se predci svetlo i s ze zmnou pocasi? <_<

 

kdyz si nastavite velky dezd tak je videt jen na par metru ale taky zalezi od lokace

Edited by STONERSVK

Share this post


Link to post
Share on other sites

Neoteric je umístěný do Silverpine, kde i když leje jako z konve je pořád v noci vidět jak když je den pod mrakem.

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


×