This is a read only copy without any forum functionality of the old Modcraft forum.
If there is anything that you would like to have removed, message me on Discord via Kaev#5208.
Big thanks to Alastor for making this copy!

Show Posts

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

Pages: 1 [2] 3 4 ... 74
16
Quote from: "Nupper"
Quote from: "schlumpf"
You really are horrible at answering questions.
I have known that for some time.

Changes
Player.CPP
Code: [Select]
{
    // 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.

Code: [Select]
{
    // 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
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
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
Random / Re: Wiki Formatting
« on: July 18, 2016, 09:13:53 pm »
The table overview ? We do. However, it would differ how we explain variables.

20
Random / Re: Wiki Formatting
« on: July 18, 2016, 08:58:32 pm »
Code: [Select]
===0.5.3.3368===
 struct SpellDurationRec {
   uint32_t m_ID;
   uint32_t m_duration;
   uint32_t m_durationPerLevel;
   uint32_t m_maxDuration;
 };

Code: [Select]
===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;
 };

Code: [Select]
===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
Code: [Select]
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
Code: [Select]
   {
        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
Random / Re: Wiki Formatting
« 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
Random / Re: Wiki Formatting
« on: July 17, 2016, 03:03:02 pm »

DBC Proposal



Idea: Split DBCs for readability


[paragraph:nhohd9b9]How to ?

Instead of having the scheme as following:[/paragraph:nhohd9b9]

Quote

Title
_____
Description
[Index]


Table description according to version
______
[Description]


Structs according to version
______
[struct]Struct[/struct]

[paragraph:nhohd9b9]I propose the following:[/paragraph:nhohd9b9]

Quote

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]


Code: [Select]
==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
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
Should actually display an error on default. Press create and check worldserver. Is there a printout ?

26
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
Random / Re: R.I.P. Zim4ik
« 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
Quote from: "Rhisk"
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
A ChrClasses flag iirc, ye

30
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.

Pages: 1 [2] 3 4 ... 74