Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

HP za zabicie

hp zabicie vip

Najlepsza odpowiedź Przemekb88, 26.12.2013 21:09

Teraz śmiga pięknie. + poleciał. Dziękuję - temat do zamknięcia.

Przejdź do postu


  • Zamknięty Temat jest zamknięty
13 odpowiedzi w tym temacie

#1 Przemekb88

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:18
  • Lokalizacja:*
Offline

Napisano 25.12.2013 11:52

Mam problem, gdyż chciałem aby plugin to zabiciu hs'em dawał graczowi 20hp a po normalnym zabiciu 15hp. Limit dla zwykłego użytkownika miał być 100hp a dla vip'a (z flagą t) 150hp. Plugin działa, a konkretnie problem tkwi w tym, iż limit dla każdego gracza bez względu na to czy jest vip'em czy nie limit hp wynosi 150.

Załączone pliki


Użytkownik Przemekb88 edytował ten post 25.12.2013 11:53

  • +
  • -
  • 0

Czysta paczka (AMXModX + Metamod-P + Dproto + VoiceTransCoder) - http://amxx.pl/topic...oicetranscoder/


#2 0-0-0

    ● 600 punktów ostrzeżeń

  • Power User

Reputacja: 222
Profesjonalista

  • Postów:599
  • Imię:___
  • Lokalizacja:___
Offline

Napisano 25.12.2013 12:10

Sprawdź

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
 
 
 
 
#define PLUGIN "Vampire"
#define AUTHOR "Przemekb88"
#define VERSION "1.0"
 
#define LIMIT 100
#define LIMIT 150
 
public plugin_init()
{
 
    register_plugin("HP za Zabicie", VERSION, "Przemekb88");
 
    register_event("DeathMsg", "DeathMsg", "a")
 
}
 
