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
CoD Stary

Item redukcja hp za obrazenia

CoD Stary

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

#1 ReeBok1993

    Zaawansowany

  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:82
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 28.04.2011 17:44

Witam,
czy dalo by rade zrobic taki item ze jak np. zadam 100 dmg to ja dostaje 50 hp czyli polowe zadanego dmg?
dalem to w public odrodzenie
    if(informacje_przedmiotu_gracza[id][0] == 49)
    {
        maksymalne_zdrowie_gracza[id] += damage/2;
    }

ale nie dziala
logi:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

QTM_CodMod.sma(632) : warning 217: loose indentation
QTM_CodMod.sma(661) : warning 217: loose indentation
QTM_CodMod.sma(670) : warning 217: loose indentation
QTM_CodMod.sma(769) : warning 217: loose indentation
QTM_CodMod.sma(774) : warning 217: loose indentation
QTM_CodMod.sma(786) : warning 217: loose indentation
QTM_CodMod.sma(787) : warning 217: loose indentation
QTM_CodMod.sma(907) : error 017: undefined symbol "damage"
QTM_CodMod.sma(2424) : warning 217: loose indentation
QTM_CodMod.sma(2545) : warning 204: symbol is assigned a value that is never used: "nazwa"

1 Error.
Could not locate output file QTM_CodMod.amxx (compile failed).


  • +
  • -
  • 0

#2 Svizz

    Zaawansowany

  • Użytkownik

Reputacja: 33
Życzliwy

  • Postów:142
  • GG:
  • Imię:Svizz
  • Lokalizacja:Polska :)
Offline

Napisano 28.04.2011 17:59

Takie rzeczy daje się w public TakeDamage.
  • +
  • -
  • 0

#3 ReeBok1993

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:82
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 28.04.2011 18:12

tez nie dziala

niby ze niezadeklarowane "id"
  • +
  • -
  • 0

#4 Goliath

    Godlike

  • Przyjaciel

Reputacja: 1 237
Godlike

  • Postów:2 334
  • GG:
  • Steam:steam
  • Imię:Maciej
  • Lokalizacja:Mońki
Offline

Napisano 28.04.2011 18:50

Zmienna przechowująca id gracza atakującego to "idattacker" (bez cudzysłowia), a nie "id".

EDIT: Poza tym, lepiej by było dać tak:
    if(informacje_przedmiotu_gracza[idattacker][0] == 49)
{
set_user_health(idattacker, get_user_health(idattacker)+damage/2);
}

Użytkownik Goliath edytował ten post 28.04.2011 18:55

  • +
  • -
  • 0

#5 Grzesiek

    Wszechpomocny

  • Użytkownik

Reputacja: 96
Zaawansowany

  • Postów:343
  • GG:
Offline

Napisano 28.04.2011 19:08

a może spróbuj zrobić to na podstawie innego itemu np wzmocnionej kamizelki która obniżała zadawane obrażenia tu mam wycinek z .sma nic nie obiecuje to tylko pomysł.

if(informacje_przedmiotu_gracza[this][0] == 2 || informacje_przedmiotu_gracza[this][0] == 3)
		damage-=(float(informacje_przedmiotu_gracza[this][1])<damage)? float(informacje_przedmiotu_gracza[this][1]): damage;


  • +
  • -
  • 0

#6 ReeBok1993

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:82
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 29.04.2011 14:18

Goliath
dodaje mi hp ale wyskakuja jakies kosmiczne wartosci typu "12415236236" ( wiem bo mam pod itemem zdrowie ) i wyglada to tak jakbym mial 256 hp czyli blokuje mi sie chodzenie ( prawo to lewo lewo to prawo itp. )

Użytkownik ReeBok1993 edytował ten post 29.04.2011 14:19

  • +
  • -
  • 0

#7 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 29.04.2011 14:26

