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

    Статус
    Оффлайн
    Регистрация
    09.05.2014
    Сообщений
    117
    Репутация:
    -1 ±

    по поводу hp

    У меня такая проблема. Когда я бью другого персонажа, то у него не отнимается хп. ( У него нету гм )
    В чём может быть проблема?

  2. #2
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±
    Подробнее опишите проблему, после чего появилась и что добавляли в мод - скидывайте. Просто так не может быть данной проблемы.

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    OnPlayerGive/TakeDamage скидывайте, ну и на всякий OnPlayerWeaponShot

  4. #4
    Аватар для Trender
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.05.2014
    Сообщений
    117
    Репутация:
    -1 ±
    PHP код:
    public OnPlayerTakeDamage(playeridissueridFloatamountweaponidbodypart)
    {
        if(
    issuerid != INVALID_PLAYER_ID)
        {
            if(
    StartTazer[issuerid] == true && weaponid == 0)
            {
                if(
    GetPlayerTazer[playerid] == true || GetPlayerCuff[playerid] == true || GetPlayerTie[playerid] == true || IsLaw(playerid) || IsArmy(playerid)) return true;
                
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
                
    TogglePlayerControllableEx(playerid0);
                
    GetPlayerTazer[playerid] = true;
                
    SetTimerEx("UnTazer"15000false,"i",playerid);
                
    //
                
    GetPlayerName(playeridsnsizeof(sn));
                
    GetPlayerName(issueridgpsizeof(gp));
                new 
    mes[128];
                
    format(messizeof(mes),"Вы ударили %s электрошокером"sn);
                
    SendClientMessage(issueridCOLOR_BLUE,mes);
                
    format(messizeof(mes), "%s ударил %s электрошокером"gpsn);
                
    ProxDetector(10.0playeridmes,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                return 
    true;
            }
            else if((
    weaponid == || weaponid == 1) && StartTazer[issuerid] == false)
            {
                new 
    Floatred float(PlayerInfo[issuerid][pBrunt])/1000.0;
                new 
    Floathealth;
                   
    GetPlayerHealth(playeridhealth);
                   
    SetPlayerHealthAC(playeridhealth red);
                   return 
    true;
            }
            else if(
    weaponid == 5)
            {
                new 
    Floathealth;
                   
    GetPlayerHealth(playeridhealth);
                   
    SetPlayerHealthAC(playeridhealth 20.0);
                return 
    true;
            }
        }
        return 
    true;


  5. #5
    Аватар для Edwin
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.02.2014
    Адрес
    Беларусь
    Сообщений
    196
    Репутация:
    22 ±
    Код HTML:
    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart) 
    { 
        if(issuerid != INVALID_PLAYER_ID) 
        { 
            if(StartTazer[issuerid] == true && weaponid == 0) 
            { 
                if(GetPlayerTazer[playerid] == true || GetPlayerCuff[playerid] == true || GetPlayerTie[playerid] == true || IsLaw(playerid) || IsArmy(playerid)) return true; 
                SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP); 
                TogglePlayerControllableEx(playerid, 0); 
                GetPlayerTazer[playerid] = true; 
                SetTimerEx("UnTazer", 15000, false,"i",playerid); 
                // 
                GetPlayerName(playerid, sn, sizeof(sn)); 
                GetPlayerName(issuerid, gp, sizeof(gp)); 
                new mes[128]; 
                format(mes, sizeof(mes),"Вы ударили %s электрошокером", sn); 
                SendClientMessage(issuerid, COLOR_BLUE,mes); 
                format(mes, sizeof(mes), "%s ударил %s электрошокером", gp, sn); 
                ProxDetector(10.0, playerid, mes,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); 
                return true; 
            } 
            else if(weaponid == 5) 
            { 
                new Float: health; 
                   GetPlayerHealth(playerid, health); 
                   SetPlayerHealthAC(playerid, health - 20.0); 
                return true; 
            } 
        } 
        return true; 
    }

  6. Пользователь сказал cпасибо:
    Trender (23.11.2014)
  7. #6
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    А так не лучше будет?
    PHP код:
    public OnPlayerTakeDamage(playeridissueridFloatamountweaponidbodypart)
    {
        if(
    issuerid != INVALID_PLAYER_ID || StartTazer[issuerid] != true && weaponid != 0) return 1;
        if(
    GetPlayerTazer[playerid] == true || GetPlayerCuff[playerid] == true || GetPlayerTie[playerid] == true || IsLaw(playerid) || IsArmy(playerid)) return true;
        
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
        
    TogglePlayerControllableEx(playerid0);
        
    GetPlayerTazer[playerid] = true;
        
    SetTimerEx("UnTazer"15000false,"i",playerid);
        
    GetPlayerName(playeridsnsizeof(sn));
        
    GetPlayerName(issueridgpsizeof(gp));
        new 
    mes[128];
        
    format(messizeof(mes),"Вы ударили %s электрошокером"sn);
        
    SendClientMessage(issueridCOLOR_BLUE,mes);
        
    format(messizeof(mes), "%s ударил %s электрошокером"gpsn);
        
    ProxDetector(10.0playeridmes,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        if(
    weaponid == 5)
        {
            new 
    Floathealth;
            
    GetPlayerHealth(playeridhealth);
            
    SetPlayerHealthAC(playeridhealth 20.0);
            return 
    true;
        }
        return 
    true;


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

    Статус
    Оффлайн
    Регистрация
    09.05.2014
    Сообщений
    117
    Репутация:
    -1 ±
    PHP код:
     public OnPlayerTakeDamage(playeridissueridFloatamountweaponidbodypart)
    {
        if(
    issuerid != INVALID_PLAYER_ID || StartTazer[issuerid] != true && weaponid != 0) return 1;
        if(
    GetPlayerTazer[playerid] == true || GetPlayerCuff[playerid] == true || GetPlayerTie[playerid] == true || IsLaw(playerid) || IsArmy(playerid)) return true// строка 2646
        
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
        
    TogglePlayerControllableEx(playerid0);
        
    GetPlayerTazer[playerid] = true;
        
    SetTimerEx("UnTazer"15000false,"i",playerid);
        
    GetPlayerName(playeridsnsizeof(sn));
        
    GetPlayerName(issueridgpsizeof(gp));
        new 
    mes[128];
        
    format(messizeof(mes),"Вы ударили %s электрошокером"sn);
        
    SendClientMessage(issueridCOLOR_BLUE,mes);
        
    format(messizeof(mes), "%s ударил %s электрошокером"gpsn);
        
    ProxDetector(10.0playeridmes,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
        if(
    weaponid == 5)
        {
            new 
    Floathealth;
            
    GetPlayerHealth(playeridhealth);
            
    SetPlayerHealthAC(playeridhealth 20.0);
            return 
    true;
        }
        return 
    true;

    теперь вот что в логах пишет
    Код:
    [16:20:32] [debug] Run time error 4: "Array index out of bounds"
    [16:20:32] [debug]  Accessing element at index 65535 past array upper bound 99
    [16:20:32] [debug] AMX backtrace:
    [16:20:32] [debug] #0 00020d74 in public OnPlayerTakeDamage (playerid=0, issuerid=65535, Float:amount=3.30000, weaponid=54, bodypart=3) at C:\Documents and Settings\Admin\Рабочий стол\Advantage Rp\gamemodes\ARP.pwn:2646

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

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

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

    Steve Pavlina

  10. Пользователь сказал cпасибо:
    Trender (23.11.2014)
 

 

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

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

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

Ваши права

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