public DeathMsg(id)
{
 
new kid = read_data(1)  //zabojca
 
new vid = read_data(2);
 
new hs = read_data(3)   // HeadShot (1 == true)
 
 
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
if(is_user_alive(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
{
 
new health = get_user_health(kid), dodaj = hs ? 20 : 15;
set_user_health(id,min(get_user_health(id)+dodaj,LIMIT));
 
if(hs == 1)
{
set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
show_hudmessage(kid, "+20hp")
}
else if(hs != 1)
{
set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
show_hudmessage(kid, "+15hp")
}
 
return PLUGIN_CONTINUE;
}
}
else if((get_user_flags(id) & ADMIN_LEVEL_H))
{
if(is_user_alive(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
{
 
new health = get_user_health(kid), dodaj = hs ? 20 : 15;
set_user_health(id,min(get_user_health(id)+dodaj,LIMIT2));
 
if(hs == 1)
{
set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
show_hudmessage(kid, "+20hp")
}
else if(hs != 1)
{
set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
show_hudmessage(kid, "+15hp")
}
 
return PLUGIN_CONTINUE;
}
}
 
return PLUGIN_HANDLED
}

  • +
  • -
  • 1
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [4FUN][Ruletka]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [DM]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [FFA]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Only Dust2]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Call of Duty]

#3 Przemekb88

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:18
  • Lokalizacja:*
Offline

Napisano 25.12.2013 12:56

Następnym razem proszę o stosowanie tabulatorów. To rozwiązanie co mi podałeś Zerko to miało ono błąd - zawierało 2 razy zdefiniowany LIMIT, ale nawet po wyeliminowaniu errorów i warningów (z wykorzystaniem tego co mi podałeś) problem dalej się pojawia, i to większy, gdyż w takiej sytuacji plugin wcale nie chce działać.


  • +
  • -
  • 0

Czysta paczka (AMXModX + Metamod-P + Dproto + VoiceTransCoder) - http://amxx.pl/topic...oicetranscoder/


#4 vaulT

    Profesjonalista

  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:164
  • Lokalizacja:-*-
Offline

Napisano 25.12.2013 13:11

Spoiler

Użytkownik vaulT edytował ten post 25.12.2013 13:11


#5 Przemekb88

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:18
  • Lokalizacja:*
Offline

Napisano 25.12.2013 13:36

vaulT - to co mi podałeś przynajmniej nie ma żadnych błędów (nie pokazuje żadnych ani w konsoli, ani w kompilatorze), ale problem dalej się pojawia - ludzie bez vip'a dalej mają max 150 hp, a nawet więcej.


Użytkownik Przemekb88 edytował ten post 25.12.2013 13:42

  • +
  • -
  • 0

Czysta paczka (AMXModX + Metamod-P + Dproto + VoiceTransCoder) - http://amxx.pl/topic...oicetranscoder/


#6 vaulT

    Profesjonalista

  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:164
  • Lokalizacja:-*-
Offline

Napisano 25.12.2013 14:08

Spoiler


#7 0-0-0

    ● 600 punktów ostrzeżeń

  • Power User

Reputacja: 222
Profesjonalista

  • Postów:599
  • Imię:___
  • Lokalizacja:___
Offline

Napisano 25.12.2013 16:09

To co jest podane będzię złe ponieważ gracz mający powiedzmy 149 hp i zabije on z HS i doda mu 20 to będzie miał 169 hp i wtedy mu zaprzestanie dodawać. Trzeba sprawdzić czy gracz posiada hp + 20 wieksze od 150.

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>


#define PLUGIN "---"
#define AUTHOR "----"
#define VERSION "1.0"

public plugin_init()
{
    register_plugin("HP za Zabicie", VERSION, "Przemekb88");
    
    register_event("DeathMsg", "DeathMsg", "a")
}

public DeathMsg(id)
{
    
    new kid = read_data(1) //zabojca    
    new vid = read_data(2);    
    new hs = read_data(3) // HeadShot (1 == true)
    
    
    if(!(get_user_flags(kid) & ADMIN_LEVEL_H))
    {
        if(is_user_alive(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
        {
            
            if(hs == 1)
            {
                set_user_health(kid,get_user_health(kid) + 20);
                if(get_user_health(kid) + 20> 100)
                    set_user_health(kid,100);
                    
                set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
                show_hudmessage(kid, "+20hp")
            }
            else if(hs != 1)
            {
                set_user_health(kid,get_user_health(kid) + 15);
                if(get_user_health(kid) +15 > 100)
                    set_user_health(kid,100);
                    
                set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
                show_hudmessage(kid, "+15hp")
            }
            
            return PLUGIN_CONTINUE;
        }
    }
    else if(get_user_flags(kid) & ADMIN_LEVEL_H)
    {
        if(is_user_alive(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid))
        {
            
            if(hs == 1)
            {
                set_user_health(kid,get_user_health(kid) + 20);
                if(get_user_health(kid) + 20 > 150)
                    set_user_health(kid,150);
                    
                set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
                show_hudmessage(kid, "+20hp")
            }
            else if(hs != 1)
            {
                set_user_health(kid,get_user_health(kid) + 15);
                if(get_user_health(kid) + 15 > 150)
                    set_user_health(kid,150);
                    
                set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
                show_hudmessage(kid, "+15hp")
            }
            
            return PLUGIN_CONTINUE;
        }
    }
    
    return PLUGIN_HANDLED
}

  • +
  • -
  • 1
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [4FUN][Ruletka]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [DM]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [FFA]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Only Dust2]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Call of Duty]

#8 vaulT

    Profesjonalista

  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:164
  • Lokalizacja:-*-
Offline

Napisano 25.12.2013 17:36

Nie wiem czemu zrobilem taki warunek (chyba bylem rozkojarzony)

 

Spoiler


#9 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 26.12.2013 10:21

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>


#define PLUGIN "Vampire"
#define AUTHOR "GwynBleidD"
#define VERSION "1.2"

#define MAX_HP 100
#define MAX_HP_VIP 150

#define VIP_FLAG ADMIN_LEVEL_H

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_event("DeathMsg", "DeathMsg", "a")
}

