Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Flime
    Пользователь

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

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

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

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    15 ±
    Цитата Сообщение от 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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Вот тут (и далее в массивах с 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
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    15 ±
    Цитата Сообщение от 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)

Ваши права

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