Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > 12Sky2
You last visited: Today at 02:03

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Client] ZONEMOVEINFO class

Discussion on [Client] ZONEMOVEINFO class within the 12Sky2 forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2011
Posts: 129
Received Thanks: 173
[Client] ZONEMOVEINFO class

Code:
struct ZONEMAINDATA
{
  float mFirstCoord[3];
  int mNextZoneNum;
  float mXYZ[100][3];
  int mNextZone[100];
  int unkB;
  float mStartCoord[100][3];
  int unkD[100];
};
struct ZONEMAINDATA2
{
	float mFirstCoord[3];
	int mTotalOutNum;//total num for teleport to zone (min-0 | max-100)
	float mOutCoord[100][3]; //[100] to xyz
	int mOutZoneNumber[100];//[100] zone number
	int mTotalInNum;//total num for teleport from zone (min-0 | max-100)
	float mInCoord[100][3]; //[100] to xyz
	int mInFrom[100];//[100] zone number
};

ZONEMOVEINFO *__thiscall ZONEMOVEINFO::ZONEMOVEINFO(ZONEMOVEINFO *this)
{
    return this;
}

BOOL __thiscall ZONEMOVEINFO::Init(void *this)
{
    DWORD NumberOfBytesRead; // [esp+4h] [ebp-8h] BYREF
    HANDLE hFile; // [esp+8h] [ebp-4h]

    hFile = CreateFileA("G02_GINFO\\003.BIN", 2147483648, 1u, 0, 3u, 128u, 0);
    if ( hFile == -1 )
        return 0;
    if ( ReadFile(hFile, this, 1127000u, &NumberOfBytesRead, 0) && NumberOfBytesRead == 1127000 )
        return CloseHandle(hFile);
    CloseHandle(hFile);
    return 0;
}

void ZONEMOVEINFO::Free()
{
}

void __cdecl ZONEMOVEINFO::SetFirstCoord(int tZoneNumner, float tCoord[3])
{
    ZONEMOVEINFO *v2; // ecx

    tCoord[0] = 0.0;
    tCoord[1] = 0.0;
    tCoord[2] = 0.0;
    if ( tZoneNumner >= 1 && tZoneNumner <= 350 )
    {
        tCoord[0] = v2->mDATA[tZoneNumner - 1].mFirstCoord[0];
        tCoord[1] = v2->mDATA[tZoneNumner - 1].mFirstCoord[1];
        tCoord[2] = v2->mDATA[tZoneNumner - 1].mFirstCoord[2];
    }
}

void __cdecl ZONEMOVEINFO::SetStartCoord(int tZoneNumber, int tPreZoneNumber, float tCoord[3])
{
    ZONEMOVEINFO *v3; // ecx
    int i; // [esp+4h] [ebp-4h]

    tCoord[0] = 0.0;
    tCoord[1] = 0.0;
    tCoord[2] = 0.0;
    if ( tZoneNumber >= 1 && tZoneNumber <= 350 )
    {
        for ( i = 0; i < v3->mDATA[tZoneNumber - 1].unkB && v3->mDATA[tZoneNumber - 1].unkD[i] != tPreZoneNumber; ++i )
            ;
        if ( i != v3->mDATA[tZoneNumber - 1].unkB )
        {
            tCoord[0] = v3->mDATA[tZoneNumber - 1].mStartCoord[i][0];
            tCoord[1] = v3->mDATA[tZoneNumber - 1].mStartCoord[i][1];
            tCoord[2] = v3->mDATA[tZoneNumber - 1].mStartCoord[i][2];
        }
    }
}

int __stdcall ZONEMOVEINFO::ReturnMoveZone(int tFrom, int tTo)
{
    int result; // eax
    int v3; // esi
    int v4; // esi
    int v5; // esi
    int v6; // esi
    int v7; // esi
    int v8; // esi
    int v9; // esi
    int v10; // esi
    int v11; // esi
    int v12; // esi
    int v13; // esi
    int v14; // esi
    int v15; // esi
    int v16; // esi
    int v17; // esi
    int v18; // esi
    int v19; // esi
    int v20; // esi
    int v21; // esi
    int v22; // esi
    int v23; // esi
    int v24; // esi
    int v25; // esi
    int v26; // esi
    int v27; // esi
    int v28; // esi
    int v29; // esi
    int v30; // esi
    int v31; // esi
    int v32; // esi
    int v33; // esi
    int v34; // esi
    int v35; // esi
    int v36; // esi
    int v37; // esi
    int v38; // esi
    int v39; // esi
    int v40; // esi
    int v41; // esi
    int v42; // esi
    int v43; // esi
    int v44; // esi
    int v45; // esi
    int v46; // esi
    int v47; // esi
    int v48; // esi
    int v49; // esi
    int v50; // esi
    int v51; // esi
    int v52; // esi
    int v53; // esi
    int v54; // esi
    int v55; // esi
    int v56; // esi
    int v57; // esi
    int v58; // esi
    int v59; // esi
    int v60; // esi
    int v61; // esi
    int v62; // esi
    int v63; // esi
    int v64; // esi
    int v65; // esi
    int v66; // esi
    int v67; // esi
    int v68; // esi
    int v69; // esi
    int v70; // esi
    int v71; // esi
    int v72; // esi
    int v73; // esi
    int v74; // esi
    int v75; // esi
    int v76; // esi
    int v77; // esi
    int v78; // esi
    int v79; // esi
    int v80; // esi
    int v81; // esi
    int v82; // esi
    int v83; // esi
    int v84; // esi
    int v85; // esi
    int v86; // esi
    int v87; // esi
    int v88; // esi
    int v89; // esi
    int v90; // esi
    int v91; // esi
    int v92; // esi
    int v93; // esi
    int v94; // esi
    int v95; // esi
    int v96; // esi
    int v97; // esi
    int v98; // esi
    int v99; // esi
    int v100; // esi
    int v101; // esi
    int v102; // esi
    int v103; // esi
    int v104; // esi
    int v105; // esi
    int v106; // esi
    int v107; // esi
    int v108; // esi

    if ( tFrom < 1 || tFrom > 350 || tTo < 1 || tTo > 350 )
        return 0;
    if ( tFrom == 1 && tTo == 2
      || tFrom == 2 && tTo == 3
      || tFrom == 3 && tTo == 4
      || tFrom == 4 && tTo == 38
      || tFrom == 40 && tTo == 43
      || tFrom == 40 && tTo == 38
      || tFrom == 43 && tTo == 56
      || tFrom == 43 && tTo == 40
      || tFrom == 46 && tTo == 2
      || tFrom == 16 && tTo == 3
      || tFrom == 17 && tTo == 4
      || tFrom == 62 && tTo == 40
      || tFrom == 64 && tTo == 43
      || tFrom == 59 && tTo == 56
      || tFrom == 17 && tTo == 18
      || tFrom == 18 && tTo == 17
      || tFrom == 62 && tTo == 63
      || tFrom == 63 && tTo == 62
      || tFrom == 40 && tTo == 62
      || tFrom == 43 && tTo == 64
      || tFrom == 56 && tTo == 59
      || tFrom == 56 && tTo == 43
      || tFrom == 6 && tTo == 7
      || tFrom == 7 && tTo == 8
      || tFrom == 8 && tTo == 9
      || tFrom == 9 && tTo == 38
      || tFrom == 41 && tTo == 44
      || tFrom == 41 && tTo == 38
      || tFrom == 44 && tTo == 57
      || tFrom == 44 && tTo == 41
      || tFrom == 47 && tTo == 7
      || tFrom == 22 && tTo == 8
      || tFrom == 23 && tTo == 9
      || tFrom == 65 && tTo == 41
      || tFrom == 67 && tTo == 44
      || tFrom == 60 && tTo == 57
      || tFrom == 23 && tTo == 24
      || tFrom == 24 && tTo == 23
      || tFrom == 65 && tTo == 66
      || tFrom == 66 && tTo == 65
      || tFrom == 41 && tTo == 65
      || tFrom == 44 && tTo == 67
      || tFrom == 57 && tTo == 60
      || tFrom == 57 && tTo == 44
      || tFrom == 11 && tTo == 12
      || tFrom == 12 && tTo == 13
      || tFrom == 13 && tTo == 14
      || tFrom == 14 && tTo == 38
      || tFrom == 42 && tTo == 45
      || tFrom == 42 && tTo == 38
      || tFrom == 45 && tTo == 58
      || tFrom == 45 && tTo == 42
      || tFrom == 48 && tTo == 12
      || tFrom == 28 && tTo == 13
      || tFrom == 29 && tTo == 14
      || tFrom == 68 && tTo == 42
      || tFrom == 70 && tTo == 45
      || tFrom == 61 && tTo == 58
      || tFrom == 29 && tTo == 30
      || tFrom == 30 && tTo == 29
      || tFrom == 68 && tTo == 69
      || tFrom == 69 && tTo == 68
      || tFrom == 42 && tTo == 68
      || tFrom == 45 && tTo == 70
      || tFrom == 58 && tTo == 61
      || tFrom == 58 && tTo == 45
      || tFrom == 39 && tTo == 38
      || tFrom == 144 && tTo == 38
      || tFrom == 145 && tTo == 38
      || tFrom == 145 && tTo == 74
      || tFrom == 74 && tTo == 145
      || tFrom == 310 && tTo == 38
      || tFrom == 101 && tTo == 1
      || tFrom == 126 && tTo == 1
      || tFrom == 127 && tTo == 1
      || tFrom == 128 && tTo == 1
      || tFrom == 129 && tTo == 1
      || tFrom == 210 && tTo == 1
      || tFrom == 211 && tTo == 1
      || tFrom == 212 && tTo == 1
      || tFrom == 126 && tTo == 235
      || tFrom == 127 && tTo == 236
      || tFrom == 128 && tTo == 237
      || tFrom == 129 && tTo == 238
      || tFrom == 235 && tTo == 126
      || tFrom == 236 && tTo == 127
      || tFrom == 237 && tTo == 128
      || tFrom == 238 && tTo == 129
      || tFrom == 222 && tTo == 210
      || tFrom == 223 && tTo == 211
      || tFrom == 224 && tTo == 212
      || tFrom == 102 && tTo == 6
      || tFrom == 130 && tTo == 6
      || tFrom == 131 && tTo == 6
      || tFrom == 132 && tTo == 6
      || tFrom == 133 && tTo == 6
      || tFrom == 213 && tTo == 6
      || tFrom == 214 && tTo == 6
      || tFrom == 215 && tTo == 6
      || tFrom == 130 && tTo == 239
      || tFrom == 131 && tTo == 240
      || tFrom == 132 && tTo == 241
      || tFrom == 133 && tTo == 242
      || tFrom == 239 && tTo == 130
      || tFrom == 240 && tTo == 131
      || tFrom == 241 && tTo == 132
      || tFrom == 242 && tTo == 133
      || tFrom == 225 && tTo == 213
      || tFrom == 226 && tTo == 214
      || tFrom == 227 && tTo == 215
      || tFrom == 103 && tTo == 11
      || tFrom == 134 && tTo == 11
      || tFrom == 135 && tTo == 11
      || tFrom == 136 && tTo == 11
      || tFrom == 137 && tTo == 11
      || tFrom == 216 && tTo == 11
      || tFrom == 217 && tTo == 11
      || tFrom == 218 && tTo == 11
      || tFrom == 134 && tTo == 243
      || tFrom == 135 && tTo == 244
      || tFrom == 136 && tTo == 245
      || tFrom == 137 && tTo == 246
      || tFrom == 243 && tTo == 134
      || tFrom == 244 && tTo == 135
      || tFrom == 245 && tTo == 136
      || tFrom == 246 && tTo == 137
      || tFrom == 228 && tTo == 216
      || tFrom == 229 && tTo == 217
      || tFrom == 230 && tTo == 218
      || tFrom == 167 && tTo == 140
      || tFrom == 171 && tTo == 140
      || tFrom == 172 && tTo == 140
      || tFrom == 173 && tTo == 140
      || tFrom == 174 && tTo == 140
      || tFrom == 219 && tTo == 140
      || tFrom == 220 && tTo == 140
      || tFrom == 221 && tTo == 140
      || tFrom == 171 && tTo == 247
      || tFrom == 172 && tTo == 248
      || tFrom == 173 && tTo == 249
      || tFrom == 174 && tTo == 250
      || tFrom == 247 && tTo == 171
      || tFrom == 248 && tTo == 172
      || tFrom == 249 && tTo == 173
      || tFrom == 250 && tTo == 174
      || tFrom == 231 && tTo == 219
      || tFrom == 232 && tTo == 220
      || tFrom == 233 && tTo == 221
      || tFrom == 71 && tTo == 1
      || tFrom == 72 && tTo == 6
      || tFrom == 73 && tTo == 11
      || tFrom == 105 && tTo == 1
      || tFrom == 104 && tTo == 1
      || tFrom == 110 && tTo == 1
      || tFrom == 111 && tTo == 1
      || tFrom == 251 && tTo == 1
      || tFrom == 252 && tTo == 1
      || tFrom == 259 && tTo == 1
      || tFrom == 260 && tTo == 1
      || tFrom == 107 && tTo == 6
      || tFrom == 106 && tTo == 6
      || tFrom == 112 && tTo == 6
      || tFrom == 113 && tTo == 6
      || tFrom == 253 && tTo == 6
      || tFrom == 254 && tTo == 6
      || tFrom == 261 && tTo == 6
      || tFrom == 262 && tTo == 6
      || tFrom == 109 && tTo == 11
      || tFrom == 108 && tTo == 11
      || tFrom == 114 && tTo == 11
      || tFrom == 115 && tTo == 11
      || tFrom == 255 && tTo == 11
      || tFrom == 256 && tTo == 11
      || tFrom == 263 && tTo == 11
      || tFrom == 264 && tTo == 11
      || tFrom == 169 && tTo == 140
      || tFrom == 168 && tTo == 140
      || tFrom == 116 && tTo == 140
      || tFrom == 117 && tTo == 140
      || tFrom == 257 && tTo == 140
      || tFrom == 258 && tTo == 140
      || tFrom == 265 && tTo == 140
      || tFrom == 266 && tTo == 140
      || tFrom == 140 && tTo == 141
      || tFrom == 141 && tTo == 142
      || tFrom == 142 && tTo == 143
      || tFrom == 143 && tTo == 38
      || tFrom == 76 && tTo == 75
      || tFrom == 77 && tTo == 75
      || tFrom == 78 && tTo == 75
      || tFrom == 79 && tTo == 75
      || tFrom == 76 && tTo == 80
      || tFrom == 77 && tTo == 81
      || tFrom == 78 && tTo == 82
      || tFrom == 79 && tTo == 83
      || tFrom == 80 && tTo == 76
      || tFrom == 81 && tTo == 77
      || tFrom == 82 && tTo == 78
      || tFrom == 83 && tTo == 79
      || tFrom == 91 && tTo == 90
      || tFrom == 92 && tTo == 90
      || tFrom == 93 && tTo == 90
      || tFrom == 94 && tTo == 90
      || tFrom == 91 && tTo == 95
      || tFrom == 92 && tTo == 96
      || tFrom == 93 && tTo == 97
      || tFrom == 94 && tTo == 98
      || tFrom == 95 && tTo == 91
      || tFrom == 96 && tTo == 92
      || tFrom == 97 && tTo == 93
      || tFrom == 98 && tTo == 94
      || tFrom == 202 && tTo == 201
      || tFrom == 203 && tTo == 201
      || tFrom == 204 && tTo == 201
      || tFrom == 205 && tTo == 201
      || tFrom == 202 && tTo == 206
      || tFrom == 203 && tTo == 207
      || tFrom == 204 && tTo == 208
      || tFrom == 205 && tTo == 209
      || tFrom == 206 && tTo == 202
      || tFrom == 207 && tTo == 203
      || tFrom == 208 && tTo == 204
      || tFrom == 209 && tTo == 205
      || tFrom == 275 && tTo == 1
      || tFrom == 279 && tTo == 1
      || tFrom == 283 && tTo == 1
      || tFrom == 287 && tTo == 1
      || tFrom == 276 && tTo == 6
      || tFrom == 280 && tTo == 6
      || tFrom == 284 && tTo == 6
      || tFrom == 288 && tTo == 6
      || tFrom == 277 && tTo == 11
      || tFrom == 281 && tTo == 11
      || tFrom == 285 && tTo == 11
      || tFrom == 289 && tTo == 11
      || tFrom == 278 && tTo == 140
      || tFrom == 282 && tTo == 140
      || tFrom == 286 && tTo == 140
      || tFrom == 290 && tTo == 140 )
    {
        v3 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v3 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v4 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v4 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 119 && tTo == 1 || tFrom == 124 && tTo == 1 || tFrom == 55 && tTo == 1 || tFrom == 89 && tTo == 1 || tFrom == 125 && tTo == 1 || tFrom == 75 && tTo == 1 || tFrom == 90 && tTo == 1 || tFrom == 201 && tTo == 1 || tFrom == 234 && tTo == 1 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
            return 0;
        v5 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v5 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v6 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v6 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 119 && tTo == 6 || tFrom == 124 && tTo == 6 || tFrom == 55 && tTo == 6 || tFrom == 89 && tTo == 6 || tFrom == 125 && tTo == 6 || tFrom == 75 && tTo == 6 || tFrom == 90 && tTo == 6 || tFrom == 201 && tTo == 6 || tFrom == 234 && tTo == 6 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 1 )
            return 0;
        v7 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v7 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v8 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v8 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 119 && tTo == 11 || tFrom == 124 && tTo == 11 || tFrom == 55 && tTo == 11 || tFrom == 89 && tTo == 11 || tFrom == 125 && tTo == 11 || tFrom == 75 && tTo == 11 || tFrom == 90 && tTo == 11 || tFrom == 201 && tTo == 11 || tFrom == 234 && tTo == 11 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 2 )
            return 0;
        v9 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v9 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v10 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v10 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 119 && tTo == 140 || tFrom == 124 && tTo == 140 || tFrom == 55 && tTo == 140 || tFrom == 89 && tTo == 140 || tFrom == 125 && tTo == 140 || tFrom == 75 && tTo == 140 || tFrom == 90 && tTo == 140 || tFrom == 201 && tTo == 140 || tFrom == 234 && tTo == 140 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 3 )
            return 0;
        v11 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v11 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v12 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v12 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 2 && tTo == 46 || tFrom == 3 && tTo == 16 || tFrom == 4 && tTo == 17 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
            return 0;
        v13 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v13 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v14 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v14 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 7 && tTo == 47 || tFrom == 8 && tTo == 22 || tFrom == 9 && tTo == 23 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 1 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(1) )
            return 0;
        v15 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v15 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v16 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v16 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 12 && tTo == 48 || tFrom == 13 && tTo == 28 || tFrom == 14 && tTo == 29 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 2 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(2) )
            return 0;
        v17 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v17 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v18 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v18 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 40 || tFrom == 75 && tTo == 76 || tFrom == 90 && tTo == 91 || tFrom == 201 && tTo == 202 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
            return 0;
        v19 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v19 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v20 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v20 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 4 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
        {
            if ( mPLAY[0].mWorldInfo.mTribeGuardState[0][0] )
            {
                result = 2;
            }
            else
            {
                v23 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                if ( v23 >= ZONEMAININFO::ReturnMinZoneLevelInfo(4) && (v24 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v24 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(4)) )
                    result = 1;
                else
                    result = 2;
            }
        }
        else
        {
            v21 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v21 >= ZONEMAININFO::ReturnMinZoneLevelInfo(4) && (v22 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v22 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(4)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 4 && tTo == 3 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
        {
            if ( PLAY::ReturnTribePointWithAlliance(0) >= 100 )
            {
                if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v27 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v27 <= 2 * PLAY::ReturnTribePointWithAlliance(0)) )
                {
                    if ( mPLAY[0].mWorldInfo.mTribeGuardState[0][1] )
                    {
                        result = 2;
                    }
                    else
                    {
                        v28 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                        if ( v28 >= ZONEMAININFO::ReturnMinZoneLevelInfo(3) && (v29 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v29 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(3)) )
                            result = 1;
                        else
                            result = 2;
                    }
                }
                else
                {
                    result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            v25 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v25 >= ZONEMAININFO::ReturnMinZoneLevelInfo(3) && (v26 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v26 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(3)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 3 && tTo == 2 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
        {
            if ( PLAY::ReturnTribePointWithAlliance(0) >= 100 )
            {
                if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v32 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v32 <= 2 * PLAY::ReturnTribePointWithAlliance(0)) )
                {
                    if ( mPLAY[0].mWorldInfo.mTribeGuardState[0][2] )
                    {
                        result = 2;
                    }
                    else
                    {
                        v33 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                        if ( v33 >= ZONEMAININFO::ReturnMinZoneLevelInfo(2) && (v34 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v34 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(2)) )
                            result = 1;
                        else
                            result = 2;
                    }
                }
                else
                {
                    result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            v30 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v30 >= ZONEMAININFO::ReturnMinZoneLevelInfo(2) && (v31 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v31 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(2)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 2 && tTo == 1 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(0) )
        {
            if ( PLAY::ReturnTribePointWithAlliance(0) >= 100 )
            {
                if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v37 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v37 <= 2 * PLAY::ReturnTribePointWithAlliance(0)) )
                {
                    if ( mPLAY[0].mWorldInfo.mTribeGuardState[0][3] )
                    {
                        result = 2;
                    }
                    else
                    {
                        v38 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                        if ( v38 >= ZONEMAININFO::ReturnMinZoneLevelInfo(1) && (v39 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v39 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(1)) )
                            result = 1;
                        else
                            result = 2;
                    }
                }
                else
                {
                    result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            v35 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v35 >= ZONEMAININFO::ReturnMinZoneLevelInfo(1) && (v36 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v36 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(1)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 38 && tTo == 41 || tFrom == 75 && tTo == 77 || tFrom == 90 && tTo == 92 || tFrom == 201 && tTo == 203 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 1 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(1) )
            return 0;
        v40 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v40 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v41 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v41 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 9 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(1) )
        {
            v42 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v42 >= ZONEMAININFO::ReturnMinZoneLevelInfo(9) && (v43 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v43 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(9)) )
                result = 1;
            else
                result = 2;
        }
        else if ( mPLAY[0].mWorldInfo.mTribeGuardState[1][0] )
        {
            result = 2;
        }
        else
        {
            v44 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v44 >= ZONEMAININFO::ReturnMinZoneLevelInfo(9) && (v45 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v45 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(9)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 9 && tTo == 8 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(1) )
        {
            v46 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v46 >= ZONEMAININFO::ReturnMinZoneLevelInfo(8) && (v47 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v47 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(8)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(1) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v48 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v48 <= 2 * PLAY::ReturnTribePointWithAlliance(1)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[1][1] )
                {
                    result = 2;
                }
                else
                {
                    v49 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v49 >= ZONEMAININFO::ReturnMinZoneLevelInfo(8) && (v50 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v50 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(8)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 8 && tTo == 7 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(1) )
        {
            v51 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v51 >= ZONEMAININFO::ReturnMinZoneLevelInfo(7) && (v52 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v52 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(7)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(1) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v53 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v53 <= 2 * PLAY::ReturnTribePointWithAlliance(1)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[1][2] )
                {
                    result = 2;
                }
                else
                {
                    v54 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v54 >= ZONEMAININFO::ReturnMinZoneLevelInfo(7) && (v55 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v55 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(7)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 7 && tTo == 6 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(1) )
        {
            v56 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v56 >= ZONEMAININFO::ReturnMinZoneLevelInfo(6) && (v57 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v57 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(6)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(1) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v58 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v58 <= 2 * PLAY::ReturnTribePointWithAlliance(1)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[1][3] )
                {
                    result = 2;
                }
                else
                {
                    v59 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v59 >= ZONEMAININFO::ReturnMinZoneLevelInfo(6) && (v60 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v60 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(6)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 38 && tTo == 42 || tFrom == 75 && tTo == 78 || tFrom == 90 && tTo == 93 || tFrom == 201 && tTo == 204 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 2 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(2) )
            return 0;
        v61 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v61 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v62 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v62 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 14 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(2) )
        {
            v63 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v63 >= ZONEMAININFO::ReturnMinZoneLevelInfo(14) && (v64 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v64 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(14)) )
                result = 1;
            else
                result = 2;
        }
        else if ( mPLAY[0].mWorldInfo.mTribeGuardState[2][0] )
        {
            result = 2;
        }
        else
        {
            v65 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v65 >= ZONEMAININFO::ReturnMinZoneLevelInfo(14) && (v66 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v66 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(14)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 14 && tTo == 13 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(2) )
        {
            v67 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v67 >= ZONEMAININFO::ReturnMinZoneLevelInfo(13) && (v68 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v68 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(13)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(2) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v69 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v69 <= 2 * PLAY::ReturnTribePointWithAlliance(2)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[2][1] )
                {
                    result = 2;
                }
                else
                {
                    v70 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v70 >= ZONEMAININFO::ReturnMinZoneLevelInfo(13) && (v71 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v71 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(13)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 13 && tTo == 12 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(2) )
        {
            v72 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v72 >= ZONEMAININFO::ReturnMinZoneLevelInfo(12) && (v73 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v73 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(12)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(2) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v74 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v74 <= 2 * PLAY::ReturnTribePointWithAlliance(2)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[2][2] )
                {
                    result = 2;
                }
                else
                {
                    v75 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v75 >= ZONEMAININFO::ReturnMinZoneLevelInfo(12) && (v76 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v76 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(12)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 12 && tTo == 11 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(2) )
        {
            v77 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v77 >= ZONEMAININFO::ReturnMinZoneLevelInfo(11) && (v78 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v78 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(11)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(2) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v79 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v79 <= 2 * PLAY::ReturnTribePointWithAlliance(2)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[2][3] )
                {
                    result = 2;
                }
                else
                {
                    v80 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v80 >= ZONEMAININFO::ReturnMinZoneLevelInfo(11) && (v81 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v81 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(11)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 75 && tTo == 79 || tFrom == 90 && tTo == 94 || tFrom == 201 && tTo == 205 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe != 3 && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(3) )
            return 0;
        v82 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v82 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v83 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v83 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) )
            result = 1;
        else
            result = 2;
        return result;
    }
    if ( tFrom == 38 && tTo == 143 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(3) )
        {
            v84 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v84 >= ZONEMAININFO::ReturnMinZoneLevelInfo(143) && (v85 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v85 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(143)) )
                result = 1;
            else
                result = 2;
        }
        else if ( mPLAY[0].mWorldInfo.mTribeGuardState[3][0] )
        {
            result = 2;
        }
        else
        {
            v86 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v86 >= ZONEMAININFO::ReturnMinZoneLevelInfo(143) && (v87 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v87 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(143)) )
                result = 1;
            else
                result = 2;
        }
        return result;
    }
    if ( tFrom == 143 && tTo == 142 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(3) )
        {
            v88 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v88 >= ZONEMAININFO::ReturnMinZoneLevelInfo(142) && (v89 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v89 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(142)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(3) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v90 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v90 <= 2 * PLAY::ReturnTribePointWithAlliance(3)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[3][1] )
                {
                    result = 2;
                }
                else
                {
                    v91 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v91 >= ZONEMAININFO::ReturnMinZoneLevelInfo(142) && (v92 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v92 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(142)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 142 && tTo == 141 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(3) )
        {
            v93 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v93 >= ZONEMAININFO::ReturnMinZoneLevelInfo(141) && (v94 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v94 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(141)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(3) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v95 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v95 <= 2 * PLAY::ReturnTribePointWithAlliance(3)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[3][2] )
                {
                    result = 2;
                }
                else
                {
                    v96 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v96 >= ZONEMAININFO::ReturnMinZoneLevelInfo(141) && (v97 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v97 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(141)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 141 && tTo == 140 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 || mMYINFO[0].mUseAvatar.aTribe == PLAY::ReturnAllianceTribe(3) )
        {
            v98 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v98 >= ZONEMAININFO::ReturnMinZoneLevelInfo(140) && (v99 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v99 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(140)) )
                result = 1;
            else
                result = 2;
        }
        else if ( PLAY::ReturnTribePointWithAlliance(3) >= 100 )
        {
            if ( mPLAY[0].mWorldInfo.mTribeSymbolBattle || (v100 = PLAY::ReturnTribePointWithAlliance(mMYINFO[0].mUseAvatar.aTribe), v100 <= 2 * PLAY::ReturnTribePointWithAlliance(3)) )
            {
                if ( mPLAY[0].mWorldInfo.mTribeGuardState[3][3] )
                {
                    result = 2;
                }
                else
                {
                    v101 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v101 >= ZONEMAININFO::ReturnMinZoneLevelInfo(140) && (v102 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v102 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(140)) )
                        result = 1;
                    else
                        result = 2;
                }
            }
            else
            {
                result = 2;
            }
        }
        else
        {
            result = 2;
        }
        return result;
    }
    if ( tFrom == 38 && tTo == 39 || tFrom == 38 && tTo == 144 || tFrom == 38 && tTo == 145 || tFrom == 38 && tTo == 310 )
    {
        if ( tTo == 310 )
        {
            if ( mMYINFO[0].mUseAvatar.aZone038Ticket > 0 || mMYINFO[0].mUseAvatar.aTribe == mPLAY[0].mWorldInfo.mZone038WinTribe )
            {
                v103 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                result = 0;
                if ( v103 >= ZONEMAININFO::ReturnMinZoneLevelInfo(310) )
                {
                    v104 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
                    if ( v104 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(310) )
                        result = 1;
                }
                return result;
            }
            return 2;
        }
        if ( mMYINFO[0].mUseAvatar.aTribe != mPLAY[0].mWorldInfo.mZone038WinTribe && mMYINFO[0].mUseAvatar.aTribe != PLAY::ReturnAllianceTribe(mPLAY[0].mWorldInfo.mZone038WinTribe) )
            return 2;
        v105 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        result = 0;
        if ( v105 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) )
        {
            v106 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
            if ( v106 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo) )
                result = 1;
        }
    }
    else if ( tFrom == 195 && tTo == 1 || tFrom == 196 && tTo == 1 || tFrom == 197 && tTo == 1 || tFrom == 198 && tTo == 1 || tFrom == 199 && tTo == 1 || tFrom == 85 && tTo == 1 || tFrom == 86 && tTo == 1 || tFrom == 87 && tTo == 1 || tFrom == 99 && tTo == 1 || tFrom == 100 && tTo == 1 || tFrom == 118 && tTo == 1 || tFrom == 302 && tTo == 1 || tFrom == 304 && tTo == 1 || tFrom == 340 && tTo == 1 || tFrom == 341 && tTo == 1 || tFrom == 345 && tTo == 1 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
            result = 2;
        else
            result = 1;
    }
    else if ( tFrom == 195 && tTo == 6 || tFrom == 196 && tTo == 6 || tFrom == 197 && tTo == 6 || tFrom == 198 && tTo == 6 || tFrom == 199 && tTo == 6 || tFrom == 85 && tTo == 6 || tFrom == 86 && tTo == 6 || tFrom == 87 && tTo == 6 || tFrom == 99 && tTo == 6 || tFrom == 100 && tTo == 6 || tFrom == 118 && tTo == 6 || tFrom == 302 && tTo == 6 || tFrom == 305 && tTo == 6 || tFrom == 340 && tTo == 6 || tFrom == 341 && tTo == 6 || tFrom == 345 && tTo == 6 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 195 && tTo == 11 || tFrom == 196 && tTo == 11 || tFrom == 197 && tTo == 11 || tFrom == 198 && tTo == 11 || tFrom == 199 && tTo == 11 || tFrom == 85 && tTo == 11 || tFrom == 86 && tTo == 11 || tFrom == 87 && tTo == 11 || tFrom == 99 && tTo == 11 || tFrom == 100 && tTo == 11 || tFrom == 118 && tTo == 11 || tFrom == 302 && tTo == 11 || tFrom == 306 && tTo == 11 || tFrom == 340 && tTo == 11 || tFrom == 341 && tTo == 11 || tFrom == 345 && tTo == 11 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 196 && tTo == 140 || tFrom == 197 && tTo == 140 || tFrom == 198 && tTo == 140 || tFrom == 199 && tTo == 140 || tFrom == 85 && tTo == 140 || tFrom == 86 && tTo == 140 || tFrom == 87 && tTo == 140 || tFrom == 99 && tTo == 140 || tFrom == 100 && tTo == 140 || tFrom == 118 && tTo == 140 || tFrom == 302 && tTo == 140 || tFrom == 307 && tTo == 140 || tFrom == 340 && tTo == 140 || tFrom == 341 && tTo == 140 || tFrom == 345 && tTo == 140 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 170 && tTo == 1 || tFrom == 50 && tTo == 1 || tFrom == 52 && tTo == 1 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
            result = 2;
        else
            result = 1;
    }
    else if ( tFrom == 170 && tTo == 6 || tFrom == 50 && tTo == 6 || tFrom == 52 && tTo == 6 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 170 && tTo == 11 || tFrom == 50 && tTo == 11 || tFrom == 52 && tTo == 11 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 170 && tTo == 140 || tFrom == 50 && tTo == 140 || tFrom == 52 && tTo == 140 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 210 && tTo == 222 || tFrom == 211 && tTo == 223 || tFrom == 212 && tTo == 224 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
        {
            result = 2;
        }
        else if ( mMYINFO[0].mLoginPremium == 2 || mMYINFO[0].mUseAvatar.aZone126Time > 0 || mMYINFO[0].mUseAvatar.aPremium > 0 || mMYINFO[0].mLoginPremium == 3 )
        {
            result = 1;
        }
        else
        {
            result = 2;
        }
    }
    else if ( tFrom == 222 && tTo == 210 || tFrom == 223 && tTo == 211 || tFrom == 224 && tTo == 212 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe )
            result = 2;
        else
            result = 1;
    }
    else if ( tFrom == 213 && tTo == 225 || tFrom == 214 && tTo == 226 || tFrom == 215 && tTo == 227 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 )
        {
            if ( mMYINFO[0].mLoginPremium == 2 || mMYINFO[0].mUseAvatar.aZone126Time > 0 || mMYINFO[0].mUseAvatar.aPremium > 0 || mMYINFO[0].mLoginPremium == 3 )
                result = 1;
            else
                result = 2;
        }
        else
        {
            result = 2;
        }
    }
    else if ( tFrom == 225 && tTo == 213 || tFrom == 226 && tTo == 214 || tFrom == 227 && tTo == 215 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 216 && tTo == 228 || tFrom == 217 && tTo == 229 || tFrom == 218 && tTo == 230 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 )
        {
            if ( mMYINFO[0].mLoginPremium == 2 || mMYINFO[0].mUseAvatar.aZone126Time > 0 || mMYINFO[0].mUseAvatar.aPremium > 0 || mMYINFO[0].mLoginPremium == 3 )
                result = 1;
            else
                result = 2;
        }
        else
        {
            result = 2;
        }
    }
    else if ( tFrom == 228 && tTo == 216 || tFrom == 229 && tTo == 217 || tFrom == 230 && tTo == 218 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 2 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 219 && tTo == 231 || tFrom == 220 && tTo == 232 || tFrom == 221 && tTo == 233 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 )
        {
            if ( mMYINFO[0].mLoginPremium == 2 || mMYINFO[0].mUseAvatar.aZone126Time > 0 || mMYINFO[0].mUseAvatar.aPremium > 0 || mMYINFO[0].mLoginPremium == 3 )
                result = 1;
            else
                result = 2;
        }
        else
        {
            result = 2;
        }
    }
    else if ( tFrom == 231 && tTo == 219 || tFrom == 232 && tTo == 220 || tFrom == 233 && tTo == 221 )
    {
        if ( mMYINFO[0].mUseAvatar.aTribe == 3 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 235 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone235Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 236 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone236Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 237 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone237Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 238 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone238Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 239 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone239Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 234 && tTo == 240 )
    {
        if ( mMYINFO[0].mUseAvatar.aZone240Time >= 1 )
            result = 1;
        else
            result = 2;
    }
    else if ( tFrom == 235 && tTo == 234 || tFrom == 236 && tTo == 234 || tFrom == 237 && tTo == 234 || tFrom == 238 && tTo == 234 || tFrom == 239 && tTo == 234 || tFrom == 240 && tTo == 234 )
    {
        result = 1;
    }
    else if ( tFrom == 74 && tTo == 303 || tFrom == 303 && tTo == 74 )
    {
        v107 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1;
        if ( v107 >= ZONEMAININFO::ReturnMinZoneLevelInfo(tTo) && (v108 = mMYINFO[0].mUseAvatar.aLevel2 + mMYINFO[0].mUseAvatar.aLevel1, v108 <= ZONEMAININFO::ReturnMaxZoneLevelInfo(tTo)) && mMYINFO[0].mUseAvatar.aRebirthNum == 12 && (mMYINFO[0].mUseAvatar.aTribe == mPLAY[0].mWorldInfo.mZone038WinTribe || PLAY::ReturnAllianceTribe(mMYINFO[0].mUseAvatar.aTribe) == mPLAY[0].mWorldInfo.mZone038WinTribe) )
            result = 1;
        else
            result = 2;
    }
    else
    {
        result = 0;
    }
    return result;
}

int __stdcall ZONEMOVEINFO::ReturnNextZone(int tZoneNumber, float tCoord[3])
{
    ZONEMOVEINFO *v2; // ecx
    ZONEMOVEINFO *v4; // [esp+0h] [ebp-8h]
    int i; // [esp+4h] [ebp-4h]

    v4 = v2;
    if ( tZoneNumber < 1 || tZoneNumber > 350 )
        return -1;
    for ( i = 0; i < v4->mDATA[tZoneNumber - 1].mNextZoneNum; ++i )
    {
        if ( UTIL::ReturnLengthXYZ(v4->mDATA[tZoneNumber - 1].mXYZ[i], tCoord) < 30.0 && ZONEMOVEINFO::ReturnMoveZone(tZoneNumber, v4->mDATA[tZoneNumber - 1].mNextZone[i]) == 1 )
            return v4->mDATA[tZoneNumber - 1].mNextZone[i];
    }
    return -1;
}

int __stdcall ZONEMOVEINFO::ReturnNextZoneAfterDeath(int tTribe, int tZoneNumber)
{
    int v2; // esi
    int result; // eax
    int v4; // [esp+4h] [ebp-18h]
    int v5; // [esp+8h] [ebp-14h]
    int v6; // [esp+Ch] [ebp-10h]
    int v7; // [esp+10h] [ebp-Ch]

    if ( ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber) == -1 )
        return tZoneNumber;
    if ( ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber) == tTribe )
        return tZoneNumber;
    v2 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
    if ( v2 == PLAY::ReturnAllianceTribe(tTribe) )
        return tZoneNumber;
    switch ( tTribe )
    {
        case 0:
            v7 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
            if ( v7 <= 0 || v7 > 3 )
                result = 1;
            else
                result = 38;
            break;
        case 1:
            v6 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
            if ( v6 && (v6 <= 1 || v6 > 3) )
                result = 6;
            else
                result = 38;
            break;
        case 2:
            v5 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
            if ( v5 >= 0 && (v5 <= 1 || v5 == 3) )
                result = 38;
            else
                result = 11;
            break;
        case 3:
            v4 = ZONEMAININFO::ReturnZoneTribeInfo1(tZoneNumber);
            if ( v4 < 0 || v4 > 2 )
                result = 140;
            else
                result = 38;
            break;
        default:
            result = 0;
            break;
    }
    return result;
}

void __stdcall ZONEMOVEINFO::DrawZonePortal(int tSort)
{
    ZONEMOVEINFO *v1; // ecx
    ZONEMOVEINFO *v2; // [esp+18h] [ebp-30h]
    float pFrame; // [esp+1Ch] [ebp-2Ch]
    float tCoord[3]; // [esp+20h] [ebp-28h] BYREF
    float tAngle[3]; // [esp+2Ch] [ebp-1Ch] BYREF
    int v6; // [esp+38h] [ebp-10h]
    int i; // [esp+3Ch] [ebp-Ch]
    int v8; // [esp+40h] [ebp-8h]
    int v9; // [esp+44h] [ebp-4h]

    v2 = v1;
    for ( i = 0; i < v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mNextZoneNum; ++i )
    {
        v9 = ZONEMOVEINFO::ReturnMoveZone(mMYINFO[0].mPresentZoneNumber, v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mNextZone[i]);
        if ( v9 )
        {
            if ( v9 == 1 )
            {
                if ( mMYINFO[0].mUseAvatar.aPreviousTribe )
                {
                    if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 1 )
                    {
                        v6 = 123;
                    }
                    else if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 2 )
                    {
                        v6 = 124;
                    }
                }
                else
                {
                    v6 = 122;
                }
            }
            else
            {
                v6 = 149;
            }
            v8 = GMOBJECT::GetTotalFrameNum(&mGDATA[0].mMOB_005[v6], 0);
            if ( v8 >= 1 )
            {
                pFrame = ((mApp[0].hPresentElapsedSeconds * 30.0) % v8);
                tCoord[0] = v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][0];
                tCoord[1] = v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][1];
                tCoord[2] = v2->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][2];
                memset(tAngle, 0, sizeof(tAngle));
                GMOBJECT::DisplayMObject(&mGDATA[0].mMOB_005[v6], tSort, pFrame, tCoord, tAngle, 0);
            }
        }
    }
}