public DeathMsg(id) {
    
    new kid = read_data(1) //zabojca    
    new vid = read_data(2);    

    if(!is_user_alive(kid) || get_user_team(kid) == get_user_team(vid))
        return PLUGIN_CONTINUE;

    new hs = read_data(3) // HeadShot (1 == true)
    
    new hp = get_user_health(kid)

    new is_vip = get_user_flags(kid) & ADMIN_LEVEL_H

    if(hp<MAX_HP || (is_vip && hp<MAX_HP_VIP)) {
        new new_hp = min(
                hp + (hs ? 20 : 15),
                is_vip ? MAX_HP_VIP : MAX_HP
            )
        set_user_health(kid, new_hp)
        set_hudmessage(255, 0, 0, 0.0, 0.0, 0, 6.0, 12.0)
        show_hudmessage(kid, "+%dhp", new_hp-hp)
    }
    return PLUGIN_CONTINUE
}

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#10 Przemekb88

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:18
  • Lokalizacja:*
Offline

Napisano 26.12.2013 12:15

@GwynBleidD jak już piszesz plugin komuś w odpowiedzi to sprawdź czy nie ma on błędów. W 36 linijce brakuje nawiasu zamykającego instrukcję warunkową if, a po nawiasie zamykającym w 44 linijce brakuje "return PLUGIN_HANDLED;". Po naprawieniu tych błędów, skompilowaniu pluginu i wstawieniu go na serwer dostrzegłem, że zamiast dostawać po 20 hp za hs a 15hp za zwykłe zabicie to dostawałem po np 119hp i w dodatku nie było limitu hp. Następnych chcących mi pomóc proszę o sprawdzenie pluginu najpierw w kompilatorze, a dopiero wstawianie go tutaj.


Użytkownik Przemekb88 edytował ten post 26.12.2013 12:17

  • +
  • -
  • 0

Czysta paczka (AMXModX + Metamod-P + Dproto + VoiceTransCoder) - http://amxx.pl/topic...oicetranscoder/


#11 vaulT

    Profesjonalista

  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:164
  • Lokalizacja:-*-
Offline

Napisano 26.12.2013 13:18

Sprawdz moj kod



#12 Przemekb88

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:18
  • Lokalizacja:*
Offline

Napisano 26.12.2013 18:09

Też nie działa. Jakieś inne pomysły ?


  • +
  • -
  • 0

Czysta paczka (AMXModX + Metamod-P + Dproto + VoiceTransCoder) - http://amxx.pl/topic...oicetranscoder/


#13 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 26.12.2013 18:36

Kod poprawiony w poprzednim poście, 2x dodawałem stare HP, stąd błąd z dużymi ilościami HP i brakiem limitu. Teraz działa na 100%. Przepraszam, że nie sprawdziłem, czy plugin się kompiluje, ale to chyba nie była tragedia poprawić w 2ch miejscach...

I nie PLUGIN_HANDLED, ale PLUGIN_CONTINUE, bo nie chcemy wstrzymywać eventu dla innych pluginów, a po prostu informujemy że skończyliśmy już pracę nad danym eventem. Zresztą nie jest to błąd, jedynie mały warning, nic nie znaczący w tym przypadku wyskakuje.
  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#14 Przemekb88

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:18
  • Lokalizacja:*
Offline

Napisano 26.12.2013 21:09   Najlepsza odpowiedź

Teraz śmiga pięknie. + poleciał. Dziękuję - temat do zamknięcia.


  • +
  • -
  • -1

Czysta paczka (AMXModX + Metamod-P + Dproto + VoiceTransCoder) - http://amxx.pl/topic...oicetranscoder/






Również z jednym lub większą ilością słów kluczowych: hp, zabicie, vip

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych