This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Ascathos
16
« on: September 08, 2016, 08:16:21 pm »
You really are horrible at answering questions. I have known that for some time.
Changes Player.CPP
{ // continent checked in SpellInfo::CheckLocation at cast and area update uint32 v_map = GetVirtualMapForMapAndZone(mapid, zone); v_map != 571 || HasSpell(54197); // 54197 = Cold Weather Flying return v_map != 869 || HasSpell(93333); // 93333 = Flight Master License }
This gets me all cringy. Does this even compile ? How the fuck does it compile ? Also, still most misleading name ever. { // continent checked in SpellInfo::CheckLocation at cast and area update uint32 v_map = GetVirtualMapForMapAndZone(mapid, zone); return (v_map != 571 || HasSpell(54197)) || (v_map != 869 || HasSpell(93333)); }
17
« on: July 24, 2016, 11:22:12 pm »
With and without CorePCH and ScriptPCH C/C++ Compiler Driver crashes. Ram seemed fine, at least as long as stack does not suddenly clear up after the compiler errors. I did not particulary check that.
No space issue. Enough space left.
boost 1.59. Generated a macro redefinition warning on every file compiled (boost related), however I do not thinkg this is the issue.
I got no idea which revision that was. Kestus can provide that.
18
« on: July 19, 2016, 07:28:51 pm »
I send you a pm with my skype addy. From there we'll try to find some time.
If I find the source for the problem, I'll note it here.
19
« on: July 18, 2016, 09:13:53 pm »
The table overview ? We do. However, it would differ how we explain variables.
20
« on: July 18, 2016, 08:58:32 pm »
===0.5.3.3368=== struct SpellDurationRec { uint32_t m_ID; uint32_t m_duration; uint32_t m_durationPerLevel; uint32_t m_maxDuration; };
===4.0.3.13329=== struct SpellDurationRec { uint32_t m_ID; uint32_t m_someRandomStuff; uint32_t m_duration; uint32_t m_durationPerLevel; uint32_t m_maxDuration; };
===4.0.3.13331=== struct SpellDurationRec { uint32_t m_maxDuration; uint32_t m_ID; uint32_t m_duration; uint32_t m_durationPerLevel; uint32_t m_someRandomStuff; uint32_t m_somethingElse; }; Something like this I could imagine.
21
« on: July 18, 2016, 08:54:33 pm »
bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::CharacterCreateInfo const* createInfo) { //FIXME: outfitId not used in player creating /// @todo need more checks against packet modifications
Object::_Create(ObjectGuid::Create<HighGuid::Player>(guidlow));
m_name = createInfo->Name;
PlayerInfo const* info = sObjectMgr->GetPlayerInfo(createInfo->Race, createInfo->Class); if (!info) { TC_LOG_ERROR("entities.player", "Player::Create: Possible hacking attempt: Account %u tried to create a character named '%s' with an invalid race/class pair (%u/%u) - refusing to do so.", GetSession()->GetAccountId(), m_name.c_str(), createInfo->Race, createInfo->Class); return false; } PlayerInfo is built in void ObjectMgr::LoadPlayerInfo()
More precisely
{ uint32 oldMSTime = getMSTime(); // 0 1 2 3 4 5 6 QueryResult result = WorldDatabase.Query("SELECT race, class, map, zone, position_x, position_y, position_z, orientation FROM playercreateinfo");
if (!result) { TC_LOG_ERROR("server.loading", ">> Loaded 0 player create definitions. DB table `playercreateinfo` is empty."); exit(1); } else { uint32 count = 0;
do { Field* fields = result->Fetch();
uint32 current_race = fields[0].GetUInt8(); uint32 current_class = fields[1].GetUInt8(); uint32 mapId = fields[2].GetUInt16(); uint32 areaId = fields[3].GetUInt32(); // zone float positionX = fields[4].GetFloat(); float positionY = fields[5].GetFloat(); float positionZ = fields[6].GetFloat(); float orientation = fields[7].GetFloat();
if (current_race >= MAX_RACES) { TC_LOG_ERROR("sql.sql", "Wrong race %u in `playercreateinfo` table, ignoring.", current_race); continue; }
ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(current_race); if (!rEntry) { TC_LOG_ERROR("sql.sql", "Wrong race %u in `playercreateinfo` table, ignoring.", current_race); continue; }
if (current_class >= MAX_CLASSES) { TC_LOG_ERROR("sql.sql", "Wrong class %u in `playercreateinfo` table, ignoring.", current_class); continue; }
if (!sChrClassesStore.LookupEntry(current_class)) { TC_LOG_ERROR("sql.sql", "Wrong class %u in `playercreateinfo` table, ignoring.", current_class); continue; }
// accept DB data only for valid position (and non instanceable) if (!MapManager::IsValidMapCoord(mapId, positionX, positionY, positionZ, orientation)) { TC_LOG_ERROR("sql.sql", "Wrong home position for class %u race %u pair in `playercreateinfo` table, ignoring.", current_class, current_race); continue; }
if (sMapStore.LookupEntry(mapId)->Instanceable()) { TC_LOG_ERROR("sql.sql", "Home position in instanceable map for class %u race %u pair in `playercreateinfo` table, ignoring.", current_class, current_race); continue; }
PlayerInfo* info = new PlayerInfo(); info->mapId = mapId; info->areaId = areaId; info->positionX = positionX; info->positionY = positionY; info->positionZ = positionZ; info->orientation = orientation; info->displayId_m = rEntry->MaleDisplayID; info->displayId_f = rEntry->FemaleDisplayID; _playerInfo[current_race][current_class] = info;
++count; } while (result->NextRow());
TC_LOG_INFO("server.loading", ">> Loaded %u player create definitions in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); } }
22
« on: July 18, 2016, 08:39:05 pm »
Could add versions if we are certain about things. Also, sometimes it would make sense to simply have them referred to. If a meaning changed throughout a few versions, that would also be covered
Example
Name Integer Addon Version Description __________________________________ Duration Integer < Wotlk 12100 "Base Duration for spells" Duration Integer =>Wotlk 12340 "Base Duration for everything, including life time"
Soemthing along these lines.
23
« on: July 17, 2016, 03:03:02 pm »
DBC ProposalIdea: Split DBCs for readability[paragraph:nhohd9b9] How to ?Instead of having the scheme as following:[/paragraph:nhohd9b9] Title _____ Description [Index]
Table description according to version ______ [Description]
Structs according to version ______ [struct]Struct[/struct]
[paragraph:nhohd9b9] I propose the following:[/paragraph:nhohd9b9] Title _____ Description [Index]
Existing variables that can occur in this ______ [Variables explained, subsectioned in versions and or additions by addon]
Structs according to version ______ [struct]Struct[/struct]
[paragraph:nhohd9b9] Why ?This increases readability a lot. It improves looking up how certain tables works and also improves documentation.[/paragraph:nhohd9b9] As displayed in the following pictures: [attachment=1:nhohd9b9]Right now.jpg[/attachment:nhohd9b9] To the following: [attachment=0:nhohd9b9]Proposal.jpg[/attachment:nhohd9b9] ==Variables== {| style="background:#FCFCFC; color:black"} |- !width="180" | Name !width="80" | Type !width="40" | Addon !width="250"| Description |- style="background:#E0E0E0;" | ID || Integer || {{Template:Sandbox/VersionRange|min_expansionlevel=1}} || Interal identifier |- | Duration ||Integer || {{Template:Sandbox/VersionRange|min_expansionlevel=1}} || Base Duration |- style="background:#E0E0E0;" | Dur. per Level || Integer || {{Template:Sandbox/VersionRange|min_expansionlevel=1}} || Duration Increase per Level |- | MaxDuration || Integer || {{Template:Sandbox/VersionRange|min_expansionlevel=1}} || Max Duration for this entry |}
==Structs==
===0.5.3.3368, 4.0.3.13329, 6.0.1.18179=== struct SpellDurationRec { uint32_t m_ID; uint32_t m_duration; uint32_t m_durationPerLevel; uint32_t m_maxDuration; };
24
« on: July 17, 2016, 01:50:06 pm »
IF you enter Character creation, change your char to preference and press continue.
Expected Behavior: It should send you to Character Login without Popup. Character should be in Login displayed.
Actual behavior: Failed to create charater. An error is in 100% of all cases in Worldserver.
Find that one. Should be on the bottom, one of the first after pressing continue.
25
« on: July 15, 2016, 08:56:18 pm »
Should actually display an error on default. Press create and check worldserver. Is there a printout ?
26
« on: July 14, 2016, 09:14:56 pm »
worldserver most likly has an error output for an unknown class race combination that is flagged as cheating. Make sure to add the combination into any relevant player_ table. Also, check for the error. If you checked every player_ table in world and do not know what to do with the error, post here.
Consider changing worldserverconfig logging to debug.
27
« on: July 14, 2016, 08:51:36 pm »
I am a hard hearted folk at matters like this. Too many fake announcements that I witnessed that make me not believe stuff.
However, as a contributing member of this community... If this is actually the case, it's a sad thing to hear. To be honest, I forgot about him. It just happens after time goes by and you fail to remember names. But it definitely is sad to hear if this is true.
28
« on: July 13, 2016, 10:37:18 pm »
An easy way to accomplish this is through a SAI. You can add a invisible aura to the npc, and add a smart_script to remove this aura when the player have the quest x rewared. Does not make it specific but generic. SAI does not allow that for one specific player only.
29
« on: July 05, 2016, 12:56:21 am »
A ChrClasses flag iirc, ye
30
« on: July 04, 2016, 10:16:47 pm »
Heroic classes are basically handled server side with client being told you shall not play. So server is your first way to go. Basically copy paste everything that dk does.
|