void __stdcall ZONEMOVEINFO::DrawZonePortalForMinimap(int a2)
{
    ZONEMOVEINFO *v1; // ecx
    WORD v2; // ax
    WORD v3; // ax
    WORD v4; // ax
    WORD v5; // ax
    int v6; // [esp-4h] [ebp-74h]
    int v7; // [esp-4h] [ebp-74h]
    int v8; // [esp-4h] [ebp-74h]
    int v9; // [esp-4h] [ebp-74h]
    ZONEMOVEINFO *v10; // [esp+18h] [ebp-58h]
    int v11; // [esp+1Ch] [ebp-54h]
    signed int v12; // [esp+20h] [ebp-50h]
    signed int v13; // [esp+24h] [ebp-4Ch]
    int v14; // [esp+30h] [ebp-40h]
    int v15; // [esp+34h] [ebp-3Ch]
    float v16; // [esp+38h] [ebp-38h]
    float v17; // [esp+3Ch] [ebp-34h]
    float v18; // [esp+40h] [ebp-30h]
    float v19; // [esp+44h] [ebp-2Ch]
    int v20; // [esp+48h] [ebp-28h]
    int v21; // [esp+4Ch] [ebp-24h]
    int i; // [esp+50h] [ebp-20h]
    int v23; // [esp+54h] [ebp-1Ch]
    float v24; // [esp+5Ch] [ebp-14h]
    float v25; // [esp+5Ch] [ebp-14h]
    float v26; // [esp+5Ch] [ebp-14h]
    float v27; // [esp+5Ch] [ebp-14h]
    int v28; // [esp+60h] [ebp-10h]
    int v29; // [esp+64h] [ebp-Ch]
    int v30; // [esp+68h] [ebp-8h]
    int v31; // [esp+6Ch] [ebp-4h]

    v10 = v1;
    if ( a2 )
    {
        if ( a2 == 1 )
        {
            if ( mMYINFO[0].mUseAvatar.aPreviousTribe )
            {
                if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 1 )
                {
                    v15 = 1939;
                }
                else if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 2 )
                {
                    v15 = 1942;
                }
            }
            else
            {
                v15 = 1936;
            }
        }
        else if ( a2 == 2 )
        {
            if ( mMYINFO[0].mUseAvatar.aPreviousTribe )
            {
                if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 1 )
                {
                    v15 = 1940;
                }
                else if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 2 )
                {
                    v15 = 1943;
                }
            }
            else
            {
                v15 = 1937;
            }
        }
    }
    else if ( mMYINFO[0].mUseAvatar.aPreviousTribe )
    {
        if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 1 )
        {
            v15 = 1938;
        }
        else if ( mMYINFO[0].mUseAvatar.aPreviousTribe == 2 )
        {
            v15 = 1941;
        }
    }
    else
    {
        v15 = 1935;
    }
    v16 = mGDATA[0].mZONE.mWORLD.mQuadtree->mBoxMin[0];
    v17 = mGDATA[0].mZONE.mWORLD.mQuadtree->mBoxMax[0];
    v18 = -mGDATA[0].mZONE.mWORLD.mQuadtree->mBoxMax[2];
    v19 = -mGDATA[0].mZONE.mWORLD.mQuadtree->mBoxMin[2];
    v12 = mGDATA[0].mZONE.mMINIMAP[a2].mTextureInfo.Width;
    v13 = mGDATA[0].mZONE.mMINIMAP[a2].mTextureInfo.Height;
    v31 = mMYINFO[0].mScreenXSize - GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[241]);
    if ( a2 >= 0 )
    {
        if ( a2 <= 1 )
        {
            v24 = -mPLAY[0].mAVATAR_OBJECT[0].mDATA.aAction.aLocation[2];
            v11 = (v13 * (v24 - v18) / (v19 - v18));
            v21 = (v12 * (mPLAY[0].mAVATAR_OBJECT[0].mDATA.aAction.aLocation[0] - v16) / (v17 - v16)) - 72;
            if ( v21 >= 0 )
            {
                if ( v21 > v12 - 145 )
                    v21 = v12 - 145;
            }
            else
            {
                v21 = 0;
            }
            v30 = v11 - 64;
            if ( v11 - 64 >= 0 )
            {
                if ( v30 > v13 - 128 )
                    v30 = v13 - 128;
            }
            else
            {
                v30 = 0;
            }
            v23 = v21;
            v14 = v30;
        }
        else if ( a2 == 2 )
        {
            v23 = 0;
            v14 = 0;
        }
    }
    for ( i = 0; i < v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mNextZoneNum; ++i )
    {
        v28 = ZONEMOVEINFO::ReturnMoveZone(mMYINFO[0].mPresentZoneNumber, v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mNextZone[i]);
        if ( !v28 )
            continue;
        if ( a2 )
        {
            if ( a2 == 1 )
            {
                v26 = -v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][2];
                v20 = v31 + (v12 * (v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][0] - v16) / (v17 - v16)) + 4 - v23;
                v29 = (v13 * (v26 - v18) / (v19 - v18)) + 42 - v14;
                if ( v20 >= v31 + 4 && v20 <= v31 + 150 && v29 >= 42 && v29 <= 168 )
                {
                    if ( v28 != 1 )
                    {
                        v7 = v29 - GIMAGE2D::GetYSize(&mGDATA[0].mUI_MAIN[2418]) / 2;
                        v3 = GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[2418]);
                        GIMAGE2D::Display(&mGDATA[0].mUI_MAIN[2418], v20 - v3 / 2, v7);
                        continue;
                    }
                    goto LABEL_69;
                }
            }
            else if ( a2 == 2 )
            {
                v27 = -v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][2];
                v20 = v31 + (v12 * (v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][0] - v16) / (v17 - v16)) + 4 - v23;
                v29 = (v13 * (v27 - v18) / (v19 - v18)) + 42 - v14;
                if ( v20 >= v31 + 4 && v20 <= v31 + 150 && v29 >= 42 && v29 <= 168 )
                {
                    if ( v28 == 1 )
                        goto LABEL_69;
                    v9 = v29 - GIMAGE2D::GetYSize(&mGDATA[0].mUI_MAIN[2419]) / 2;
                    v5 = GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[2419]);
                    GIMAGE2D::Display(&mGDATA[0].mUI_MAIN[2419], v20 - v5 / 2, v9);
                }
            }
        }
        else
        {
            v25 = -v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][2];
            v20 = v31 + (v12 * (v10->mDATA[mMYINFO[0].mPresentZoneNumber - 1].mXYZ[i][0] - v16) / (v17 - v16)) + 4 - v23;
            v29 = (v13 * (v25 - v18) / (v19 - v18)) + 42 - v14;
            if ( v20 >= v31 + 4 && v20 <= v31 + 150 && v29 >= 42 && v29 <= 168 )
            {
                if ( v28 != 1 )
                {
                    v6 = v29 - GIMAGE2D::GetYSize(&mGDATA[0].mUI_MAIN[2417]) / 2;
                    v2 = GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[2417]);
                    GIMAGE2D::Display(&mGDATA[0].mUI_MAIN[2417], v20 - v2 / 2, v6);
                    continue;
                }
