• 0
Sign in to follow this  
Followers 0
Viktor2000

Проблема со спавном игрока.

Question

Здравствуйте, после взрыва игрока в авто он появляется сначала на спавне, и сразу же телепортируется в поле в скине CJ.

 

Share this post


Link to post

9 answers to this question

  • 0

@Viktor2000 Так происходит постоянно? Это происходит только при взрыве в авто или вообще при любой смерти? 

Share this post


Link to post
  • 0

Только при взрыве авто.

Share this post


Link to post
  • 0

@Viktor2000 Вопроса два, а ответ один... 

Если происходит постоянно, т.е. при каждом взрыве в авто, то скидывайте OnPlayerDeath.

Share this post


Link to post
  • 0

Паблик OnPlayerDeath есть, при убийстве/смерти игрок спавнится в нужном месте. Но вот когда взрывается в авто, то появляется в поле..

Share this post


Link to post
  • 0

@Viktor2000, вам говорят скинуть OnPlayerDeath, а не проверить его наличие...

Share this post


Link to post
  • 0
Спойлер

public OnPlayerDeath(playerid, killerid, reason)
{
    if(noclipdata[playerid][cameramode] == CAMERA_MODE_FLY) CancelFlyMode(playerid);
    if(Auto[playerid] != -1)
    {
        DestroyVehicle(Auto[playerid]);
        Auto[playerid] = -1;
        createdcar --;
    }
    Dostal[playerid] = 0;
    Garage[playerid] = 0;
    DestroyObject(neon[playerid][0]);
    DestroyObject(neon[playerid][1]);
    DestroyObject(migalo[playerid]);
    StopAudioStreamForPlayer(playerid);
    SCM(playerid, COLOR_YELLOW," - Радио выключено. Чтобы включить снова используй: {FF0000}/radio");
    SendDeathMessage(killerid,playerid,reason);
    if(killerid != INVALID_PLAYER_ID)
    {
        if(Player[killerid][pMember] == 1)
        {
            if(Player[playerid][pMember] == 0)
            {
                new wanted = GetPlayerWantedLevel(playerid);
                if(wanted >= 1)
                {
                    Jail[playerid] = 1;
                    Player[killerid][LEVEL] += 100;
                    Player[killerid][pMoney] += 500;
                    Player[playerid][pMoney] -= 50;
                    SCM(playerid, COLOR_YELLOW,"Вы были задержаны полицией и посажены в тюрьму на 5 минут.");
                    format(YCMDstr, sizeof(YCMDstr), "Сотрудник ДПС %s арестовал %s.", Player[killerid][NAME], Player[playerid][NAME]);
                    SCMTA(COLOR_YELLOW, YCMDstr);
                    SetTimerEx("UnJail", 50000*5, false, "d", playerid);
                    GameTextForPlayer(playerid, "~r~JAILLED", 3000, 1);
                    SPD(playerid,8212,DIALOG_STYLE_MSGBOX, "Добро пожаловать в тюрьму", "{FFC400}Вы были в розыске, полицейский вырубил вас табельным оружием.\nВы посажены в тюрьму на 3 минуты. Спустя 3 минуты, вы будете автоматически выпущены.", "Поехали", "");
                    return true;
                }
                else
                {
                    Player[killerid][LEVEL] += 100;
                    Player[killerid][pMoney] += 500;
                    Player[playerid][pMoney] -= 50;
                    GameTextForPlayer(killerid, "~r~+50 score | +500 dollars", 3000, 1);
                    GameTextForPlayer(playerid, "~r~-50 dollars", 3000, 1);
                    SCM(killerid,-1,"{EEEE00}Realm Drift:{EE7942} - Вы получили +50 очков и +500$ за убийство");
                    SCM(playerid,-1,"{EEEE00}Realm Drift:{EE7942} - Вас убил другой игрок, у вас вычли 50$ за лечение");
                    return true;
                }
            }
        }
        else
        {
            Player[killerid][LEVEL] += 50;
            Player[killerid][pMoney] += 500;
            Player[playerid][pMoney] -= 50;
            GameTextForPlayer(killerid, "~r~+50 score | +500 dollars", 3000, 1);
            GameTextForPlayer(playerid, "~r~-50 dollars", 3000, 1);
            SCM(killerid,-1,"{EEEE00}Realm Drift:{EE7942} - Вы получили +50 очков и +500$ за убийство");
            SCM(playerid,-1,"{EEEE00}Realm Drift:{EE7942} - Вас убил другой игрок, у вас вычли 50$ за лечение");
            SetPlayerWantedLevel(killerid, 3);
            return true;
        }
    }
    SetPlayerHealth(playerid, 100);
    return 1;
}

 

 