public Damage(id)
{
	new attacker = get_user_attacker(id);
	new damage = read_data(2);
	if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker || !klasa_gracza[attacker])
		return PLUGIN_CONTINUE;
	
	if(informacje_przedmiotu_gracza[attacker][0] == 12 && random_num(1, informacje_przedmiotu_gracza[id][1]) == 1)
		Display_Fade(id,1<<14,1<<14 ,1<<16,255,155,50,230);
	if(get_user_team(id) != get_user_team(attacker))
	{
		while(damage>20)
		{
			damage-=20;
			doswiadczenie_gracza[attacker]++;
                         if(informacje_przedmiotu_gracza[id][0] == 49)
                         {
                                 set_user_health(attacker,get_user_health(attacker)+5)// O Tu!
                         }
		}
	}
	SprawdzPoziom(attacker);
	return PLUGIN_CONTINUE;
}

za każde zadane 20 obrażeń gracz dostaje 5 hp ;)

Nie jestem pewnien czy działa ale tak powinno być

Użytkownik CheQ edytował ten post 29.04.2011 14:26

  • +
  • -
  • 1

#8 Goliath

    Godlike

  • Przyjaciel

Reputacja: 1 237
Godlike

  • Postów:2 334
  • GG:
  • Steam:steam
  • Imię:Maciej
  • Lokalizacja:Mońki
Offline

Napisano 29.04.2011 14:31

A zobacz tak:
    if(informacje_przedmiotu_gracza[idattacker][0] == 49)
{
set_user_health(idattacker, get_user_health(idattacker)+floatround(damage*0.5));
}

  • +
  • -
  • 0

#9 ReeBok1993

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:82
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 29.04.2011 14:56

CheQ
kompiluje sie ale nic nie daje tak jakby item nic nie robil


Goliath
działa :D tylko jak jeszcze zrobić aby zwiększało hp do maksymalnej ilości hp jaką mam na poczatku rundy bo jak testowalem na podbotach to mialem nawet 704 HP
  • +
  • -
  • 0

#10 Goliath

    Godlike

  • Przyjaciel

Reputacja: 1 237
Godlike

  • Postów:2 334
  • GG:
  • Steam:steam
  • Imię:Maciej
  • Lokalizacja:Mońki
Offline

Napisano 29.04.2011 15:32

Spróbuj:
    if(informacje_przedmiotu_gracza[idattacker][0] == 49)
{
set_user_health(idattacker, (get_user_health(idattacker)+floatround(damage*0.5) > maksymalne_zdrowie_gracza[idattacker])? maksymalne_zdrowie_gracza[idattacker] : get_user_health(idattacker)+floatround(damage*0.5));
}

  • +
  • -
  • 1

#11 ReeBok1993

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:82
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 29.04.2011 15:47

ok działa
dzięki za pomoc wszystkim
Po robocie plus się należy :P
hehe xD

@edit
Jak chce zmienić ilosc hp to po prostu zmieniam "0.5" na inna liczbe w tych dwóch miejscach?
A jeśli do klasy dodać ten item to będzie tak: ?
if(informacje_przedmiotu_gracza[idattacker][0] == 49 || klasa_gracza[idattacker] == NazwaKlasy)
    {
        set_user_health(idattacker, (get_user_health(idattacker)+floatround(damage*0.5) > maksymalne_zdrowie_gracza[idattacker])? maksymalne_zdrowie_gracza[idattacker] : get_user_health(idattacker)+floatround(damage*0.5));
    }

Użytkownik ReeBok1993 edytował ten post 29.04.2011 15:52

  • +
  • -
  • 0

#12 Svizz

    Zaawansowany

  • Użytkownik

Reputacja: 33
Życzliwy

  • Postów:142
  • GG:
  • Imię:Svizz
  • Lokalizacja:Polska :)
Offline

Napisano 30.04.2011 07:13

Jak chce zmienić ilosc hp to po prostu zmieniam "0.5" na inna liczbe w tych dwóch miejscach?

Tak

A jeśli do klasy dodać ten item to będzie tak: ?

Tak
  • +
  • -
  • 1

#13 ReeBok1993

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 34
Życzliwy

  • Postów:82
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 30.04.2011 12:34

Dzięki
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: CoD Stary

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

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