LABEL_69:
                v8 = v29 - GIMAGE2D::GetYSize(&mGDATA[0].mUI_MAIN[v15]) / 2;
                v4 = GIMAGE2D::GetXSize(&mGDATA[0].mUI_MAIN[v15]);
                GIMAGE2D::Display(&mGDATA[0].mUI_MAIN[v15], v20 - v4 / 2, v8);
                continue;
            }
        }
    }
}
lnwnuyhodd is offline  
Thanks
2 Users
Old 10/27/2022, 07:55   #2
 
elite*gold: 0
Join Date: Nov 2011
Posts: 129
Received Thanks: 173
Code:
BOOL __stdcall ZONEMOVEINFO::ReturnNPCTelepoterCoord1(int tZoneNumber, float tCoord[3])
{
    BOOL result; // eax

    switch ( tZoneNumber )
    {
        case 1:
            tCoord[0] = -295.0;
            tCoord[1] = 0.0;
            tCoord[2] = 900.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = 1399.0;
            tCoord[1] = -9.0;
            tCoord[2] = -3461.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = -4059.0;
            tCoord[1] = 0.0;
            tCoord[2] = 6075.0;
            result = 1;
            break;
        case 4:
            tCoord[0] = 496.0;
            tCoord[1] = 421.0;
            tCoord[2] = 5530.0;
            result = 1;
            break;
        case 6:
            tCoord[0] = -538.0;
            tCoord[1] = 48.0;
            tCoord[2] = -102.0;
            result = 1;
            break;
        case 7:
            tCoord[0] = -1073.0;
            tCoord[1] = 0.0;
            tCoord[2] = 4966.0;
            result = 1;
            break;
        case 8:
            tCoord[0] = 3972.0;
            tCoord[1] = 42.0;
            tCoord[2] = 8163.0;
            result = 1;
            break;
        case 9:
            tCoord[0] = -7755.0;
            tCoord[1] = -196.0;
            tCoord[2] = 3081.0;
            result = 1;
            break;
        case 11:
            tCoord[0] = 1537.0;
            tCoord[1] = 0.0;
            tCoord[2] = 35.0;
            result = 1;
            break;
        case 12:
            tCoord[0] = 5324.0;
            tCoord[1] = 3.0;
            tCoord[2] = 988.0;
            result = 1;
            break;
        case 13:
            tCoord[0] = -3103.0;
            tCoord[1] = 10.0;
            tCoord[2] = 5093.0;
            result = 1;
            break;
        case 14:
            tCoord[0] = 1078.0;
            tCoord[1] = 230.0;
            tCoord[2] = 5153.0;
            result = 1;
            break;
        case 37:
            tCoord[0] = -279.0;
            tCoord[1] = 0.0;
            tCoord[2] = -1594.0;
            result = 1;
            break;
        case 43:
        case 44:
        case 45:
            tCoord[0] = 4357.0;
            tCoord[1] = 0.0;
            tCoord[2] = 5823.0;
            result = 1;
            break;
        case 50:
LABEL_26:
            switch ( mMYINFO[0].mUseAvatar.aTribe )
            {
                case 0:
                    tCoord[0] = 190.0;
                    tCoord[1] = 10.0;
                    tCoord[2] = -1169.0;
                    result = 1;
                    break;
                case 1:
                    tCoord[0] = -11.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -417.0;
                    result = 1;
                    break;
                case 2:
                    tCoord[0] = -3.0;
                    tCoord[1] = 5.0;
                    tCoord[2] = 621.0;
                    result = 1;
                    break;
                case 3:
                    tCoord[0] = -264.0;
                    tCoord[1] = 8.0;
                    tCoord[2] = 1700.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_31;
            }
            break;
        case 52:
LABEL_31:
            switch ( mMYINFO[0].mUseAvatar.aTribe )
            {
                case 0:
                    tCoord[0] = 190.0;
                    tCoord[1] = 10.0;
                    tCoord[2] = -1169.0;
                    result = 1;
                    break;
                case 1:
                    tCoord[0] = -11.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -417.0;
                    result = 1;
                    break;
                case 2:
                    tCoord[0] = -3.0;
                    tCoord[1] = 5.0;
                    tCoord[2] = 621.0;
                    result = 1;
                    break;
                case 3:
                    tCoord[0] = -264.0;
                    tCoord[1] = 8.0;
                    tCoord[2] = 1700.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_36;
            }
            break;
        case 56:
        case 57:
        case 58:
            tCoord[0] = 3826.0;
            tCoord[1] = 0.0;
            tCoord[2] = -670.0;
            result = 1;
            break;
        case 140:
            tCoord[0] = 415.0;
            tCoord[1] = 0.0;
            tCoord[2] = -740.0;
            result = 1;
            break;
        case 141:
            tCoord[0] = 1905.0;
            tCoord[1] = 0.0;
            tCoord[2] = 4470.0;
            result = 1;
            break;
        case 142:
            tCoord[0] = 2048.0;
            tCoord[1] = 0.0;
            tCoord[2] = 5354.0;
            result = 1;
            break;
        case 143:
            tCoord[0] = -1145.0;
            tCoord[1] = -14.0;
            tCoord[2] = 4296.0;
            result = 1;
            break;
        case 170:
            switch ( mMYINFO[0].mUseAvatar.aTribe )
            {
                case 0:
                    tCoord[0] = 190.0;
                    tCoord[1] = 10.0;
                    tCoord[2] = -1169.0;
                    result = 1;
                    break;
                case 1:
                    tCoord[0] = -11.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -417.0;
                    result = 1;
                    break;
                case 2:
                    tCoord[0] = -3.0;
                    tCoord[1] = 5.0;
                    tCoord[2] = 621.0;
                    result = 1;
                    break;
                case 3:
                    tCoord[0] = -264.0;
                    tCoord[1] = 8.0;
                    tCoord[2] = 1700.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_26;
            }
            break;
        default:
LABEL_36:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnNPCTelepoterCoord2(int tTribe, int tZoneNumber, float tCoord[3])
{
    BOOL result; // eax
    float v4; // [esp+18h] [ebp-1B8h]
    float v5; // [esp+1Ch] [ebp-1B4h]
    float v6[107]; // [esp+20h] [ebp-1B0h]
    int v7; // [esp+1CCh] [ebp-4h]

    switch ( tTribe )
    {
        case 0:
            switch ( tZoneNumber )
            {
                case 5:
                    goto LABEL_39;
                case 19:
                case 25:
                case 31:
                case 175:
                case 178:
                case 182:
                case 186:
                case 190:
                    goto LABEL_24;
                case 38:
                    tCoord[0] = -1816.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 2431.0;
                    result = 1;
                    break;
                case 49:
                case 146:
                case 149:
                    tCoord[0] = 460.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 50:
                case 52:
                case 170:
                    tCoord[0] = 190.0;
                    tCoord[1] = 10.0;
                    tCoord[2] = -1169.0;
                    result = 1;
                    break;
                case 51:
                case 147:
                case 150:
                    tCoord[0] = 709.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 53:
                case 148:
                case 151:
                case 152:
                case 153:
                    tCoord[0] = 836.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 54:
                    tCoord[0] = 1588.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 1585.0;
                    result = 1;
                    break;
                case 55:
                    tCoord[0] = 15.0;
                    tCoord[1] = -25.0;
                    tCoord[2] = -5048.0;
                    result = 1;
                    break;
                case 71:
                    tCoord[0] = 7.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -150.0;
                    result = 1;
                    break;
                case 75:
                    tCoord[0] = 10890.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -216.0;
                    result = 1;
                    break;
                case 84:
                    tCoord[0] = -46.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -50.0;
                    result = 1;
                    break;
                case 85:
                case 86:
                case 87:
                case 99:
                case 100:
                case 195:
                case 196:
                case 197:
                case 198:
                case 199:
                    tCoord[0] = 2413.0;
                    tCoord[1] = -11.0;
                    tCoord[2] = 2525.0;
                    result = 1;
                    break;
                case 88:
                    tCoord[0] = 2520.0;
                    tCoord[1] = -1.0;
                    tCoord[2] = 2527.0;
                    result = 1;
                    break;
                case 89:
                    tCoord[0] = 4906.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = 4812.0;
                    result = 1;
                    break;
                case 90:
                    tCoord[0] = 754.0;
                    tCoord[1] = -292.0;
                    tCoord[2] = 1301.0;
                    result = 1;
                    break;
                case 101:
                    goto LABEL_8;
                case 104:
                case 110:
                case 251:
                case 259:
                    goto LABEL_147;
                case 105:
                case 111:
                case 252:
                case 260:
                    goto LABEL_148;
                case 118:
                case 339:
                    tCoord[0] = 5276.0;
                    tCoord[1] = 220.0;
                    tCoord[2] = 5283.0;
                    result = 1;
                    break;
                case 120:
                case 121:
                case 122:
                case 154:
                case 157:
                case 160:
                case 295:
                case 296:
                    tCoord[0] = 539.0;
                    tCoord[1] = 99.0;
                    tCoord[2] = 4181.0;
                    result = 1;
                    break;
                case 124:
                    goto LABEL_5;
                case 125:
                    tCoord[0] = 6261.0;
                    tCoord[1] = -17.0;
                    tCoord[2] = 3327.0;
                    result = 1;
                    break;
                case 126:
                case 127:
                case 128:
                case 129:
                case 210:
                case 211:
                case 212:
                    goto LABEL_16;
                case 155:
                case 158:
                case 161:
                    tCoord[0] = 789.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4183.0;
                    result = 1;
                    break;
                case 156:
                case 159:
                case 162:
                case 163:
                case 164:
                    tCoord[0] = 1037.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4184.0;
                    result = 1;
                    break;
                case 194:
                    tCoord[0] = 3.0;
                    tCoord[1] = 62.0;
                    tCoord[2] = -1315.0;
                    result = 1;
                    break;
                case 200:
                case 297:
                case 298:
                case 299:
                    tCoord[0] = 7886.0;
                    tCoord[1] = 9.0;
                    tCoord[2] = 7651.0;
                    result = 1;
                    break;
                case 201:
                    tCoord[0] = -9420.0;
                    tCoord[1] = -108.0;
                    tCoord[2] = -7665.0;
                    result = 1;
                    break;
                case 234:
                    goto LABEL_27;
                case 241:
                case 242:
                case 243:
                case 244:
                case 245:
                case 246:
                case 247:
                case 248:
                case 249:
                case 292:
                case 293:
                case 294:
                case 311:
                case 312:
                case 325:
                case 326:
                case 327:
                case 328:
                case 329:
                case 330:
                    goto LABEL_28;
                case 250:
                case 267:
                case 268:
                case 269:
                    tCoord[0] = 0.0;
                    tCoord[1] = 70.0;
                    tCoord[2] = -2804.0;
                    result = 1;
                    break;
                case 275:
                    goto LABEL_13;
                case 279:
                    goto LABEL_14;
                case 283:
                    goto LABEL_15;
                case 287:
                    goto LABEL_34;
                case 291:
                    if ( !strcmp(mPLAY[0].mWorldInfo.mGuildName1, mMYINFO[0].mUseAvatar.aGuildName) )
                    {
                        tCoord[0] = 1.0;
                        tCoord[1] = 238.0;
                        tCoord[2] = 7959.0;
                    }
                    else
                    {
                        tCoord[0] = -8.0;
                        tCoord[1] = 15.0;
                        tCoord[2] = -37.0;
                    }
                    result = 1;
                    break;
                case 302:
                case 345:
                    tCoord[0] = 5.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = 4896.0;
                    result = 1;
                    break;
                case 303:
                    goto LABEL_42;
                case 304:
                    goto LABEL_43;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    tCoord[0] = 57.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 6576.0;
                    result = 1;
                    break;
                case 324:
                    tCoord[0] = -1102.0;
                    tCoord[1] = 54.0;
                    tCoord[2] = 725.0;
                    result = 1;
                    break;
                case 340:
                    tCoord[0] = 3027.0;
                    tCoord[1] = -206.0;
                    tCoord[2] = 3186.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_171;
            }
            break;
        case 1:
            switch ( tZoneNumber )
            {
                case 10:
                    tCoord[0] = -56.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5479.0;
                    result = 1;
                    break;
                case 20:
                case 26:
                case 32:
                case 176:
                case 179:
                case 183:
                case 187:
                case 191:
                    tCoord[0] = -25.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5456.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 234.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 394.0;
                    result = 1;
                    break;
                case 49:
                case 146:
                case 149:
                    tCoord[0] = 0.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -60.0;
                    result = 1;
                    break;
                case 50:
                case 52:
                case 170:
                    tCoord[0] = -11.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -417.0;
                    result = 1;
                    break;
                case 51:
                case 147:
                case 150:
                    tCoord[0] = 0.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -309.0;
                    result = 1;
                    break;
                case 53:
                case 148:
                case 151:
                case 152:
                case 153:
                    tCoord[0] = 0.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -442.0;
                    result = 1;
                    break;
                case 54:
                    tCoord[0] = -1594.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 1594.0;
                    result = 1;
                    break;
                case 55:
                    tCoord[0] = 2224.0;
                    tCoord[1] = -15.0;
                    tCoord[2] = -4951.0;
                    result = 1;
                    break;
                case 72:
                    tCoord[0] = -1.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -369.0;
                    result = 1;
                    break;
                case 75:
                    tCoord[0] = 253.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 13.0;
                    result = 1;
                    break;
                case 84:
                    tCoord[0] = -3965.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 4552.0;
                    result = 1;
                    break;
                case 85:
                case 86:
                case 87:
                case 99:
                case 100:
                case 195:
                case 196:
                case 197:
                case 198:
                case 199:
                    tCoord[0] = -1.0;
                    tCoord[1] = -11.0;
                    tCoord[2] = 111.0;
                    result = 1;
                    break;
                case 88:
                    tCoord[0] = 3.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -3.0;
                    result = 1;
                    break;
                case 89:
                    tCoord[0] = 54.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = -125.0;
                    result = 1;
                    break;
                case 90:
                    tCoord[0] = -6728.0;
                    tCoord[1] = -291.0;
                    tCoord[2] = 7443.0;
                    result = 1;
                    break;
                case 102:
                    tCoord[0] = 6689.0;
                    tCoord[1] = 12.0;
                    tCoord[2] = 1258.0;
                    result = 1;
                    break;
                case 106:
                case 112:
                case 253:
                case 261:
                    tCoord[0] = 6398.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6409.0;
                    result = 1;
                    break;
                case 107:
                case 113:
                case 254:
                case 262:
                    tCoord[0] = 6402.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6377.0;
                    result = 1;
                    break;
                case 118:
                case 339:
                    tCoord[0] = 5288.0;
                    tCoord[1] = 220.0;
                    tCoord[2] = -5272.0;
                    result = 1;
                    break;
                case 120:
                case 121:
                case 122:
                case 154:
                case 157:
                case 160:
                case 295:
                case 296:
                    tCoord[0] = 52.0;
                    tCoord[1] = 99.0;
                    tCoord[2] = 3708.0;
                    result = 1;
                    break;
                case 124:
                    tCoord[0] = -2.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = -370.0;
                    result = 1;
                    break;
                case 125:
                    tCoord[0] = 3042.0;
                    tCoord[1] = -7.0;
                    tCoord[2] = 178.0;
                    result = 1;
                    break;
                case 130:
                case 131:
                case 132:
                case 133:
                case 213:
                case 214:
                case 215:
                    tCoord[0] = 6244.0;
                    tCoord[1] = -46.0;
                    tCoord[2] = 59.0;
                    result = 1;
                    break;
                case 155:
                case 158:
                case 161:
                    tCoord[0] = 52.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 3457.0;
                    result = 1;
                    break;
                case 156:
                case 159:
                case 162:
                case 163:
                case 164:
                    tCoord[0] = 51.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 3212.0;
                    result = 1;
                    break;
                case 194:
                    tCoord[0] = -1316.0;
                    tCoord[1] = 62.0;
                    tCoord[2] = 0.0;
                    result = 1;
                    break;
                case 200:
                case 297:
                case 298:
                case 299:
                    tCoord[0] = 9.0;
                    tCoord[1] = 9.0;
                    tCoord[2] = -175.0;
                    result = 1;
                    break;
                case 201:
                    tCoord[0] = -3762.0;
                    tCoord[1] = -108.0;
                    tCoord[2] = -12454.0;
                    result = 1;
                    break;
                case 234:
                    tCoord[0] = -8.0;
                    tCoord[1] = -178.0;
                    tCoord[2] = -5209.0;
                    result = 1;
                    break;
                case 241:
                case 242:
                case 243:
                case 244:
                case 245:
                case 246:
                case 247:
                case 248:
                case 249:
                case 292:
                case 293:
                case 294:
                case 311:
                case 312:
                case 325:
                case 326:
                case 327:
                case 328:
                case 329:
                case 330:
                    tCoord[0] = -1.0;
                    tCoord[1] = 20.0;
                    tCoord[2] = 831.0;
                    result = 1;
                    break;
                case 250:
                case 267:
                case 268:
                case 269:
                    tCoord[0] = -2798.0;
                    tCoord[1] = 70.0;
                    tCoord[2] = 2.0;
                    result = 1;
                    break;
                case 276:
                    tCoord[0] = 17.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 189.0;
                    result = 1;
                    break;
                case 280:
                    tCoord[0] = -5.0;
                    tCoord[1] = 58.0;
                    tCoord[2] = -3836.0;
                    result = 1;
                    break;
                case 284:
                    tCoord[0] = -22.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 47.0;
                    result = 1;
                    break;
                case 288:
                    tCoord[0] = 3281.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 434.0;
                    result = 1;
                    break;
                case 291:
                    if ( !strcmp(mPLAY[0].mWorldInfo.mGuildName1, mMYINFO[0].mUseAvatar.aGuildName) )
                    {
                        tCoord[0] = 1.0;
                        tCoord[1] = 238.0;
                        tCoord[2] = 7959.0;
                    }
                    else
                    {
                        tCoord[0] = -8.0;
                        tCoord[1] = 15.0;
                        tCoord[2] = -37.0;
                    }
                    result = 1;
                    break;
                case 302:
                case 345:
                    tCoord[0] = 3.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -4930.0;
                    result = 1;
                    break;
                case 303:
                    tCoord[0] = -1547.0;
                    tCoord[1] = -17.0;
                    tCoord[2] = -2050.0;
                    result = 1;
                    break;
                case 305:
                    tCoord[0] = -4180.0;
                    tCoord[1] = 85.0;
                    tCoord[2] = 4127.0;
                    result = 1;
                    break;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    tCoord[0] = 2457.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4190.0;
                    result = 1;
                    break;
                case 324:
                    tCoord[0] = 1102.0;
                    tCoord[1] = 54.0;
                    tCoord[2] = 724.0;
                    result = 1;
                    break;
                case 340:
                    tCoord[0] = 3003.0;
                    tCoord[1] = -205.0;
                    tCoord[2] = -3223.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_171;
            }
            break;
        case 2:
            switch ( tZoneNumber )
            {
                case 15:
                    tCoord[0] = -56.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5479.0;
                    result = 1;
                    break;
                case 21:
                case 27:
                case 33:
                case 177:
                case 180:
                case 184:
                case 188:
                case 192:
                    tCoord[0] = -25.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5456.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 2500.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 337.0;
                    result = 1;
                    break;
                case 49:
                case 146:
                case 149:
                    tCoord[0] = -459.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 50:
                case 52:
                case 170:
                    tCoord[0] = -3.0;
                    tCoord[1] = 5.0;
                    tCoord[2] = 621.0;
                    result = 1;
                    break;
                case 51:
                case 147:
                case 150:
                    tCoord[0] = -709.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 53:
                case 148:
                case 151:
                case 152:
                case 153:
                    tCoord[0] = -832.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 400.0;
                    result = 1;
                    break;
                case 54:
                    tCoord[0] = -1574.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -1572.0;
                    result = 1;
                    break;
                case 55:
                    tCoord[0] = -2037.0;
                    tCoord[1] = -3.0;
                    tCoord[2] = -4816.0;
                    result = 1;
                    break;
                case 73:
                    tCoord[0] = 6.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -305.0;
                    result = 1;
                    break;
                case 75:
                    tCoord[0] = 487.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 10649.0;
                    result = 1;
                    break;
                case 84:
                    tCoord[0] = 4555.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 5249.0;
                    result = 1;
                    break;
                case 85:
                case 86:
                case 87:
                case 99:
                case 100:
                case 195:
                case 196:
                case 197:
                case 198:
                case 199:
                    tCoord[0] = -2406.0;
                    tCoord[1] = -11.0;
                    tCoord[2] = 2512.0;
                    result = 1;
                    break;
                case 88:
                    tCoord[0] = -2522.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 2520.0;
                    result = 1;
                    break;
                case 89:
                    tCoord[0] = -5079.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = 4769.0;
                    result = 1;
                    break;
                case 90:
                    tCoord[0] = -632.0;
                    tCoord[1] = -295.0;
                    tCoord[2] = 14900.0;
                    result = 1;
                    break;
                case 103:
                    tCoord[0] = 6689.0;
                    tCoord[1] = 12.0;
                    tCoord[2] = 1258.0;
                    result = 1;
                    break;
                case 108:
                case 114:
                case 255:
                case 263:
                    tCoord[0] = 6398.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6409.0;
                    result = 1;
                    break;
                case 109:
                case 115:
                case 256:
                case 264:
                    tCoord[0] = 6402.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6377.0;
                    result = 1;
                    break;
                case 118:
                case 339:
                    tCoord[0] = -5275.0;
                    tCoord[1] = 220.0;
                    tCoord[2] = -5288.0;
                    result = 1;
                    break;
                case 120:
                case 121:
                case 122:
                case 154:
                case 157:
                case 160:
                case 295:
                case 296:
                    tCoord[0] = -423.0;
                    tCoord[1] = 99.0;
                    tCoord[2] = 4199.0;
                    result = 1;
                    break;
                case 124:
                    tCoord[0] = -2.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = -370.0;
                    result = 1;
                    break;
                case 125:
                    tCoord[0] = 13.0;
                    tCoord[1] = -7.0;
                    tCoord[2] = 145.0;
                    result = 1;
                    break;
                case 134:
                case 135:
                case 136:
                case 137:
                case 216:
                case 217:
                case 218:
                    tCoord[0] = 6244.0;
                    tCoord[1] = -46.0;
                    tCoord[2] = 59.0;
                    result = 1;
                    break;
                case 155:
                case 158:
                case 161:
                    tCoord[0] = -673.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4197.0;
                    result = 1;
                    break;
                case 156:
                case 159:
                case 162:
                case 163:
                case 164:
                    tCoord[0] = -921.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4197.0;
                    result = 1;
                    break;
                case 194:
                    tCoord[0] = 0.0;
                    tCoord[1] = 62.0;
                    tCoord[2] = 1324.0;
                    result = 1;
                    break;
                case 200:
                case 297:
                case 298:
                case 299:
                    tCoord[0] = -7834.0;
                    tCoord[1] = 9.0;
                    tCoord[2] = 7654.0;
                    result = 1;
                    break;
                case 201:
                    tCoord[0] = 3642.0;
                    tCoord[1] = -108.0;
                    tCoord[2] = -12501.0;
                    result = 1;
                    break;
                case 234:
                    tCoord[0] = -8.0;
                    tCoord[1] = -178.0;
                    tCoord[2] = -5209.0;
                    result = 1;
                    break;
                case 241:
                case 242:
                case 243:
                case 244:
                case 245:
                case 246:
                case 247:
                case 248:
                case 249:
                case 292:
                case 293:
                case 294:
                case 311:
                case 312:
                case 325:
                case 326:
                case 327:
                case 328:
                case 329:
                case 330:
                    tCoord[0] = -1.0;
                    tCoord[1] = 20.0;
                    tCoord[2] = 831.0;
                    result = 1;
                    break;
                case 250:
                case 267:
                case 268:
                case 269:
                    tCoord[0] = 2793.0;
                    tCoord[1] = 70.0;
                    tCoord[2] = 0.0;
                    result = 1;
                    break;
                case 277:
                    tCoord[0] = 17.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 189.0;
                    result = 1;
                    break;
                case 281:
                    tCoord[0] = -5.0;
                    tCoord[1] = 58.0;
                    tCoord[2] = -3836.0;
                    result = 1;
                    break;
                case 285:
                    tCoord[0] = -22.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 47.0;
                    result = 1;
                    break;
                case 289:
                    tCoord[0] = 3281.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 434.0;
                    result = 1;
                    break;
                case 291:
                    if ( !strcmp(mPLAY[0].mWorldInfo.mGuildName1, mMYINFO[0].mUseAvatar.aGuildName) )
                    {
                        tCoord[0] = 1.0;
                        tCoord[1] = 238.0;
                        tCoord[2] = 7959.0;
                    }
                    else
                    {
                        tCoord[0] = -8.0;
                        tCoord[1] = 15.0;
                        tCoord[2] = -37.0;
                    }
                    result = 1;
                    break;
                case 302:
                case 345:
                    tCoord[0] = -4862.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = -11.0;
                    result = 1;
                    break;
                case 303:
                    tCoord[0] = -1547.0;
                    tCoord[1] = -17.0;
                    tCoord[2] = -2050.0;
                    result = 1;
                    break;
                case 306:
                    tCoord[0] = -4180.0;
                    tCoord[1] = 85.0;
                    tCoord[2] = 4127.0;
                    result = 1;
                    break;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    tCoord[0] = 58.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 1789.0;
                    result = 1;
                    break;
                case 324:
                    tCoord[0] = 1100.0;
                    tCoord[1] = 54.0;
                    tCoord[2] = -780.0;
                    result = 1;
                    break;
                case 340:
                    tCoord[0] = -3411.0;
                    tCoord[1] = -203.0;
                    tCoord[2] = -3214.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_171;
            }
            break;
        case 3:
            switch ( tZoneNumber )
            {
                case 34:
                case 35:
                case 36:
                case 181:
                case 185:
                case 189:
                case 193:
LABEL_24:
                    tCoord[0] = -25.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5456.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 4611.0;
                    tCoord[1] = 161.0;
                    tCoord[2] = 2458.0;
                    result = 1;
                    break;
                case 50:
                case 52:
                case 170:
                    tCoord[0] = -264.0;
                    tCoord[1] = 8.0;
                    tCoord[2] = 1700.0;
                    result = 1;
                    break;
                case 54:
                    tCoord[0] = 1585.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -1586.0;
                    result = 1;
                    break;
                case 55:
                    tCoord[0] = -3060.0;
                    tCoord[1] = 11.0;
                    tCoord[2] = -2245.0;
                    result = 1;
                    break;
                case 75:
                    tCoord[0] = 11064.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 10412.0;
                    result = 1;
                    break;
                case 84:
                    tCoord[0] = 359.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 9449.0;
                    result = 1;
                    break;
                case 85:
                case 86:
                case 87:
                case 99:
                case 100:
                case 196:
                case 197:
                case 198:
                case 199:
                    tCoord[0] = -9.0;
                    tCoord[1] = -11.0;
                    tCoord[2] = 4929.0;
                    result = 1;
                    break;
                case 88:
                    tCoord[0] = 0.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 5039.0;
                    result = 1;
                    break;
                case 89:
                    tCoord[0] = -9.0;
                    tCoord[1] = 40.0;
                    tCoord[2] = 9381.0;
                    result = 1;
                    break;
                case 90:
                    tCoord[0] = 6841.0;
                    tCoord[1] = -289.0;
                    tCoord[2] = 8767.0;
                    result = 1;
                    break;
                case 116:
                case 168:
                case 257:
                case 265:
LABEL_147:
                    tCoord[0] = 6398.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6409.0;
                    result = 1;
                    break;
                case 117:
                case 169:
                case 258:
                case 266:
LABEL_148:
                    tCoord[0] = 6402.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 6377.0;
                    result = 1;
                    break;
                case 118:
                case 339:
                    tCoord[0] = -5289.0;
                    tCoord[1] = 220.0;
                    tCoord[2] = 5273.0;
                    result = 1;
                    break;
                case 120:
                case 121:
                case 122:
                case 154:
                case 157:
                case 160:
                case 295:
                case 296:
                    tCoord[0] = 67.0;
                    tCoord[1] = 99.0;
                    tCoord[2] = 4671.0;
                    result = 1;
                    break;
                case 123:
LABEL_39:
                    tCoord[0] = -56.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -5479.0;
                    result = 1;
                    break;
                case 124:
LABEL_5:
                    tCoord[0] = -2.0;
                    tCoord[1] = 36.0;
                    tCoord[2] = -370.0;
                    result = 1;
                    break;
                case 125:
                    tCoord[0] = -3380.0;
                    tCoord[1] = -9.0;
                    tCoord[2] = 3197.0;
                    result = 1;
                    break;
                case 155:
                case 158:
                case 161:
                    tCoord[0] = 64.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4922.0;
                    result = 1;
                    break;
                case 156:
                case 159:
                case 162:
                case 163:
                case 164:
                    tCoord[0] = 65.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 5169.0;
                    result = 1;
                    break;
                case 167:
LABEL_8:
                    tCoord[0] = 6689.0;
                    tCoord[1] = 12.0;
                    tCoord[2] = 1258.0;
                    result = 1;
                    break;
                case 171:
                case 172:
                case 173:
                case 174:
                case 219:
                case 220:
                case 221:
LABEL_16:
                    tCoord[0] = 6244.0;
                    tCoord[1] = -46.0;
                    tCoord[2] = 59.0;
                    result = 1;
                    break;
                case 194:
                    tCoord[0] = 1333.0;
                    tCoord[1] = 62.0;
                    tCoord[2] = 1.0;
                    result = 1;
                    break;
                case 200:
                case 297:
                case 298:
                case 299:
                    tCoord[0] = 25.0;
                    tCoord[1] = 9.0;
                    tCoord[2] = 15453.0;
                    result = 1;
                    break;
                case 201:
                    tCoord[0] = 9349.0;
                    tCoord[1] = -108.0;
                    tCoord[2] = -7776.0;
                    result = 1;
                    break;
                case 234:
LABEL_27:
                    tCoord[0] = -8.0;
                    tCoord[1] = -178.0;
                    tCoord[2] = -5209.0;
                    result = 1;
                    break;
                case 241:
                case 242:
                case 243:
                case 244:
                case 245:
                case 246:
                case 247:
                case 248:
                case 249:
                case 292:
                case 293:
                case 294:
                case 311:
                case 312:
                case 325:
                case 326:
                case 327:
                case 328:
                case 329:
                case 330:
LABEL_28:
                    tCoord[0] = -1.0;
                    tCoord[1] = 20.0;
                    tCoord[2] = 831.0;
                    result = 1;
                    break;
                case 250:
                case 268:
                case 269:
                    tCoord[0] = 0.0;
                    tCoord[1] = 70.0;
                    tCoord[2] = 2794.0;
                    result = 1;
                    break;
                case 278:
LABEL_13:
                    tCoord[0] = 17.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 189.0;
                    result = 1;
                    break;
                case 282:
LABEL_14:
                    tCoord[0] = -5.0;
                    tCoord[1] = 58.0;
                    tCoord[2] = -3836.0;
                    result = 1;
                    break;
                case 286:
LABEL_15:
                    tCoord[0] = -22.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 47.0;
                    result = 1;
                    break;
                case 290:
LABEL_34:
                    tCoord[0] = 3281.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 434.0;
                    result = 1;
                    break;
                case 291:
                    if ( !strcmp(mPLAY[0].mWorldInfo.mGuildName1, mMYINFO[0].mUseAvatar.aGuildName) )
                    {
                        tCoord[0] = 1.0;
                        tCoord[1] = 238.0;
                        tCoord[2] = 7959.0;
                    }
                    else
                    {
                        tCoord[0] = -8.0;
                        tCoord[1] = 15.0;
                        tCoord[2] = -37.0;
                    }
                    result = 1;
                    break;
                case 302:
                case 345:
                    tCoord[0] = 4882.0;
                    tCoord[1] = 15.0;
                    tCoord[2] = 0.0;
                    result = 1;
                    break;
                case 303:
LABEL_42:
                    tCoord[0] = -1547.0;
                    tCoord[1] = -17.0;
                    tCoord[2] = -2050.0;
                    result = 1;
                    break;
                case 307:
LABEL_43:
                    tCoord[0] = -4180.0;
                    tCoord[1] = 85.0;
                    tCoord[2] = 4127.0;
                    result = 1;
                    break;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    tCoord[0] = -2342.0;
                    tCoord[1] = 104.0;
                    tCoord[2] = 4190.0;
                    result = 1;
                    break;
                case 324:
                    tCoord[0] = -1105.0;
                    tCoord[1] = 54.0;
                    tCoord[2] = -784.0;
                    result = 1;
                    break;
                case 340:
                    tCoord[0] = -3382.0;
                    tCoord[1] = -205.0;
                    tCoord[2] = 3244.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_171;
            }
            break;
        default:
LABEL_171:
            if ( tZoneNumber == 341 )
            {
                v4 = 4168.0;
                v5 = 237.0;
                v6[0] = 5115.0;
                v6[1] = 3144.0;
                v6[2] = 193.0;
                v6[3] = 3894.0;
                v6[4] = 4201.0;
                v6[5] = 490.0;
                v6[6] = 3352.0;
                v6[7] = 1222.0;
                v6[8] = -15.0;
                v6[9] = 4460.0;
                v6[10] = 1292.0;
                v6[11] = -15.0;
                v6[12] = 3145.0;
                v6[13] = 882.0;
                v6[14] = -10.0;
                v6[15] = 2053.0;
                v6[16] = 882.0;
                v6[17] = -10.0;
                v6[18] = 2053.0;
                v6[19] = 3012.0;
                v6[20] = 9.0;
                v6[21] = 986.0;
                v6[22] = 1740.0;
                v6[23] = -3.0;
                v6[24] = 2334.0;
                v6[25] = 5268.0;
                v6[26] = 237.0;
                v6[27] = -4057.0;
                v6[28] = 3845.0;
                v6[29] = 187.0;
                v6[30] = -3114.0;
                v6[31] = 2994.0;
                v6[32] = 202.0;
                v6[33] = -3081.0;
                v6[34] = 4286.0;
                v6[35] = -17.0;
                v6[36] = -943.0;
                v6[37] = 2199.0;
                v6[38] = 116.0;
                v6[39] = -3197.0;
                v6[40] = 2344.0;
                v6[41] = -4.0;
                v6[42] = -1774.0;
                v6[43] = 2076.0;
                v6[44] = -16.0;
                v6[45] = -709.0;
                v6[46] = 1047.0;
                v6[47] = 9.0;
                v6[48] = -3034.0;
                v6[49] = 962.0;
                v6[50] = -17.0;
                v6[51] = -1470.0;
                v6[52] = -4093.0;
                v6[53] = 237.0;
                v6[54] = -5160.0;
                v6[55] = -2952.0;
                v6[56] = 299.0;
                v6[57] = -5124.0;
                v6[58] = -3099.0;
                v6[59] = 185.0;
                v6[60] = -4242.0;
                v6[61] = -4266.0;
                v6[62] = 398.0;
                v6[63] = -4029.0;
                v6[64] = -3166.0;
                v6[65] = 202.0;
                v6[66] = -2994.0;
                v6[67] = -4347.0;
                v6[68] = 396.0;
                v6[69] = -2544.0;
                v6[70] = -3258.0;
                v6[71] = 112.0;
                v6[72] = -2163.0;
                v6[73] = -1695.0;
                v6[74] = -5.0;
                v6[75] = -2302.0;
                v6[76] = -2944.0;
                v6[77] = 9.0;
                v6[78] = -1018.0;
                v6[79] = -2726.0;
                v6[80] = -2.0;
                v6[81] = 930.0;
                v6[82] = -1833.0;
                v6[83] = -25.0;
                v6[84] = 1643.0;
                v6[85] = -2496.0;
                v6[86] = 186.0;
                v6[87] = 2935.0;
                v6[88] = -3130.0;
                v6[89] = 205.0;
                v6[90] = 3141.0;
                v6[91] = -4264.0;
                v6[92] = 188.0;
                v6[93] = 3565.0;
                v6[94] = -982.0;
                v6[95] = 9.0;
                v6[96] = 2948.0;
                v6[97] = -1609.0;
                v6[98] = 440.0;
                v6[99] = 3702.0;
                v6[100] = -292.0;
                v6[101] = -17.0;
                v6[102] = 2370.0;
                v6[103] = -4973.0;
                v6[104] = 293.0;
                v6[105] = 2795.0;
                v7 = rand() % 36;
                tCoord[0] = *(&v4 + 3 * v7);
                tCoord[1] = *(&v5 + 3 * v7);
                tCoord[2] = v6[3 * v7];
                result = 1;
            }
            else
            {
                tCoord[0] = 0.0;
                tCoord[1] = 0.0;
                tCoord[2] = 0.0;
                result = 0;
            }
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnLevelBattleGateCoord(int tSort, int tZoneNumber, float *tZoneCoord)
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            if ( tZoneNumber > 323 )
                goto LABEL_98;
            if ( tZoneNumber >= 319 )
            {
                *tZoneCoord = 56.91;
                tZoneCoord[1] = 104.19;
                tZoneCoord[2] = 5668.4502;
                tZoneCoord[3] = 0.0;
                result = 1;
            }
            else
            {
                switch ( tZoneNumber )
                {
                    case 49:
                        *tZoneCoord = 197.03;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 399.82001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 51:
                        *tZoneCoord = 451.76001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.88;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 53:
                    case 152:
                        *tZoneCoord = 700.51001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.92999;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 91:
                        *tZoneCoord = 605.96997;
                        tZoneCoord[1] = -3.9100001;
                        tZoneCoord[2] = 3569.77;
                        tZoneCoord[3] = 45.0;
                        result = 1;
                        break;
                    case 93:
                        *tZoneCoord = 2858.6201;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 4193.9302;
                        tZoneCoord[3] = 180.0;
                        result = 1;
                        break;
                    case 120:
                    case 160:
                        *tZoneCoord = 257.23999;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 4190.1299;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 121:
                    case 154:
                        *tZoneCoord = 257.23999;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 4190.1299;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 122:
                    case 157:
                    case 295:
                    case 296:
                        *tZoneCoord = 257.23999;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 4190.1299;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 146:
                        *tZoneCoord = 197.03;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 399.82001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 147:
                        *tZoneCoord = 451.76001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.88;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 148:
                    case 153:
                        *tZoneCoord = 700.51001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.92999;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 149:
                        *tZoneCoord = 197.03;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 399.82001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 150:
                        *tZoneCoord = 451.76001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.88;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 151:
                        *tZoneCoord = 700.51001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.92999;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 155:
                        *tZoneCoord = 521.54999;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4188.77;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 156:
                    case 163:
                        *tZoneCoord = 622.89001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5298;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 158:
                        *tZoneCoord = 521.54999;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4188.77;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 159:
                    case 164:
                        *tZoneCoord = 622.89001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5298;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 161:
                        *tZoneCoord = 521.54999;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4188.77;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 162:
                        *tZoneCoord = 622.89001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5298;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 250:
                        *tZoneCoord = -0.12;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = -2364.4299;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 267:
                    case 268:
                    case 269:
                        *tZoneCoord = -0.12;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = -2364.4299;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    default:
                        goto LABEL_98;
                }
            }
            break;
        case 1:
            if ( tZoneNumber > 323 )
                goto LABEL_98;
            if ( tZoneNumber >= 319 )
            {
                *tZoneCoord = 1527.5601;
                tZoneCoord[1] = 104.19;
                tZoneCoord[2] = 4187.8198;
                tZoneCoord[3] = 90.0;
                result = 1;
            }
            else
            {
                switch ( tZoneNumber )
                {
                    case 49:
                        *tZoneCoord = 0.5;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 200.60001;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 51:
                        *tZoneCoord = -0.22;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -52.889999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 53:
                    case 152:
                        *tZoneCoord = 0.37;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -300.35999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 91:
                        *tZoneCoord = 594.53998;
                        tZoneCoord[1] = -3.9100001;
                        tZoneCoord[2] = 577.85999;
                        tZoneCoord[3] = -45.0;
                        result = 1;
                        break;
                    case 93:
                        *tZoneCoord = 61.220001;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 1392.04;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 120:
                    case 160:
                        *tZoneCoord = 58.0;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 3991.0601;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 121:
                    case 154:
                        *tZoneCoord = 58.0;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 3991.0601;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 122:
                    case 157:
                    case 295:
                    case 296:
                        *tZoneCoord = 58.0;
                        tZoneCoord[1] = 99.879997;
                        tZoneCoord[2] = 3991.0601;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 146:
                        *tZoneCoord = 0.5;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 200.60001;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 147:
                        *tZoneCoord = -0.22;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -52.889999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 148:
                    case 153:
                        *tZoneCoord = 0.37;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -300.35999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 149:
                        *tZoneCoord = 0.5;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 200.60001;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 150:
                        *tZoneCoord = -0.22;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -52.889999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 151:
                        *tZoneCoord = 0.37;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = -300.35999;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 155:
                        *tZoneCoord = 58.700001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3726.6201;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 156:
                    case 163:
                        *tZoneCoord = 57.880001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3626.5901;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 158:
                        *tZoneCoord = 58.700001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3726.6201;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 159:
                    case 164:
                        *tZoneCoord = 57.880001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3626.5901;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 161:
                        *tZoneCoord = 58.700001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3726.6201;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 162:
                        *tZoneCoord = 57.880001;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 3626.5901;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 250:
                        *tZoneCoord = -2363.3701;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = 0.050000001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 267:
                    case 268:
                    case 269:
                        *tZoneCoord = -2363.3701;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = 0.050000001;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    default:
                        goto LABEL_98;
                }
            }
            break;
        case 2:
            if ( tZoneNumber > 323 )
                goto LABEL_98;
            if ( tZoneNumber >= 319 )
            {
                *tZoneCoord = 55.810001;
                tZoneCoord[1] = 104.19;
                tZoneCoord[2] = 2709.6499;
                tZoneCoord[3] = 0.0;
                result = 1;
            }
            else
            {
                switch ( tZoneNumber )
                {
                    case 49:
                        *tZoneCoord = -197.39;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 401.01001;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 51:
                        *tZoneCoord = -450.92999;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.73999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 53:
                    case 152:
                        *tZoneCoord = -699.28998;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 400.20999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 91:
                        *tZoneCoord = 6227.2998;
                        tZoneCoord[1] = -3.9100001;
                        tZoneCoord[2] = 579.04999;
                        tZoneCoord[3] = -225.0;
                        result = 1;
                        break;
                    case 93:
                        *tZoneCoord = -2740.5901;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 4188.3701;
                        tZoneCoord[3] = 0.0;
                        result = 1;
                        break;
                    case 120:
                    case 160:
                        *tZoneCoord = -139.82001;
                        tZoneCoord[1] = 99.959999;
                        tZoneCoord[2] = 4190.21;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 121:
                    case 154:
                        *tZoneCoord = -139.82001;
                        tZoneCoord[1] = 99.959999;
                        tZoneCoord[2] = 4190.21;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 122:
                    case 157:
                    case 295:
                    case 296:
                        *tZoneCoord = -139.82001;
                        tZoneCoord[1] = 99.959999;
                        tZoneCoord[2] = 4190.21;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 146:
                        *tZoneCoord = -197.39;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 401.01001;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 147:
                        *tZoneCoord = -450.92999;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.73999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 148:
                    case 153:
                        *tZoneCoord = -699.28998;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 400.20999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 149:
                        *tZoneCoord = -197.39;
                        tZoneCoord[1] = 0.43000001;
                        tZoneCoord[2] = 401.01001;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 150:
                        *tZoneCoord = -450.92999;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 399.73999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 151:
                        *tZoneCoord = -699.28998;
                        tZoneCoord[1] = 0.0;
                        tZoneCoord[2] = 400.20999;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 155:
                        *tZoneCoord = -405.56;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5698;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 156:
                    case 163:
                        *tZoneCoord = -504.25;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4192.2002;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 158:
                        *tZoneCoord = -405.56;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5698;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 159:
                    case 164:
                        *tZoneCoord = -504.25;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4192.2002;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 161:
                        *tZoneCoord = -405.56;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4190.5698;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 162:
                        *tZoneCoord = -504.25;
                        tZoneCoord[1] = 104.19;
                        tZoneCoord[2] = 4192.2002;
                        tZoneCoord[3] = 90.0;
                        result = 1;
                        break;
                    case 250:
                        *tZoneCoord = 2363.01;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = 0.2;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    case 267:
                    case 268:
                    case 269:
                        *tZoneCoord = 2363.01;
                        tZoneCoord[1] = 70.68;
                        tZoneCoord[2] = 0.2;
                        tZoneCoord[3] = -90.0;
                        result = 1;
                        break;
                    default:
                        goto LABEL_98;
                }
            }
            break;
        case 3:
            switch ( tZoneNumber )
            {
                case 91:
                    *tZoneCoord = 6227.52;
                    tZoneCoord[1] = -3.9100001;
                    tZoneCoord[2] = 3579.8999;
                    tZoneCoord[3] = -225.0;
                    result = 1;
                    break;
                case 120:
                case 157:
                    *tZoneCoord = 58.259998;
                    tZoneCoord[1] = 100.1;
                    tZoneCoord[2] = 4388.27;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 121:
                case 160:
                    *tZoneCoord = 58.259998;
                    tZoneCoord[1] = 100.1;
                    tZoneCoord[2] = 4388.27;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 122:
                case 154:
                case 295:
                case 296:
                    *tZoneCoord = 58.259998;
                    tZoneCoord[1] = 100.1;
                    tZoneCoord[2] = 4388.27;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 155:
                    *tZoneCoord = 59.389999;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4653.73;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 156:
                case 163:
                    *tZoneCoord = 60.57;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4752.7402;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 158:
                    *tZoneCoord = 59.389999;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4653.73;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 159:
                case 164:
                    *tZoneCoord = 60.57;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4752.7402;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 161:
                    *tZoneCoord = 59.389999;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4653.73;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 162:
                    *tZoneCoord = 60.57;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4752.7402;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 250:
                case 267:
                    *tZoneCoord = 0.25;
                    tZoneCoord[1] = 70.68;
                    tZoneCoord[2] = 2360.25;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 268:
                    *tZoneCoord = 0.25;
                    tZoneCoord[1] = 70.68;
                    tZoneCoord[2] = 2360.25;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 269:
                    *tZoneCoord = 0.25;
                    tZoneCoord[1] = 70.68;
                    tZoneCoord[2] = 2360.25;
                    tZoneCoord[3] = 0.0;
                    result = 1;
                    break;
                case 319:
                case 320:
                case 321:
                case 322:
                case 323:
                    *tZoneCoord = -1423.87;
                    tZoneCoord[1] = 104.19;
                    tZoneCoord[2] = 4190.3701;
                    tZoneCoord[3] = 90.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_98;
            }
            break;
        default:
LABEL_98:
            *tZoneCoord = 0.0;
            tZoneCoord[1] = 0.0;
            tZoneCoord[2] = 0.0;
            tZoneCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnGuardStoneEffectCoord(int tTribe, int tZoneNumber, float tCoord[3])
{
    BOOL result; // eax

    switch ( tTribe )
    {
        case 0:
            switch ( tZoneNumber )
            {
                case 2:
                    tCoord[0] = -4149.0;
                    tCoord[1] = -3.0;
                    tCoord[2] = -2947.0;
                    result = 1;
                    break;
                case 3:
                    tCoord[0] = -88.0;
                    tCoord[1] = -9.0;
                    tCoord[2] = 822.0;
                    result = 1;
                    break;
                case 4:
                    tCoord[0] = -59.0;
                    tCoord[1] = -10.0;
                    tCoord[2] = 1828.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = -1816.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 2431.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_22;
            }
            break;
        case 1:
            switch ( tZoneNumber )
            {
                case 7:
                    tCoord[0] = 3274.0;
                    tCoord[1] = 29.0;
                    tCoord[2] = -4728.0;
                    result = 1;
                    break;
                case 8:
                    tCoord[0] = 211.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = 1505.0;
                    result = 1;
                    break;
                case 9:
                    tCoord[0] = -218.0;
                    tCoord[1] = -2.0;
                    tCoord[2] = 1419.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 234.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 394.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_22;
            }
            break;
        case 2:
            switch ( tZoneNumber )
            {
                case 12:
                    tCoord[0] = -4598.0;
                    tCoord[1] = 0.0;
                    tCoord[2] = -4307.0;
                    result = 1;
                    break;
                case 13:
                    tCoord[0] = 12.0;
                    tCoord[1] = 13.0;
                    tCoord[2] = 1472.0;
                    result = 1;
                    break;
                case 14:
                    tCoord[0] = 39.0;
                    tCoord[1] = 12.0;
                    tCoord[2] = 1814.0;
                    result = 1;
                    break;
                case 38:
                    tCoord[0] = 2500.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 337.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_22;
            }
            break;
        case 3:
            switch ( tZoneNumber )
            {
                case 38:
                    tCoord[0] = 4611.0;
                    tCoord[1] = 160.0;
                    tCoord[2] = 2458.0;
                    result = 1;
                    break;
                case 141:
                    tCoord[0] = -13.0;
                    tCoord[1] = -19.0;
                    tCoord[2] = 1450.0;
                    result = 1;
                    break;
                case 142:
                    tCoord[0] = -45.0;
                    tCoord[1] = -14.0;
                    tCoord[2] = 847.0;
                    result = 1;
                    break;
                case 143:
                    tCoord[0] = 11.0;
                    tCoord[1] = -14.0;
                    tCoord[2] = 883.0;
                    result = 1;
                    break;
                default:
                    goto LABEL_22;
            }
            break;
        default:
LABEL_22:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnMysteryDungeonGateCoord(int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 1:
            tCoord[0] = -5.75;
            tCoord[1] = 0.0;
            tCoord[2] = -4749.1201;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = -8.8800001;
            tCoord[1] = 0.0;
            tCoord[2] = -1623.71;
            tCoord[3] = 183.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = -4.46;
            tCoord[1] = 0.0;
            tCoord[2] = 1619.7;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 4:
            tCoord[0] = -4.4200001;
            tCoord[1] = 0.0;
            tCoord[2] = 4750.6001;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 5:
            tCoord[0] = -36.439999;
            tCoord[1] = 1.17;
            tCoord[2] = 7748.3999;
            tCoord[3] = 178.0;
            result = 1;
            break;
        case 6:
            tCoord[0] = -35.43;
            tCoord[1] = 1.99;
            tCoord[2] = 10899.92;
            tCoord[3] = -184.0;
            result = 1;
            break;
        case 7:
            tCoord[0] = -29.75;
            tCoord[1] = 1.99;
            tCoord[2] = 14105.72;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 8:
            tCoord[0] = -30.91;
            tCoord[1] = 1.17;
            tCoord[2] = 17257.971;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 9:
            tCoord[0] = -29.940001;
            tCoord[1] = 1.17;
            tCoord[2] = 21523.25;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 10:
            tCoord[0] = -30.809999;
            tCoord[1] = 1.17;
            tCoord[2] = 24672.68;
            tCoord[3] = 0.0;
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnHoisundoGateCoord(int tType, int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            if ( tType == 1 )
            {
                tCoord[0] = 7419.2998;
                tCoord[1] = 0.0;
                tCoord[2] = 7644.2598;
                tCoord[3] = 90.0;
            }
            else if ( tType == 2 )
            {
                tCoord[0] = 761.03003;
                tCoord[1] = 248.94;
                tCoord[2] = 7662.0601;
                tCoord[3] = -89.0;
            }
            result = 1;
            break;
        case 1:
            if ( tType == 1 )
            {
                tCoord[0] = -3.3399999;
                tCoord[1] = 0.0;
                tCoord[2] = 254.87;
                tCoord[3] = 0.0;
            }
            else if ( tType == 2 )
            {
                tCoord[0] = 14.18;
                tCoord[1] = 248.94;
                tCoord[2] = 6912.1099;
                tCoord[3] = 0.0;
            }
            result = 1;
            break;
        case 2:
            if ( tType == 1 )
            {
                tCoord[0] = -7391.6899;
                tCoord[1] = 0.0;
                tCoord[2] = 7677.1401;
                tCoord[3] = 88.0;
            }
            else if ( tType == 2 )
            {
                tCoord[0] = -732.70001;
                tCoord[1] = 249.00999;
                tCoord[2] = 7662.96;
                tCoord[3] = 87.0;
            }
            result = 1;
            break;
        case 3:
            if ( tType == 1 )
            {
                tCoord[0] = 29.84;
                tCoord[1] = 0.0;
                tCoord[2] = 15062.38;
                tCoord[3] = 0.0;
            }
            else if ( tType == 2 )
            {
                tCoord[0] = 11.53;
                tCoord[1] = 248.94;
                tCoord[2] = 8410.0;
                tCoord[3] = 0.0;
            }
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnSamgundoGateCoord(int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            tCoord[0] = 2205.05;
            tCoord[1] = -1.71;
            tCoord[2] = 2528.54;
            tCoord[3] = 0.0;
            result = 1;
            break;
        case 1:
            tCoord[0] = 0.029999999;
            tCoord[1] = -0.0;
            tCoord[2] = 318.98999;
            tCoord[3] = 90.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = -2203.46;
            tCoord[1] = -0.0;
            tCoord[2] = 2519.6299;
            tCoord[3] = -180.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = 0.12;
            tCoord[1] = 0.0;
            tCoord[2] = 4722.8999;
            tCoord[3] = -90.0;
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnFourGuildGateCoord(int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            tCoord[0] = -0.14;
            tCoord[1] = 0.27000001;
            tCoord[2] = -3799.6799;
            tCoord[3] = -181.0;
            result = 1;
            break;
        case 1:
            tCoord[0] = 2.1400001;
            tCoord[1] = 5.27;
            tCoord[2] = -1601.59;
            tCoord[3] = -181.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = -0.44;
            tCoord[1] = 10.27;
            tCoord[2] = 596.70001;
            tCoord[3] = -181.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = -1.73;
            tCoord[1] = 15.27;
            tCoord[2] = 2797.3899;
            tCoord[3] = -181.0;
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}

BOOL __stdcall ZONEMOVEINFO::ReturnGoldMoonGateCoord(int tSort, float tCoord[4])
{
    BOOL result; // eax

    switch ( tSort )
    {
        case 0:
            tCoord[0] = 374.26001;
            tCoord[1] = 4.6500001;
            tCoord[2] = -375.35001;
            tCoord[3] = -44.0;
            result = 1;
            break;
        case 1:
            tCoord[0] = 377.60999;
            tCoord[1] = 0.64999998;
            tCoord[2] = 378.19;
            tCoord[3] = -135.0;
            result = 1;
            break;
        case 2:
            tCoord[0] = -379.04999;
            tCoord[1] = 1.65;
            tCoord[2] = 378.47;
            tCoord[3] = 134.0;
            result = 1;
            break;
        case 3:
            tCoord[0] = -376.94;
            tCoord[1] = 0.64999998;
            tCoord[2] = -376.48999;
            tCoord[3] = 43.0;
            result = 1;
            break;
        default:
            tCoord[0] = 0.0;
            tCoord[1] = 0.0;
            tCoord[2] = 0.0;
            tCoord[3] = 0.0;
            result = 0;
            break;
    }
    return result;
}
lnwnuyhodd is offline  
Thanks
1 User
Old 10/27/2022, 11:17   #3
 
elite*gold: 0
Join Date: Nov 2021
Posts: 33
Received Thanks: 4
can you share costume class
hapciuu is offline  
Old 10/28/2022, 09:32   #4
 
RHNbaskan's Avatar
 
elite*gold: 0
Join Date: May 2016
Posts: 132
Received Thanks: 12
we don't realize what it means

unless you provide a way to demonstrate usage logic
No contribution in terms of development

because the infrastructure is over ts1
The parameters you gave seem to work for their implementation there.

Most of the tables needed for npc and character location determination are given here.

In order to skip the old db paths and map control server parts, we are moving towards using the current 2.5 v instead of the infrastructure anymore.

I draw the full part of the structure, the map and shuning groups.

This is time, and it is prepared for the renewed db without hassle.

The important point is to show how to use the text you gave.

The reason is that we cannot select the coordinate where the character in the character map is located.
if you touch it by hand

/ img group in gdata / 01 folder -(3/04 allows to interfere with npc locations)

If I find the place of intervention in the starting map of the main character
+100 map will be added, the system infrastructure is reading wm and wg files.


TR:
ne anlama geldiğini farkediyoruz

kullanım mantığını göstermek için yol sunmadığın sürece
gelişim anlamında katkı sağlanmıyor

alt yapı ts1 üzerinden olduğu için
verdiğin paremetreler orda uygulanması için iş görür gözükmekte.

npc ve karakter konum belirlenmesi için gereken çoğu tablo burada verilmiş.

artık alt yapı onu değil güncel 2.5 v kullanmaya doğru gittiğimiz , için eski db yolları ve map kontrol server kısımlarını atlamak için

yapının koplesini map ve shuning gruplarını çekiyorum.

buda zaman , ve yenilenmiş db için uğraşmadan hazırlanmış oluyor.

önemli nokta bu verdiğin metinin nasıl kullanılçağını gösterilmesi

sebebi karakter map içindeki karakterin bulunduğu kordinat seçemiyoruz
eğer el ile dokunmak için

gdata / 01 klasör içindeki/ img grubu -(03/04 npc konumlarına müdehaleye müsade ediyor)

ana karakterin başlangıç map içindeki konumuna müdehale yerini bulursam
+100 map eklenmiş olucak sistem alt yapı wm ve wg dosyaları okuyor.
------------------------------------------------------


main city via source code
Can we specify the starting coordinate?

case 37:
mCheckAllienceServer = TRUE;
mAlliencePostTick = 0;
mAllienceBattleState = 0;
mAllienceRemainTime = 0;
mAllienceBattlePostLocation[0][0] = -41.0f;
mAllienceBattlePostLocation[0][1] = 8.0f;
mAllienceBattlePostLocation[0][2] = -272.0f;
mAllienceBattlePostLocation[1][0] = 35.0f;
mAllienceBattlePostLocation[1][1] = 8.0f;
mAllienceBattlePostLocation[1][2] = -272.0f;
mAllienceBattlePostRadius[0] = 10.0f;
mAllienceBattlePostRadius[1] = 10.0f;
mAlliencePostAvatarIndex[0] = -1;
mAlliencePostAvatarIndex[1] = -1;
mAlliencePostAvatarUniqueNumber[0] = 0;
mAlliencePostAvatarUniqueNumber[1] = 0;
mAlliencePostAvatarTribe[0] = -1;
mAlliencePostAvatarTribe[1] = -1;
break;
RHNbaskan is offline  
Reply


Similar Threads Similar Threads
what is the best class to grind metin2 yang(class selection guide for newbies)
07/07/2012 - Metin2 - 1 Replies
Again, I am using Enligsh. So if you cant read it well, just turn to google online translation. If i am supposed to say or answer what is the best class for grinding metin2 yang in Metin2, of course the most efficiently, i strongly recommand the Warrior, and promote to Sword Warrior at level 5. This class has both high defense and attack, as well as great area attack skill and control skill(I mean the stun skill). I recommend the BM sura as your second choice,because he has the sweetest...
[VK]Captain 2nd Class & 2nd.Leutant 2nd Class
12/28/2010 - CrossFire Trading - 9 Replies
Hallo liebe Elitepvpers Community , da ich jetzt leider aufhöre mit Crossfire und für was bestimmtes spare verkaufe ich nun meine beiden Crossfire Accounts. Captain Account 2nd Class Z8Games ? Home of the Best Free MMO Games - Clans - Character Details M4A1 Crystal AWM - Red Dragon AK Scope
WTB ANY CLASS LEVEL 100+ FOR LAST CHAOS ETERNIA!!!! ANY CLASS WTB WITH OR WITHOUT EQ
06/26/2010 - Last Chaos Trading - 0 Replies
What the title says, however the account for sale must not be past like £40, paypal will do and middleman the account must not been under any suspicon or anything!!
ANybody Knows how to change class to another class
08/20/2009 - Cabal Online - 5 Replies
I ve been wondering if a WA could wear a martial set or a wizard could wear battleset..Any one knows how to change class? ;)
Class change to TBC Class (bloodelf & Danei)
11/03/2006 - World of Warcraft - 127 Replies
habe das hier vor kurzem mal im icq gesendet bekommen, hoffe das steht hier noch net ^^ es ist zwar buggy z.b. wenn ihr ein troll mit tatoos in der fratze habt usw aber man kann es durch aus usen. am besten neuen char machen und richtig einstellen :). Anleitung: ladet die datei runter in euer World of Warcraft&#092;Data ordner und benennt sie in speech2.mpq um, dan einfach in wow einloggen wenn es ein stick wert ist bitte sticken :)



All times are GMT +2. The time now is 02:03.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.