Edited by odosenok
Причина: загрузил код в тег "Код".

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

Изучите внимательно информацию о том, как правильно выкладывать большой код.

Share this post


Link to post
  • 0

Кстати у меня похожая проблема, игрок время от времени (рандомно) при заходе в игру он появляется в скине CJ и в центре поля!

При смертях все норм, он в больку попадает! 

 

В 15.05.2019 в 21:17, Viktor2000 сказал:
  Код (закрыть спойлер)


public OnPlayerDeath(playerid, killerid, reason)
{
    if(noclipdata[playerid][cameramode] == CAMERA_MODE_FLY) CancelFlyMode(playerid);
    if(Auto[playerid] != -1)
    {
        DestroyVehicle(Auto[playerid]);
        Auto[playerid] = -1;
        createdcar --;
    }
    Dostal[playerid] = 0;
    Garage[playerid] = 0;
    DestroyObject(neon[playerid][0]);
    DestroyObject(neon[playerid][1]);
    DestroyObject(migalo[playerid]);
    StopAudioStreamForPlayer(playerid);
    SCM(playerid, COLOR_YELLOW," - Радио выключено. Чтобы включить снова используй: {FF0000}/radio");
    SendDeathMessage(killerid,playerid,reason);
    if(killerid != INVALID_PLAYER_ID)
    {
        if(Player[killerid][pMember] == 1)
        {
            if(Player[playerid][pMember] == 0)
            {
                new wanted = GetPlayerWantedLevel(playerid);
                if(wanted >= 1)
                {
                    Jail[playerid] = 1;
                    Player[killerid][LEVEL] += 100;
                    Player[killerid][pMoney] += 500;
                    Player[playerid][pMoney] -= 50;
                    SCM(playerid, COLOR_YELLOW,"Вы были задержаны полицией и посажены в тюрьму на 5 минут.");
                    format(YCMDstr, sizeof(YCMDstr), "Сотрудник ДПС %s арестовал %s.", Player[killerid][NAME], Player[playerid][NAME]);
                    SCMTA(COLOR_YELLOW, YCMDstr);
                    SetTimerEx("UnJail", 50000*5, false, "d", playerid);
                    GameTextForPlayer(playerid, "~r~JAILLED", 3000, 1);
                    SPD(playerid,8212,DIALOG_STYLE_MSGBOX, "Добро пожаловать в тюрьму", "{FFC400}Вы были в розыске, полицейский вырубил вас табельным оружием.\nВы посажены в тюрьму на 3 минуты. Спустя 3 минуты, вы будете автоматически выпущены.", "Поехали", "");
                    return true;
                }
                else
                {
                    Player[killerid][LEVEL] += 100;
                    Player[killerid][pMoney] += 500;
                    Player[playerid][pMoney] -= 50;
                    GameTextForPlayer(killerid, "~r~+50 score | +500 dollars", 3000, 1);
                    GameTextForPlayer(playerid, "~r~-50 dollars", 3000, 1);
                    SCM(killerid,-1,"{EEEE00}Realm Drift:{EE7942} - Вы получили +50 очков и +500$ за убийство");
                    SCM(playerid,-1,"{EEEE00}Realm Drift:{EE7942} - Вас убил другой игрок, у вас вычли 50$ за лечение");
                    return true;
                }
            }
        }
        else
        {
            Player[killerid][LEVEL] += 50;
            Player[killerid][pMoney] += 500;
            Player[playerid][pMoney] -= 50;
            GameTextForPlayer(killerid, "~r~+50 score | +500 dollars", 3000, 1);
            GameTextForPlayer(playerid, "~r~-50 dollars", 3000, 1);
            SCM(killerid,-1,"{EEEE00}Realm Drift:{EE7942} - Вы получили +50 очков и +500$ за убийство");
            SCM(playerid,-1,"{EEEE00}Realm Drift:{EE7942} - Вас убил другой игрок, у вас вычли 50$ за лечение");
            SetPlayerWantedLevel(killerid, 3);
            return true;
        }
    }
    SetPlayerHealth(playerid, 100);
    return 1;
}

 

 

 

А у Вас есть проверка игрока на то, что если он умирает он попадает в больницу?

Если есть скиньте код данной проверки! 

Share this post


Link to post
  • 0
В 17.05.2019 в 10:44, Andrei_Morozov сказал:

Кстати у меня похожая проблема, игрок время от времени (рандомно) при заходе в игру он появляется в скине CJ и в центре поля!

При смертях все норм, он в больку попадает! 

 

 

А у Вас есть проверка игрока на то, что если он умирает он попадает в больницу?

