Question

Как убрать обработку уже существующих диалогов? При компиляции, много ошибок. Нужна срочно помощь!

Edited by denis_191105

Заметка от _bogdan_ , создано

прикрепите код, или скриншот ошибки.

Share this post


Link to post

1 answer to this question

  • 0

@_bogdan_ Строчки,которые я внес в мод: 

Этот код отвечает за дм зоны, тобишь телепорт на определенную дм зону и после смерти игрок снова возрождается в дм зоне, кнопка alt(игровое менюв дм зоне не работает и в чате отображается "введите /exit для выхода с дм зоны"

#if !defined WEAPON_FIST
    #define WEAPON_FIST (0)
#endif

#define MAX_DM_ZONES (5)
#define MAX_DM_ZONE_NAME_LEN (17 + 1)

#define GetDmZoneData(%0,%1) g_dm_zone[%0][%1]
#define GetDmZoneName(%0) GetDmZoneData(%0, DZ_NAME)
#define GetDmZoneGun(%0) GetDmZoneData(%0, DZ_GUN)
#define GetDmZoneGunAmmo(%0) GetDmZoneData(%0, DZ_GUN_AMMO)
#define GetDmZonePosX(%0) GetDmZoneData(%0, DZ_POS_X)
#define GetDmZonePosY(%0) GetDmZoneData(%0, DZ_POS_Y)
#define GetDmZonePosZ(%0) GetDmZoneData(%0, DZ_POS_Z)
#define GetDmZoneAngle(%0) GetDmZoneData(%0, DZ_ANGLE)
#define GetDmZoneEnterMsgColor(%0) GetDmZoneData(%0, DZ_ENTER_MSG_COLOR)

#define GivePlayerDmZoneWeapon(%0,%1) \
    GivePlayerWeapon(%0, GetDmZoneGun(%1), GetDmZoneGunAmmo(%1))
#define SetPlayerDmZonePos(%0,%1) \
    SetPlayerPos(%0, GetDmZonePosX(%1), GetDmZonePosY(%1), GetDmZonePosZ(%1))
#define SetPlayerDmZoneAngle(%0,%1) SetPlayerFacingAngle(%0, GetDmZoneAngle(%1))
#define SendExitDmZoneMessage(%0) SendClientMessage(%0, -1"Bведите /exit, чтобы выйти с дм зоны")

#define GetPlayerDmZone(%0) g_player_dm_zone[%0
#define IsPlayerInDmZone(%0) (GetPlayerDmZone(%0) != DM_ZONE_TYPE_NONE)

enum
{
    DIALOG_ENTERTAINMENT = 6,
    DIALOG_DM_ZONES = 632
}

enum E_DM_ZONE_STRUCT
{
    DZ_NAME[MAX_DM_ZONE_NAME_LEN],
    DZ_GUN,
    DZ_GUN_AMMO,
    Float: DZ_POS_X,
    Float: DZ_POS_Y,
    Float: DZ_POS_Z,
    Float: DZ_ANGLE,
    DZ_ENTER_MSG_COLOR
}

new g_dm_zone[MAX_DM_ZONES][E_DM_ZONE_STRUCT] =
{
    {
        "Город",
        00
        2379.10, -1716.12524.26,
        239.0523,
        0xE2A80EAA
    },
    {
        "Крушение самолёта",
        00,
        -423.89498.1114.48,
        343.1032,
        0x367A94AA
    },
    {
        "Берлин 1945",
        WEAPON_RIFLE, 300,
        1362.361672.414.06,
        343.1032,
        0x367A94AA
    },
    {
        "Ghetto",
        WEAPON_RIFLE, 300,
        340.921892.0413.12,
        343.1032,
        0x9C8DF3AA
    },   
    {
        "Вулкан",
        WEAPON_DEAGLE, 300,
        36.382854.61315.46,
        88.9641,
        0xF60000AA
    }
};
        

enum
{
    DM_ZONE_TYPE_NONE = -1,
    DM_ZONE_TYPE_VOLCANO = 4
}

new g_player_dm_zone[MAX_PLAYERS] = {DM_ZONE_TYPE_NONE, ...};

stock ShowPlayerEntertainmentDialog(playerid)
{
    return ShowPlayerDialog
    (
        playerid, DIALOG_ENTERTAINMENT, DIALOG_STYLE_LIST,
        "{1E90FF}Развлечения"
        "{30d5c8}Паркур зоны\n"\
        "{08e8de}Deathmatch зоны\n"\
        "{00ffff}Мини-игры\n"\
        "{afeeee}Различные места"
        "OK""Назад"
    );
}

stock ShowPlayerDmZonesDialog(playerid)
{
    new colors[5][2][9] = 
    {
        {"{9240FF}""{DCC1FF}"},
        {"{A73DFE}""{E6C6FF}"},
        {"{C134FE}""{EFCAFF}"},
        {"{D222FF}""{F2C1FF}"},
        {"{EA30FE}""{F9BBFF}"}
    },
    fmt_str[] = "%sДМ %d || %s'%s'\n",
    result_str[((sizeof fmt_str) + 
                  ((- 4 + (sizeof colors[][] * 2)) + 
                  (- 2 + 1) +
                  (- 2 + MAX_DM_ZONE_NAME_LEN)))],
    dest[((sizeof result_str) * MAX_DM_ZONES)];

    for(new idx; idx < sizeof g_dm_zone; idx ++)
    {
        format
        (
            result_str, sizeof result_str, 
            fmt_str, 
            colors[idx][0],
            idx + 1,
            colors[idx][1],
            GetDmZoneName(idx)
        );
        strcat(dest, result_str);
    }
    
    return ShowPlayerDialog
    (
        playerid, DIALOG_DM_ZONES, DIALOG_STYLE_LIST,
        "{1E90FF}Deathmatch зоны",
        dest,
        "OK""Назад"
    );
}

stock SendEnterDmZoneMessage(playerid, zone_id)
{
    new fmt_str[] = "{1E90FF}[DM] {ffffff}Игрок {1E90FF}%s {FFFFFF}зашел на дм зону"\
                            "{1E90FF}'%s'! {FFFFFF}[/dm]",
           result_str[((sizeof fmt_str) + 
                         ((- 2 + MAX_PLAYER_NAME) + 
                         (- 2 + MAX_DM_ZONE_NAME_LEN)))];

    format(result_str, sizeof result_str, fmt_str, GetPlayerNameEx(playerid), GetDmZoneName(zone_id));
    return SendClientMessage(playerid, GetDmZoneEnterMsgColor(zone_id), result_str);
}

stock SetPlayerMainDmZoneData(playerid, zone_id)
{
    new result = (zone == DM_ZONE_TYPE_VOLCANO ? 1 : 0);

    if(result)
        ResetPlayerWeapons(playerid);

    SetPlayerArmour(playerid, 100.00);
    SetPlayerHealth(playerid, 100.00);

    SetPlayerInterior(playerid, result);

    result = (!result ? result : result + 1);

    SetPlayerVirtualWorld(playerid, result);

    if(GetDmZoneGun(zone_id) != WEAPON_FIST)
        GivePlayerDmZoneWeapon(playerid, zone_id);

    SetPlayerDmZonePos(playerid, zone_id);
    SetPlayerDmZoneAngle(playerid, zone_id);

    SendEnterDmZoneMessage(playerid, zone_id);

    return PlayerPlaySound(playerid, 10520.00.00.0);
}

@__OnPlayerSelectDmZone(playerid, zone_id);
@__OnPlayerSelectDmZone(playerid, zone_id)
    return SetPlayerMainDmZoneData(playerid, zone_id);

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if((newkeys & KEY_WALK) && (IsPlayerInDmZone(playerid)))
        return SendExitDmZoneMessage(playerid);

    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(IsPlayerInDmZone(playerid))
        return SetPlayerMainDmZoneData(playerid, GetPlayerDmZone(playerid));

    return 1;

   
public OnDialogResponse(playerid, dialogid, response, listitem, const inputtext[])
{
    switch(dialogid)
    {
        case DIALOG_ENTERTAINMENT:
        {
            switch(listitem)
            {
                case 1:
                    return ShowPlayerDmZonesDialog(playerid);
            }
        }
        case DIALOG_DM_ZONES: 
        {
            if(response)
                return @__OnPlayerSelectDmZone(playerid, listitem);

            else ShowPlayerEntertainmentDialog(playerid);
        }
    }
    return 1;
}

Ошибки: 

 

 

 

Как я вставил код:

Screenshot_6.png

Screenshot_5.png

Screenshot_1.png

Screenshot_2.png

Screenshot_3.png

Screenshot_4.png

Edited by denis_191105

Share this post


Link to post
Guest
This topic is now closed to further replies.