Помогите с дуэлью
#1

Всем привет, вот такая у меня проблема с дуэлью - вызываю игрока на дуэль /duel ID. У него появляется диалог с подтверждением и отклонением дуэли, когда игрок жмет "принять" то меня не телепортирует на дуэль, а его телепортирует и в чате пишет, что как будто он сам себя на дуэль вызвал. Помогите исправить пожалуйста.

Команда вызова игрока на дуэль:
pawn Код:
COMMAND:duel(playerid,params[])
{
        if(params[0] == '\0' || !IsNumeric(params))return SendUsage(playerid, "/duel [playerid]");
        if(g_HasInvitedToDuel[playerid] == 1)return SendError(playerid, "Вы уже пригласили кого-то на дуэль! Используйте /cduel, чтобы отменить приглашение.");
        new DuelID = strvalEx(params),pName[MAX_PLAYER_NAME],zName[MAX_PLAYER_NAME],
        tString[128];GetPlayerName(playerid, pName, MAX_PLAYER_NAME);GetPlayerName(DuelID, zName, MAX_PLAYER_NAME);
        if (!IsPlayerConnected(DuelID))return SendError(playerid, "Игрок отключен.");
        if(g_HasInvitedToDuel[DuelID] == 1)return SendError(playerid, "Этот игрок уже приглашен на дуэль!");
        if(DuelID == playerid)return SendError(playerid, "Вы не можете вызвать самого себя на дуэль");
        format(tString, sizeof(tString), "Вы пригласили игрока %s(ID:%d) на честный поединок, подождите пока игрок примет решение.",zName, DuelID, zName);
        SendClientMessage(playerid, COLOR_YELLOW, tString);
        format(tString,sizeof tString,"Вас вызывает %s(%i) на Дуэль\nВы согласны?",pName, playerid);
    ShowPlayerDialog(DuelID,AccDuel,DIALOG_STYLE_MSGBOX,"Вызов на дуэль:",tString,"Принять","Отклонить");
        g_GotInvitedToDuel[DuelID] = playerid;
        g_HasInvitedToDuel[playerid] = 1;
        return 1;
}
Диалог подтверждения и отклонения:
pawn Код:
if(dialogid == AccDuel)
{
        if(response)
{
        new DuelID,pName[MAX_PLAYER_NAME],zName[MAX_PLAYER_NAME],tString[128];
        GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
        GetPlayerName(DuelID, zName, MAX_PLAYER_NAME);
        format(tString, sizeof(tString), "Вы приняли вызов игрока %s(ID:%d).",zName,DuelID);
        SendClientMessage(playerid, COLOR_YELLOW, tString);
        format(tString, sizeof(tString), "Игрок %s(ID:%d), принял вызов.",pName,playerid);
        SendClientMessage(DuelID, COLOR_YELLOW, tString);
        format(tString, sizeof(tString), "Честный поединок между игроками %s и %s начинается.",pName,zName);
        SendClientMessageToAll(COLOR_ORANGE, tString);
        InitializeDuel(playerid);
        InitializeDuelEx( DuelID);
        g_IsPlayerDueling[playerid] = 1;
        g_IsPlayerDueling[DuelID] = 1;
        g_DuelingID1 = playerid;
        g_DuelingID2 = DuelID;
        g_DuelInProgress = 1;
        }else{
        if(g_HasInvitedToDuel[playerid] == 0)
        g_HasInvitedToDuel[playerid] = 0;
        }
        return 1;
}
Reply


Messages In This Thread
Помогите с дуэлью - by [HHT]DRON - 03.07.2012, 12:45

Forum Jump:


Users browsing this thread: 2 Guest(s)