Если есть скиньте код данной проверки! 

Сервер Drift, игрок при смерти спавнится у себя в гараже. При убийстве, смерти всё нормально работает, именно когда игрок умирает за рулём т/с происходит баг

Share this post


Link to post
  • 0

Поможет кто?

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Noobik
      By Noobik
      Доброго времени суток, сталкнулся с такой проблемой, что ипри запуске сервере режим Uncnown, смотрел много гайдов, но ничего не помогло. Добавил к плагинам .so, но ничего не помогло.
      Вот логи:
       
    • Mason
      By Mason
      Всем привет задаюсь один вопросом как сделать так чтобы отображалось московское время в тексте в маппинге
      SetDynamicObjectMaterialText(mapping, 0, "%d:%d", 130, "Tahoma", 190, 0, 0xFFFFFFFFFF00FF00, 0, 1); Как сделать так чтобы в тексте было время по москве?
    • Telly_Hensen
      By Telly_Hensen
      D:\рабочий стол\лобойковка рп\gamemodes\LoboykovkaRolePlay.pwn(104) : error 012: invalid function call, not a valid address
      D:\рабочий стол\лобойковка рп\gamemodes\LoboykovkaRolePlay.pwn(104) : warning 215: expression has no effect
      D:\рабочий стол\лобойковка рп\gamemodes\LoboykovkaRolePlay.pwn(104) : error 001: expected token: ";", but found ")"
      D:\рабочий стол\лобойковка рп\gamemodes\LoboykovkaRolePlay.pwn(104) : error 029: invalid expression, assumed zero
      D:\рабочий стол\лобойковка рп\gamemodes\LoboykovkaRolePlay.pwn(104) : fatal error 107: too many error messages on one line
      Compilation aborted.Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase

      4 Errors.
       
    • Cawfee
      By Cawfee
      Описание системы.
      Система полета камерой представляет собой возможность перемещаться в пространстве игры по всем осям (X, Y, Z) путем нажатия кнопок на клавиатуре.
       
      Подключение системы.
      1. Система написана в отдельном файле. Вам необходимо скачать этот файл и добавить в папку, находящейся в следующей директории:
      "..\pawno\include" 2. Затем Вам следует открыть свой игровой мод и в начале, после всех директив включения заголовочных файлов (#include), дописать следующую строку:
      #include "fly"  
      Работа с системой.
      В систему полета камерой включены две функции:
      1. Изменение состояния полета игрока.
      SetPlayerFlyStatus(playerid, status = CAMERA_MODE_REVERSE) /*     playerid - ID игрока, которого Вы хотите "отправить" в режим полета     status - режим полета*          * предусмотрено три режима полета:         CAMERA_MODE_NONE    (0) - выключить режим полета,         CAMERA_MODE_FLY     (1) - включить режим полета,         CAMERA_MODE_REVERSE (2) - сменить режим на реверсивный */ 2. Проверка, находится ли игрок в "полете".
      IsPlayerFlying(playerid) /*     playerid - ID игрока, пребывание в состоянии полета которого Вы хотите проверить          * данная функция возвращает:         CAMERA_MODE_NONE    (0), если игрок не находится в состоянии полета,         CAMERA_MODE_FLY     (1), если игрок находится в состоянии полета      */ При помощи данных функций вы можете управлять пребыванием игрока в режиме полета, а также получать информацию о том, "летает" ли игрок в тот или иной момент.
       
      Особенности системы.
      Системой полета предусмотрено, что игрок, выходящий из режима полета, появится именно там, где вышел. Так, если вы покидаете режим полета, пребывая в озере, то появление игрока будет именно в этом озере.
       
      Пример использования.
      CMD:fly(playerid, params[]) {     static const MSG_USE_CMD[] = !"» Usage the command: /fly [mode 0-2]";          if(isnull(params)) {         return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;     }     new mode;     if(sscanf(params, "d", mode)) {         return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;     }          if(!(0 <= mode <= 2)) {         return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;     }     SetPlayerFlyStatus(playerid, mode);     return 1; } CMD:checkfly(playerid, params[]) {     static const MSG_USE_CMD[] = !"» Usage the command: /checkfly [playerid]";          if(isnull(params)) {         return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;     }     new id;     if(sscanf(params, "u", id)) {         return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;     }     if(id == INVALID_PLAYER_ID) {         return SendClientMessage(playerid, -1, !"The player is not connected") & 0;     }     static const status_fly[][] =     {         !"The player is not flying",         !"The player is flying"     };          SendClientMessage(playerid, -1, status_fly[IsPlayerFlying(id)]);     return 1 }  
      fly.inc