[DiscordArchive] What spell has the visual?
[DiscordArchive] What spell has the visual?
Archived author: 老爷爷 • Posted: 2025-01-17T10:26:10.876000+00:00
Original source
371 I'm just using the code as an example
Archived author: 老爷爷 • Posted: 2025-01-17T10:36:31.678000+00:00
Original source
spellvisual_dbc contains data for CasterImpactKit and TargetImpactKit. However, the client only shows CasterImpactKit. TargetImpactKit is not displayed
oForAllPlayers on continent), this doesn't seem like a huge amount of work.Archived author: walkline • Posted: 2025-01-17T12:16:05.839000+00:00
Original source
I would like to revive the old topic about the parallelization of continent updates, specifically this one:
https://discord.com/channels/37607328642...8212586496
If we remove possible race conditions from the equation (such as places where we use Map:
oForAllPlayers on continent), this doesn't seem like a huge amount of work.
What do you think <@209419353035243520> (and others. Maybe you <@254168565173846017> are interested as well)?
Maybe I can better explain what I mean by providing some pseudocode.
Archived author: walkline • Posted: 2025-01-17T12:16:28.566000+00:00
Original source
Simplified pseudocode of the current map update:
```
void Map::Update(diff)
{
// Update sessions
// Current https://github.com/azerothcore/azerothco...#L745-L755
for player in players: // current m_mapRefMgr
player->GetSession()->MapRelatedUpdate(diff);
// Update creatures, pets, etc
// Current https://github.com/azerothcore/azerothco...#L797-L806
for obj in nonPlayers: // current m_activeNonPlayers
obj->Update(diff);
// Update players
// Current https://github.com/azerothcore/azerothco...#L810-L853
for player in players:
player->Update(diff);
// update transport
// other update related operations
}
```
Archived author: walkline • Posted: 2025-01-17T12:16:39.519000+00:00
Original source
Suggested 2 phase update for continents (for non continents use the old method):
```
void Map::Update(diff)
{
// Divide players and non players into several lists and group lists by 2 phases based on there position on the grid.
// Example:
// 11233455
// 11233455
// ....
// 11233455
// 11233455
// Here grid divided into 5 lists.
// Odd list number would belong to phase 1, even list number would belong to phase 2.
std::vector<std::vector<Player*>> phase1PlayersLists;
std::vector<std::vector<Player*>> phase2PlayersLists;
std::vector<std::vector<Object*>> phase1NonPlayersLists;
std::vector<std::vector<Object*>> phase2NonPlayersLists;
this->DividePlayersToLists(players, &phase1PlayersLists, &phase2PlayersLists);
this->DivideNonPlayersToLists(nonPlayers, &phase1NonPlayersLists, &phase2NonPlayersLists);
for i in phase1PlayersLists.len():
this->continentUpdateWorkers->ScheduleUpdate(diff, phase1PlayersLists[i], phase1NonPlayersLists[i]);
this->continentUpdateWorkers->wait();
for i in phase2PlayersLists.len():
this->continentUpdateWorkers->ScheduleUpdate(diff, phase2PlayersLists[i], phase2NonPlayersLists[i]);
this->continentUpdateWorkers->wait();
// update transport
// other update related operations
}
void Worker::Update(diff, players, nonPlayers)
{
// Update sessions
for player in players:
player->GetSession()->MapRelatedUpdate(diff);
// Update creatures, pets, etc
for obj in nonPlayers:
obj->Update(diff);
// Update players
for player in players:
player->Update(diff);
}
```
Archived author: sudlud • Posted: 2025-01-17T13:12:21.138000+00:00
Original source
i would have assumed that animation is handled by the client
Archived author: sudlud • Posted: 2025-01-17T13:14:17.839000+00:00
Original source
oh there's even `SMART_ACTION_PLAY_SPELL_VISUAL`
Archived author: Takenbacon • Posted: 2025-01-17T14:22:59.004000+00:00
Original source
I mean i think you already know my stand point on it
Archived author: Takenbacon • Posted: 2025-01-17T14:23:29.418000+00:00
Original source
Let me get home first though
Archived author: walkline • Posted: 2025-01-17T14:50:24.436000+00:00
Original source
Yeah, sorry for bothering you with this again. But recently I looked into some implementation details of the containers for players and non-players on the map, and it seems like it's not an issue for this specific implementation. So I need new arguments why I should forget about this