Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Flime
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    16 ±

    По смерти игрока

    После смерти игрок не сразу спавнится, а умирает еще раз, а только потом спавнится. Как это исправить?

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    OnPlayerDeath/OnPlayerSpawn покажите
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для Flime
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    16 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    OnPlayerDeath/OnPlayerSpawn покажите
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        if(
    PlayerInfo[killerid][pLogin] == falseSCM(playerid0xFF6347AA"Необходимо залогинется!"),KickWithMessage(playerid);
        if(
    reason == 38kod[playerid] = 3,AntiCheatNadpis(playerid);                 
        if(
    PlayerInfo[playerid][pZone] != && PlayerInfo[playerid][pTeam] == 0SetPlayerHealthAC(killerid100);
          if(
    PlayerInfo[playerid][pZone] == 6SetPlayerHealthAC(killerid30);
        new 
    string[10];
         
    PlayerInfo[killerid][pKill]++;                                                 
          
    PlayerInfo[playerid][pSmert]++;                                             
          
    format(stringsizeof(string), "Убил %s"PN(killerid)), SetPlayerChatBubble(playeridstring, -130.03000);
          
    SendDeathMessage(killeridplayeridreason);
        
    SetPlayerScore(killeridPlayerInfo[killerid][pKill]);                      
        
    UpdateStats(killerid);                                                      
            
    ResetPlayerWeapons(playerid);
            
    GameTextForPlayer(killerid"~r~+1 Kill"10003);
        
    OnPlayerSpawn(playerid);
        return 
    true;

    - - - Добавлено - - -

    PHP код:
    public OnPlayerSpawn(playerid)
    {
         if(
    PlayerInfo[playerid][pLogin] == falseSCM(playerid0xFF6347AA"Необходимо залогинется"),KickWithMessage(playerid);
        
    ResetPlayerWeapons(playerid);
        
    SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
        if(
    PlayerInfo[playerid][pZone] == 6SetPlayerHealthAC(playerid,30);
        else 
    SetPlayerHealthAC(playerid,100);
        
    SetPlayerSpawn(playerid);
        return 
    true;

    - - - Добавлено - - -

    SetPlayerSpawn(playerid); Нужен?

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Вот тут (и далее в массивах с killerid) будет выход за пределы массива, когда убийцы не будет существовать.
    И OnPlayerSpawn не нужен в OnPlayerDeath. Ибо первый сам вызывается после обработки всего кода в OnPlayerDeath

    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        
        if(
    reason == 38kod[playerid] = 3AntiCheatNadpis(playerid);
        new 
    string[10];
        
    ResetPlayerWeapons(playerid);
        
    PlayerInfo[playerid][pSmert]++;
        
    SendDeathMessage(killeridplayeridreason);
        
        if(
    killerid != INVALID_PLAYER_ID)
        {
            
    GameTextForPlayer(killerid"~r~+1 Kill"10003);
            
    UpdateStats(killerid);
            
    SetPlayerScore(killeridPlayerInfo[killerid][pKill]);
            
    format(stringsizeof(string), "Убил %s"PN(killerid)), SetPlayerChatBubble(playeridstring, -130.03000);
            
    PlayerInfo[killerid][pKill]++;
            if(
    PlayerInfo[playerid][pZone] == 6SetPlayerHealthAC(killerid30);
            if(
    PlayerInfo[playerid][pZone] != && PlayerInfo[playerid][pTeam] == 0SetPlayerHealthAC(killerid100);
            if(
    PlayerInfo[killerid][pLogin] == falseSCM(playerid0xFF6347AA"Необходимо залогинется!"),KickWithMessage(playerid);
        }
        return 
    true;

    Код сами расположите в той последовательности, которая вам нужна. Я лишь показал структуру, по которой стоит формировать OnPlayerDeath
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. Пользователь сказал cпасибо:
    Flime (09.06.2014)
  6. #5
    Аватар для Flime
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    16 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Вот тут (и далее в массивах с killerid) будет выход за пределы массива, когда убийцы не будет существовать.
    И OnPlayerSpawn не нужен в OnPlayerDeath. Ибо первый сам вызывается после обработки всего кода в OnPlayerDeath

    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        
        if(
    reason == 38kod[playerid] = 3AntiCheatNadpis(playerid);
        new 
    string[10];
        
    ResetPlayerWeapons(playerid);
        
    PlayerInfo[playerid][pSmert]++;
        
    SendDeathMessage(killeridplayeridreason);
        
        if(
    killerid != INVALID_PLAYER_ID)
        {
            
    GameTextForPlayer(killerid"~r~+1 Kill"10003);
            
    UpdateStats(killerid);
            
    SetPlayerScore(killeridPlayerInfo[killerid][pKill]);
            
    format(stringsizeof(string), "Убил %s"PN(killerid)), SetPlayerChatBubble(playeridstring, -130.03000);
            
    PlayerInfo[killerid][pKill]++;
            if(
    PlayerInfo[playerid][pZone] == 6SetPlayerHealthAC(killerid30);
            if(
    PlayerInfo[playerid][pZone] != && PlayerInfo[playerid][pTeam] == 0SetPlayerHealthAC(killerid100);
            if(
    PlayerInfo[killerid][pLogin] == falseSCM(playerid0xFF6347AA"Необходимо залогинется!"),KickWithMessage(playerid);
        }
        return 
    true;

    Код сами расположите в той последовательности, которая вам нужна. Я лишь показал структуру, по которой стоит формировать OnPlayerDeath
    А что значит "выход за пределы массива " можете скинуть урок, где об этом написано?

  7. #6
    Аватар для KakbeYura
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    72
    Репутация:
    16 ±
    Цитата Сообщение от Flime Посмотреть сообщение
    А что значит "выход за пределы массива " можете скинуть урок, где об этом написано?
    Это аксиома, зачем ещё урок?
    У меня есть палка на метр, а я схватил её на втором метре (в воздухе) и хочу поднять. Она поднимется?

  8. 3 пользователя(ей) сказали cпасибо:
    DeimoS (09.06.2014) Flime (10.06.2014) underwoker (09.06.2014)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •