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

Czy hp za killa jest poprawnie


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

#1 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 19.07.2012 14:34

new cvar,cvar2,cvar3,cvar4


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

cvar = register_cvar("block_bronie","1")
cvar2 = register_cvar("block_sklep","1")
cvar3 = register_cvar("kill_hs","20")
cvar4 = register_cvar("kill","10")
}


public DeathMsg()
{
new kid = read_data(1) //zabojca

new hs = read_data(3) // HeadShot (1 == true)

if(is_user_connected(kid) && is_user_alive(kid) && get_user_health(kid) <= 160)
{
if(hs)
set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3)) //HP za HS
else
set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar4)) // HP za killa
}
}


I nw czy zadziała to;

(kid,get_user_health(kid)+get_pcvar_num(cvar3)

Użytkownik glut1997 edytował ten post 19.07.2012 14:35

  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#2 glut

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 19.07.2012 18:31

Sorka ale nie mogę edytować Public DeathMsg poprawilem troche i nw czy zadziala

public DeathMsg()
{
new kid = read_data(1) //zabojca

new hs = read_data(3) // HeadShot (1 == true)

if(is_user_connected(kid) && is_user_alive(kid) && get_user_health(kid) <= 160)
{
if(hs)
{
if(set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3))) //HP za HS
{
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Healed +%d hp", cvar3)
}
else
{
if(set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar4))) // HP za killa
{
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Healed +%d hp", cvar4)
}
}
}
}
}

  • +
  • -
  • 1

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#3 ogieR8

    Wszechmogący

  • Power User

Reputacja: 203
Profesjonalista

  • Postów:641
  • Imię:Mariusz
  • Lokalizacja:Ruda Śląska
Offline

Napisano 19.07.2012 19:29

Nie jestem pewny, ale mój kod powinien działać w większych procentach niż Twój - z doświadczenia wiem, ze if(hs) nie działa (próbowałem kiedyś ;/) Ty dajesz w warunku 'set' ? ;o To nie ma prawa dzialac.

Jak np chcesz dać za HS'a 12$, a za KILL'a 5$ to tak : każdy kto walnie HS'a jest zabójcą, czyli zabójcy dać 5$, a temu kto walnie HS dać 7$, czemu ? Juz mowilem, jesli walnie hs to tez i musi zabic, wiec tą piątke dolarów te dostanie. Tak mi działało, o ile się nie mylę teraz.

Zamień :

Spoiler


Na :

Spoiler

Użytkownik ogieR- edytował ten post 19.07.2012 19:31

  • +
  • -
  • 1

Irytuje mnie nieczytelny kod, jeśli oczekujesz ode mnie pomocy - zmień to !


#4 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 19.07.2012 19:45

public DeathMsg()

{

        new kid = read_data(1)  //zabojca



        new hs = read_data(3)   // HeadShot (1 == true)



        if(is_user_alive(kid))

        {

                if(hs)

                {

                        set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3))) //HP za HS

                        set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)

                        show_hudmessage(kid, "Healthed +%d hp", cvar3)

                }

                else

                {

                        set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar4))) // HP za killa

                        set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)

                        show_hudmessage(kid, "Healthed +%d hp", cvar4)

                }

                if(get_user_health(kid) > 160)

                        set_user_health(kid, 160);

        }

}

  • +
  • -
  • 1

#5 glut

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 19.07.2012 19:55

czyli tak będzie działać jak zrobie ??

public DeathMsg()
{
new kid = read_data(1) //zabojca

new hs = read_data(3) // HeadShot (1 == true)

if(is_user_connected(kid) && is_user_alive(kid) && get_user_health(kid) >= 160)
{
if(hs)
{
if(set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3))) //HP za HS
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Healed +%d hp", cvar3)
}
else
{
if(set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar4))) // HP za killa
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Healed +%d hp", cvar4)
}
}
}

  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#6 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 19.07.2012 20:01

usun is_user_connected, skoro masz is user alive
I po dodaniu moze przekroczyc 160hp, wiec dodaj warunek ze jzeli przekroczy, ustawia 160hp

i usun set_user_health z if()
  • +
  • -
  • 1

#7 glut

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 19.07.2012 20:04

aha czyli kod może być tak i bd all ok :)

public DeathMsg()
{
new kid = read_data(1) //zabojca

new hs = read_data(3) // HeadShot (1 == true)

if(is_user_alive(kid) && get_user_health(kid) >= 160)
{
if(hs)
{
if(set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3))) //HP za HS
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Healed +%d hp", cvar3)
}
else
{
if(set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar4))) // HP za killa
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Healed +%d hp", cvar4)
}
}
else
{
set_user_health(kid, 160)
}
}

  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#8 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 19.07.2012 20:07

niestety nie, usun set_user_health z if(), i bedzie dodawac 160hp, jezeli gracz nie zabil nikogo, i dodaj na gore if(!is_user_alive(kid)) return PLUGIN_CONTINUE;

i na sam dol przed ostatnio klamra dodaj return PLUGIN_CONTINUE;

Użytkownik d0n tHe Pr0oo edytował ten post 19.07.2012 20:08

  • +
  • -
  • 1

#9 glut

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 19.07.2012 20:11

czyli tak ma być ??

public DeathMsg()
{
new kid = read_data(1) //zabojca

new hs = read_data(3) // HeadShot (1 == true)

if(!is_user_alive(kid))
return PLUGIN_CONTINUE;
{
if(hs)
{
if(set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3))) //HP za HS
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Healed +%d hp", cvar3)
}
else
{
if(set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar4))) // HP za killa
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Healed +%d hp", cvar4)
}
}
if(get_user_health(kid) >= 160)
set_user_health(kid, 160);
return PLUGIN_CONTINUE;
}

  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#10 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.07.2012 20:13

if(is_user_alive(kid) && get_user_health(kid) >= 160)
jakiekolwiek życie zostanie dodane tylko, jeśli zabójca ma min. 160 HP.

@up
if(set_user_health
nie jest to poprawne.

@edit: Nie możesz od tak pobrać sobie cvar3 jako wartość cvara. Należy użyć get_pcvar_num(cvar3)

#11 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 19.07.2012 20:14

usun if() tam gdzie set_user_health czyli
if(set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3)))


na

set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3))


tak samo zrob przy hp za killa oraz tak dla poprawki nie ma słowa healed :>

Użytkownik d0n tHe Pr0oo edytował ten post 19.07.2012 20:15

  • +
  • -
  • 1

#12 glut

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 19.07.2012 20:18

czyli będzie

public DeathMsg()
{
new kid = read_data(1) //zabojca

new hs = read_data(3) // HeadShot (1 == true)

if(!is_user_alive(kid))
return PLUGIN_CONTINUE;
{
if(hs)
{
set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar3)) //HP za HS
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Otrzymales +%d do hp", get_pcvar_num(cvar3))
}
else
{
set_user_health(kid,get_user_health(kid)+get_pcvar_num(cvar4)) // HP za killa
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
show_hudmessage(kid, "Otrzymales +%d do hp", get_pcvar_num(cvar4))
}
}
if(get_user_health(kid) >= 160)
set_user_health(kid, 160);
return PLUGIN_CONTINUE;
}


i chciałem się zapytać czy to bd poprawne :)

new flaga = ADMIN_LEVEL_H

Użytkownik glut1997 edytował ten post 19.07.2012 20:20

  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#13 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 19.07.2012 20:19

@down a tak :

@edit pod if(!is_user_alive(id)) nie dawaj klamry
new flaga = get_user_flags(id);

nie zadziała, ale nie podtwierdze

Użytkownik d0n tHe Pr0oo edytował ten post 19.07.2012 20:22

  • +
  • -
  • 0

#14 glut

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 19.07.2012 20:21

Beniowi chodziło o
show_hudmessage(kid, "Healed +%d hp", cvar4)


@up

mi chodzi o

new flaga = ADMIN_LEVEL_H

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /vip","opis_vipa");
register_clcmd("say /mv","menu_vipa",flaga);
register_clcmd("say /bronie","bronie",flaga);
register_clcmd("say /sklep","sklep",flaga);
}

Użytkownik glut1997 edytował ten post 19.07.2012 20:24

  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#15 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.07.2012 20:23

Uprościłem kod i poprawiłem co nieco:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <cstrike>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

#define HP_MAX 160

new cvar,cvar2,cvar3,cvar4

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

cvar = register_cvar("block_bronie","1")
cvar2 = register_cvar("block_sklep","1")
cvar3 = register_cvar("kill_hs","20")
cvar4 = register_cvar("kill","10")
}

public DeathMsg()
{
new kid = read_data(1) //zabojca

new hs = read_data(3) // HeadShot (1 == true)

if(is_user_alive(kid))
{
new hp=get_user_health(kid)
new newhp=min(hp+get_pcvar_num(hs?cvar3:cvar4),HP_MAX)
set_user_health(kid,newhp);
new healed=max(0,newhp-hp);
if(healed){
show_hudmessage(kid, "Healed +%d hp", healed)
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
}
}
}

(19.07.2012 20:32):
Kod jeszcze trochę poprawiłem.

@down: To świetnie! Zdecydowana większość chce tylko i wyłącznie gotowca, idąc najmniejszą linią oporu. Wspaniale świadczy o Tobie, że sam chcesz się nauczyć i potrafić na przyszłość pisać kolejne pluginy, wciąż pogłębiając swoją wiedzę i umiejętności. Ode mnie mega plus za podejście do sprawy.

Być może dojdziemy do podobnego fragmentu kodu pod koniec, dlatego zamieszczam ;)

Użytkownik benio101 edytował ten post 19.07.2012 20:28


#16 glut

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 19.07.2012 20:26

Benio dzięki ale chcę zrobić według swoich umiejętności bo chcę się nauczyć a nie mieć gotowca. Ten vip nie jest po to aby był tylko traktuje to jak małe wprowadzenie do scriptingu amxx :)
  • +
  • -
  • 1

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#17 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 19.07.2012 20:28

zamiast uzywac
new flaga = ADMIN_LEVEL_H

uzyj
#define flaga ADMIN_LEVEL_H

  • +
  • -
  • 1

#18 glut

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 19.07.2012 20:30

czyli

#define flaga ADMIN_LEVEL_H

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /vip","opis_vipa");
register_clcmd("say /mv","menu_vipa",flaga);
register_clcmd("say /bronie","bronie",flaga);
register_clcmd("say /sklep","sklep",flaga);
}

(19.07.2012 23:26):
tak

  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#19 Nenczoks

    Banned

  • Zbanowany

Reputacja: 50
Pomocny

  • Postów:358
  • Lokalizacja:Warszawa
Offline

Napisano 19.07.2012 22:51

Dla mnie niezrozumiałe jest to: is_user_alive(kid) podczas kiedy kid = zabójca. Po co sprawdzanie czy zabójca jest żywy. Prędzej czy żywy jest ten zabity (najpierw is_user_connected(np. zabity). - to będzie lepszym rozwiązaniem według mnie.

Użytkownik Nenczoks edytował ten post 19.07.2012 22:52


#20 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 19.07.2012 23:25

@up: Prosty przykład: CT rzuca HE, wnet dostaje HS z AK od Terro, po czym rzucony granat, nie żyjącego już CT dobija Terro, tym samym zabójca (CT, który rzucił HE) jest martwy (został zabity przez Terro w trakcie lotu HE).




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

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