Русское сообщество по скриптингу

Help to edit hook death

Scripting help for english speaking users. While not very active, you still have a chance to get help here.
Правила форума
We cannot maintain english version version of our forum rules, but shortly (it's simple) - Don't be a dick. If you really want to know our rules you should check appropriate thread.

Help to edit hook death

Сообщение VenomIvanof » 04 сен 2016, 00:17

Someone can help me to fix this?
I want to make like this:
For normal players
normal kill + 1 XP
headshot kill + 3 XP
For VIP Players
Normal Kill +2 XP
headshot kill +6 XP
------------------------------
for all players
knife kill + 4 XP
he grenade + 6 XP

Код: Выделить всё
public Hook_Deathmessage()
{
    new 
killer read_data(1);
    new 
victim read_data(2);
   
    if(
killer == victim)
        return 
PLUGIN_CONTINUE;
    if(!
killer || killer maxPlayers)
        return 
PLUGIN_CONTINUE;
   
    new 
iReward 1
    
    
if(read_data(2))
        
iReward += 1
    
if(read_data(3))
    {
        
iReward += 2
    set_dhudmessage
(255000.712.3806.012.0);
    
show_dhudmessage(killer"+ 2EXP");
}
    
        
    new 
szWeapon[16]
    
read_data(4szWeaponcharsmax(szWeapon))
    
    if(
equal(szWeapon"knife"))
    {
        
iReward += 3
        ColorChat
(victimGREY"^4[^3MC^4]^3 You have lost 10 EXP !")
        
client_cmd(victim"spk rankings/smb3_powerdown")
        
gPlayerPoints[victim] -= 10
    
}
    else if(
equal(szWeapon"grenade"))
        
iReward += 5
        
    
if(get_user_flags(killer) & ADMIN_BAN)
        
iReward += 2
        
    gPlayerPoints
[killer] += iReward
    set_dhudmessage
(255000.712.3806.012.0);
    
show_dhudmessage(killer"+ %iEXP"iReward)
    
    new 
currentPlayerRank 0;
    while(
currentPlayerRank < (MAXRANKS 1))
    {       
        if(
gPlayerPoints[killer] >= rankXP[currentPlayerRank 1])
            ++
currentPlayerRank;     
        else         
            break;
    }
    new 
OldRank PlayerRank[killer]
    
PlayerRank[killer] = currentPlayerRank
    Save
killer );
    if(
OldRank currentPlayerRank)
    {
        new 
g_name[32]
        
get_user_name(killerg_name31)
        
ColorChat(0GREEN"[Maina City] ^1Congratulations! ^x03%s^x01 got a new rank ^x04%s"g_namerankNames[PlayerRank[killer]])
    }
    return 
PLUGIN_CONTINUE;
Последний раз редактировалось Subb98 04 сен 2016, 00:25, всего редактировалось 1 раз.
Причина: use tag [code=php][/code] for paste source code
Аватара пользователя
VenomIvanof
 
Сообщения: 66
Зарегистрирован: 02 апр 2016, 13:26
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6

Re: Help to edit hook death

Сообщение Bos93 » 04 сен 2016, 01:30

Try:

Код: Выделить всё
public Hook_Deathmessage()
{
    new 
killer read_data(1);
    new 
victim read_data(2);
    new 
HeadShot read_data(3);
    new 
iReward 0;
   
    if( 
killer == victim || !killer )
        return;
        
    new 
bool:bIsAdmin = !!get_user_flags(killer) & ADMIN_BAN;
   
   if( 
bIsAdmin )
        
iReward += HeadShot 3;
    else
        
iReward += HeadShot 1;    
   
        
    new 
szWeapon[16]
    
read_data(4szWeaponcharsmax(szWeapon))
    
    if(
equal(szWeapon"knife"))
    {
        
iReward += 4
        ColorChat
(victimGREY"^4[^3MC^4]^3 You have lost 10 EXP !")
        
client_cmd(victim"spk rankings/smb3_powerdown")
        
gPlayerPoints[victim] -= 10
    
}
    else if(
equal(szWeapon"grenade"))
        
iReward += 6
        
    gPlayerPoints
[killer] += iReward
    set_dhudmessage
(255000.712.3806.012.0);
    
show_dhudmessage(killer"+ %iEXP"iReward)
    
    new 
currentPlayerRank 0;
    while(
currentPlayerRank < (MAXRANKS 1))
    {       
        if(
gPlayerPoints[killer] >= rankXP[currentPlayerRank 1])
            ++
currentPlayerRank;     
        else         
            break;
    }
    new 
OldRank PlayerRank[killer]
    
PlayerRank[killer] = currentPlayerRank
    Save
killer );
    if(
OldRank currentPlayerRank)
    {
        new 
g_name[32]
        
get_user_name(killerg_name31)
        
ColorChat(0GREEN"[Maina City] ^1Congratulations! ^x03%s^x01 got a new rank ^x04%s"g_namerankNames[PlayerRank[killer]])
    }
    return 
PLUGIN_CONTINUE;
}  
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1430
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 512 раз.

