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

Item czy mozna cos takego zrobic


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

#1 Divic

    Wszechpomocny

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 04.06.2011 17:02

Tak siedzę i myślę czy da się zrobić taki item który doda nam do zadawanych obrażeń +10 jeśli gracz w którego będziemy strzelać będzie miał o 40 lvl więcej.


Oraz item który będzie miał 1/x na zabicie danej klasy czyli ze np: ustawiamy taki item 1/1 aby zabijał paladyna
Czyli we wszystkich uderzamy normalnie a jeśli uderzymy paladyna od razu umiera
  • +
  • -
  • 0

#2 grs4

    Profesjonalista

  • Zbanowany

Reputacja: -1
Nowy

  • Postów:167
  • Lokalizacja:Wojkowice
Offline

Napisano 04.06.2011 18:05

Mozna ale nie wiem jak, wiem jak sie dodaje normalne np tylko + 10 dmg do kazdej broni obojetnego lvl
w tym 2 da sie

if(klasa_gracza...)
jakos tak :D

Użytkownik grs4 edytował ten post 04.06.2011 18:06


#3 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 04.06.2011 18:53

Do pierwszego wykorzystujesz "player_b_damage" oraz warunek "if(player_lvl[id] > 40)", a z drugim to praktycznie to samo robisz, jak przy 1/x na zabicie z broni, tylko robisz warunek dodatkowy, że ofiara musi mieć jakąś konkretną klasę, np. "if(player_class[id] == Paladyn)"

Użytkownik sebul edytował ten post 04.06.2011 18:53

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 Divic

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 04.06.2011 19:57

aha z drogim chyba orientuje jak to muszę zrobić ale pierwszego nie bardzo mógłbym cie Sebul prosić o napisanie 1 ? :kwiaty:
  • +
  • -
  • 0

#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 04.06.2011 20:05

A nie sory, co do pierwszego źle zrozumiałem, musisz wykorzystać "player_b_damage[id]" i przy zadawaniu obrażeń dodać warunek
if(player_lvl[id]-player_lvl[attacker] > 40)

attacker - id atakującego (posiadającego item)
id - id ofiary

Użytkownik sebul edytował ten post 04.06.2011 20:05

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 Divic

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 04.06.2011 20:20

mógłbyś mi to sebul napisać tak wiesz łopatologicznie :) :blaga:
  • +
  • -
  • 0

#7 Stachuu :D ??

    Wszechobecny

  • Użytkownik

Reputacja: 237
Wszechwidzący

  • Postów:476
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Karsznice
Offline

Napisano 04.06.2011 20:38

np
if (zmiena_damage[attacker_id] > 0)
{
	if(player_lvl[id]-player_lvl[attacker_id] > 40)
	{
		if (get_user_health(id) > zmiena_damage[attacker_id])
		{
			set_user_health(id,get_user_health(id) - zmiena_damage[attacker_id])
			
			if (random_num(1,2) == 1) Effect_Bleed(id,248)
		} 
	}
	
}

  • +
  • -
  • 0

#8 GoldeN

    Wszechmogący

  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 04.06.2011 23:25

#include <hamsandwich> // Nie wiem czy jest w standardzie DB


plugin_init:
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");


public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(is_user_connected(idattacker) && get_user_team(idattacker) != get_user_team(this))
{
if(zmienna_itemu[idattacker] > 0 && player_lvl[this] >= player_lvl[idattacker] + 40)
{
new Float:dmg = float(zmienna_itemu[idattacker]);
SetHamParamFloat(4, damage + dmg);
return HAM_HANDLED;
}
}
return HAM_IGNORED;
}


Spróbuj tak. Stwórz zmienna zmienna_itemu[33] i ona ustala ile dmg więcej ma mieć gdy będzie się posiadało item.

Użytkownik GoldeN edytował ten post 04.06.2011 23:26


#9 Divic

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 04.06.2011 23:26