Re: Help to edit hook death

Сообщение VenomIvanof » 04 сен 2016, 14:31

Bos93 писал(а):Try:

Код: Выделить всё
public Hook_Deathmessage()
{
    new killer = read_data(1);
    new victim = read_data(2);
    new HeadShot = read_data(3);
    new iReward = 0;
   
    if
( killer == victim || !killer )
        return;
        
    new bool
:bIsAdmin = !!get_user_flags(killer) & ADMIN_BAN;
   
   if
( bIsAdmin )
        iReward += HeadShot ? 6 : 3;
    else
        iReward 
+= HeadShot ? 3 : 1;    
   
        
    new szWeapon
[16]
    read_data(4, szWeapon, charsmax(szWeapon))
    
    if
(equal(szWeapon, "knife"))
    {
        iReward += 4
        ColorChat
(victim, GREY, "^4[^3MC^4]^3 You have lost 10 EXP !")
        client_cmd(victim, "spk rankings/smb3_powerdown")
        gPlayerPoints[victim] -= 10
    
}
    else if(equal(szWeapon, "grenade"))
        iReward += 6
        
    gPlayerPoints
[killer] += iReward
    set_dhudmessage
(255, 0, 0, 0.71, 2.38, 0, 6.0, 12.0);
    show_dhudmessage(killer, "+ %iEXP", iReward)
    
    new currentPlayerRank 
= 0;
    while(currentPlayerRank < (MAXRANKS - 1))
    {       
        if
(gPlayerPoints[killer] >= rankXP[currentPlayerRank + 1])
            ++currentPlayerRank;     
        else         
            break
;
    }
    new OldRank = PlayerRank[killer]
    PlayerRank[killer] = currentPlayerRank
    Save
( killer );
    if(OldRank < currentPlayerRank)
    {
        new g_name[32]
        get_user_name(killer, g_name, 31)
        ColorChat(0, GREEN, "[Maina City] ^1Congratulations! ^x03%s^x01 got a new rank ^x04%s", g_name, rankNames[PlayerRank[killer]])
    }
    return PLUGIN_CONTINUE;
}


Players with admin flag BAN don't recive x2 points. I mean when i kill someone with Headshot i get +3 Points like the normal player, and when i kill normal i get 1 point again. Can fix?
Аватара пользователя
VenomIvanof
 
Сообщения: 66
Зарегистрирован: 02 апр 2016, 13:26
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6

Re: Help to edit hook death

Сообщение Bos93 » 04 сен 2016, 15:12

Код: Выделить всё
        iReward += HeadShot ? 6 : 3

->

Код: Выделить всё
        iReward += HeadShot ? 6 : 2
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1430
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 512 раз.

Re: Help to edit hook death

Сообщение VenomIvanof » 04 сен 2016, 17:54

Bos93 писал(а):
Код: Выделить всё
        iReward += HeadShot ? 6 : 3;

->

Код: Выделить всё
        iReward += HeadShot ? 6 : 2;


i dont know where is the problem but i still get +1 XP for normal kill and + 3 XP for headshot (with ADMIN_BAN)
also the normal players get +1 XP and +3 XP ...
Аватара пользователя
VenomIvanof
 
Сообщения: 66
Зарегистрирован: 02 апр 2016, 13:26
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6

Re: Help to edit hook death

Сообщение Bos93 » 04 сен 2016, 18:07

Add after
Код: Выделить всё
new bool:bIsAdmin = !!get_user_flags(killer) & ADMIN_BAN;


Код: Выделить всё
server_print( "DEBUG: %d - %d", bIsAdmin, is_user_admin(killer) )


and show me the result
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1430
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 512 раз.

Re: Help to edit hook death

Сообщение VenomIvanof » 04 сен 2016, 18:14

Bos93 писал(а):Add after
Код: Выделить всё
new bool:bIsAdmin = !!get_user_flags(killer) & ADMIN_BAN


Код: Выделить всё
server_print( "DEBUG: %d - %d", bIsAdmin, is_user_admin(killer) 


and show me the result

one man help me. This is the code.
Код: Выделить всё
public Hook_Deathmessage()
{
    new 
killer read_data(1);
    new 
victim read_data(2);
   
    if(
killer == victim)
        return 
PLUGIN_CONTINUE;
    if(!
killer || killer maxPlayers)
        return 
PLUGIN_CONTINUE;
   
    new 
iReward 1
    
    
if(read_data(3))
        
iReward += 2
        
    
new szWeapon[16]
    
read_data(4szWeaponcharsmax(szWeapon))
    
    if(
equal(szWeapon"knife"))
    {
        
iReward += 3
        ColorChat
(victimGREY"^4[^3MC^4]^3 You have lost 10 EXP !")
        
client_cmd(victim"spk rankings/smb3_powerdown")
        
gPlayerPoints[victim] -= 10
    
}
    else if(
equal(szWeapon"grenade"))
        
iReward += 5
        
    
if(get_user_flags(killer) & ADMIN_BAN)
        
iReward *= 2
        
    gPlayerPoints
[killer] += iReward
    set_dhudmessage
(255000.712.3806.012.0);
    
show_dhudmessage(killer"+ %iEXP"iReward)
    
    new 
currentPlayerRank 0;
    while(
currentPlayerRank < (MAXRANKS 1))
    {       
        if(
gPlayerPoints[killer] >= rankXP[currentPlayerRank 1])
            ++
currentPlayerRank;     
        else         
            break;
    }
    new 
OldRank PlayerRank[killer]
    
PlayerRank[killer] = currentPlayerRank
    Save
killer );
    if(
OldRank currentPlayerRank)
    {
        new 
g_name[32]
        
get_user_name(killerg_name31)
        
ColorChat(0GREEN"[prefix] ^1Congratulations! ^x03%s^x01 got a new rank ^x04%s"g_namerankNames[PlayerRank[killer]])
    }
    return 
PLUGIN_CONTINUE;


However, also thanks for the help :)
Аватара пользователя
VenomIvanof
 
Сообщения: 66
Зарегистрирован: 02 апр 2016, 13:26
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6

Re: Help to edit hook death

Сообщение Bos93 » 04 сен 2016, 18:34

Гори в аду.
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1430
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 512 раз.

Re: Help to edit hook death

Сообщение Pafos » 04 сен 2016, 18:48

Bos93, :-D
Аватара пользователя
Pafos
 
Сообщения: 534
Зарегистрирован: 07 апр 2014, 18:03
Откуда: pfnClientConnect
Благодарил (а): 126 раз.
Поблагодарили: 92 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Help to edit hook death

Сообщение VenomIvanof » 04 сен 2016, 19:01

Bos93 писал(а):Гори в аду.


Сука ... :dance2: :bravo:
Аватара пользователя
VenomIvanof
 
Сообщения: 66
Зарегистрирован: 02 апр 2016, 13:26
Благодарил (а): 17 раз.
Поблагодарили: 1 раз.
Языки программирования: Counter-Strike 1.6

След.

Вернуться в Scripting

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1