public add_bonus_antypaldamage(attacker_id,id,weapon)
{
if (player_b_antypal[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_M4A1)
{

if (!is_user_alive(id))
return PLUGIN_HANDLED

if (random_num(1,player_b_antypal[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"m4a1")

}

return PLUGIN_HANDLED
}

/* ==================================================================================================== */

i co podłożyć w tej linijce za m4a1 aby działało na każdej broni ?

jak zrobię tak będzie działać z każdej broni bo skompilowało :P
public add_bonus_antypaldamage(attacker_id,id,weapon)
{
if (player_b_antypal[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id))
{

if (!is_user_alive(id))
return PLUGIN_HANDLED

if (random_num(1,player_b_antypal[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"weapon")

}

return PLUGIN_HANDLED
}

Użytkownik Divic edytował ten post 04.06.2011 23:43

  • +
  • -
  • 0

#10 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 04.06.2011 23:42

Spróbuj tak. Stwórz zmienna zmienna_itemu[33] i ona ustala ile dmg więcej ma mieć gdy będzie się posiadało item.

Jak dla mnie, dla jednej rzeczy nie opłaca się tego dodawać, ale też może być.

i co podłożyć w tej linijce za m4a1 aby działało na każdej broni ?

if (player_b_antypal[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && player_class[id] == Paladyn)

  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#11 JLB. Leo

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:180
  • Imię:Paweł
  • Lokalizacja:Bielawa
Offline

Napisano 04.06.2011 23:43

#include <hamsandwich> // Nie wiem czy jest w standardzie DB


plugin_init:
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");


public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
        if(is_user_connected(idattacker) && get_user_team(idattacker) != get_user_team(this))
        {
                if(zmienna_itemu[idattacker] > 0 && player_lvl[this] >= player_lvl[idattacker] + 40)
                {
                        new Float:dmg = float(zmienna_itemu[idattacker]);
                        SetHamParamFloat(4, damage + dmg);
                        return HAM_HANDLED;
                }
        }
        return HAM_IGNORED;
}


Spróbuj tak. Stwórz zmienna zmienna_itemu[33] i ona ustala ile dmg więcej ma mieć gdy będzie się posiadało item.


bez sensu

public add_bonus_antypaldamage(attacker_id,id,weapon)
{
if (player_b_antypal[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_M4A1)
{

if (!is_user_alive(id))
return PLUGIN_HANDLED

if (random_num(1,player_b_antypal[attacker_id]) == 1)
UTIL_Kill(attacker_id,id,"m4a1")

}

return PLUGIN_HANDLED
}

/* ==================================================================================================== */



i co podłożyć w tej linijce za m4a1 aby działało na każdej broni ?


o co ci chodzi? Chcesz żeby działało nie tylko na m4, to usuń "&& weapon == CSW_M4A1"

#12 Divic

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 04.06.2011 23:50

o ta linijke mi chodzi
UTIL_Kill(attacker_id,id,"m4a1")

zamiast m4a1 dam "weapon" będzie dobrze?

Użytkownik Divic edytował ten post 04.06.2011 23:50

  • +
  • -
  • 0

#13 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 05.06.2011 00:09

o ta linijke mi chodzi

UTIL_Kill(attacker_id,id,"m4a1")

zamiast m4a1 dam "weapon" będzie dobrze?

Nie, daj "world", a jak chcesz, aby była broń, którą akurat ten paladyn obrywa, to musisz dodać takie coś
new weaponname[32];
get_weaponname(weapon, weaponname, 31);
replace(weaponname, 31, "weapon_", "");

i potem
UTIL_Kill(attacker, id, weaponname);

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#14 Divic

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 05.06.2011 00:55

czyli ma byc
/* ==================================================================================================== */
public add_bonus_antypaldamage(attacker_id,id,weapon)
{
if (player_b_antypal[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && player_class[id] == Paladyn)
{

if (!is_user_alive(id))
return PLUGIN_HANDLED

if (random_num(1,player_b_antypal[attacker_id]) == 1)
new weaponname[32];
get_weaponname(weapon, weaponname, 31);
replace(weaponname, 31, "weapon_", "");
UTIL_Kill(attacker, id, weaponname);

}

return PLUGIN_HANDLED
}

tak ma to byc?
czy
/* ==================================================================================================== */
public add_bonus_antypaldamage(attacker_id,id,weapon)
{
if (player_b_antypal[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && player_class[id] == Paladyn)
{

if (!is_user_alive(id))
return PLUGIN_HANDLED

if (random_num(1,player_b_antypal[attacker_id]) == 1)
{
new weaponname[32];
get_weaponname(weapon, weaponname, 31);
replace(weaponname, 31, "weapon_", "");
}
UTIL_Kill(attacker, id, weaponname);

}

return PLUGIN_HANDLED
}

Użytkownik Divic edytował ten post 05.06.2011 01:04

  • +
  • -
  • 0

#15 grs4

    Profesjonalista

  • Zbanowany

Reputacja: -1
Nowy

  • Postów:167
  • Lokalizacja:Wojkowice
Offline

Napisano 05.06.2011 10:08

czyli ma byc

/* ==================================================================================================== */
public add_bonus_antypaldamage(attacker_id,id,weapon)
{
if (player_b_antypal[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && player_class[id] == Paladyn)
{

if (!is_user_alive(id))
return PLUGIN_HANDLED

if (random_num(1,player_b_antypal[attacker_id]) == 1)
new weaponname[32];
get_weaponname(weapon, weaponname, 31);
replace(weaponname, 31, "weapon_", "");
UTIL_Kill(attacker, id, weaponname);

}

return PLUGIN_HANDLED
}

To ma byc

#16 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 05.06.2011 11:34

Jeszcze nie tak ;] Po "if (random_num(1,player_b_antypal[attacker_id]) == 1)" musisz dodać klamrę "{".
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#17 Divic

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 05.06.2011 11:34

K skompilowało dzięki

Użytkownik Divic edytował ten post 05.06.2011 11:47

  • +
  • -
  • 0




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

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