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 Nowy

1/x z he, pytanie

cod nowy

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

#1 C@w@ler

    Wszechwidzący

  • Zbanowany

Reputacja: 18
Początkujący

  • Postów:260
  • GG:
  • Imię:Sebo
  • Lokalizacja:Łomża
Offline

Napisano 14.05.2012 14:25

Witam!
Mam pytanie jak zrobic 1/x z he i 1/1, do tej pory robilem taka funkcja, ktora nie dziala. proszę tylko o ten wycinek z public take damage dot. granatu.
Dołączona grafika
Dołączona grafika

#2 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 14.05.2012 15:10

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker))
	    return HAM_IGNORED;
    
    new health = get_user_health(this);

    new klasaa[32];
    cod_get_class_name(cod_get_user_class(idattacker),klasaa,32)
    if(get_user_weapon(idattacker) == CSW_HEGRENADE && random_num(1,x) == 1 && equal(klasaa,"Nazwa Klasy"))
	    damage = float(health);
    
    SetHamParamFloat(4, damage);
    
    return HAM_IGNORED;
}

moze tak.?

Użytkownik CheQ edytował ten post 14.05.2012 15:46

  • +
  • -
  • 0

#3 C@w@ler

    Wszechwidzący

  • Autor tematu
  • Zbanowany

Reputacja: 18
Początkujący

  • Postów:260
  • GG:
  • Imię:Sebo
  • Lokalizacja:Łomża
Offline

Napisano 14.05.2012 16:58

&& equal(klasaa,"Nazwa Klasy"))
A to co? Bo jakoś nie ogarniam?

A to zadziała?

#include <amxmodx>
#include <amxmisc>
#include <codmod_frakcje>
#include <hamsandwich>
#include <fun>
#define DMG_HEGRENADE (1<<24)

new const nazwa[] = "General [PREMIUM]";
new const opis[] = "1/1 z he, szybko biega";
new const bronie = (1<<CSW_HEGRENADE)|(1<<CSW_DEAGLE)|(1<<CSW_AK47);
new const zdrowie = 40;
new const kondycja = 30;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new const frakcja[] = "Klasy premium";
new bool:ma_klase[33];

public plugin_init()
{
register_plugin(nazwa, "1.0", "C@w@ler");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, frakcja);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[General [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
give_item(id, "weapon_hegrenade");

return COD_CONTINUE;
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;

if(!ma_klase[idattacker])
return HAM_IGNORED;

if(get_user_weapon(idattacker) == CSW_HEGRENADE && damagebits & DMG_HEGRENADE && damage > 20.0)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}

Użytkownik C@w@ler edytował ten post 14.05.2012 16:59

Dołączona grafika
Dołączona grafika

#4 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 14.05.2012 17:40

dodałem ifa bo nie wiem czy masz w cod_class enablet zmienną logiczną więc sprawdziłem czy nazwa klasy gracza jest taka sama jak Klasa w pluginie.


Sprawdz to.

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
  return HAM_IGNORED;

if(!ma_klase[idattacker])
  return HAM_IGNORED;

if(get_user_weapon(idattacker) == CSW_HEGRENADE && damagebits & DMG_HEGRENADE && damage > 20.0)
  damage=float(get_user_health(this);

SetHamParamFloat(4, damage);
return HAM_IGNORED;
}

  • +
  • -
  • 0

#5 C@w@ler

    Wszechwidzący

  • Autor tematu
  • Zbanowany

Reputacja: 18
Początkujący

  • Postów:260
  • GG:
  • Imię:Sebo
  • Lokalizacja:Łomża
Offline

Napisano 14.05.2012 17:44


codclass_general.sma(47) : error 001: expected token: ",", but found ";"


Dołączona grafika
Dołączona grafika

#6 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 14.05.2012 18:04

1. C@w@ler Twój kod zadziała tylko usuń:
damage > 20.0
Bo ta linijka sprawia, że 1/1 z granata zadziała wtedy, gdy podstawowe obrażenia z he będą wynosić 20 lub więcej. Takiego kodu się używa do kosy PPM

2. Co do Kodu Cheq jest błąd w tym samym co podałem przed chwilą (znaczy to nie jest błąd, ale jeśli chcesz aby 1/1 z kosy działał cały czas to usuń to) i w tym:
damage=float(get_user_health(this);
Nie każdy nawias jest zamknięty. Zamień na to:
damage=float(get_user_health(this));

Ale polecam standardowy sposób czyli ten z cod_inflict_damage.

Poprawiona klasa:
Spoiler

Użytkownik radim edytował ten post 14.05.2012 18:06

  • +
  • -
  • 1

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#7 C@w@ler

    Wszechwidzący

  • Autor tematu
  • Zbanowany

Reputacja: 18
Początkujący

  • Postów:260
  • GG:
  • Imię:Sebo
  • Lokalizacja:Łomża
Offline

Napisano 14.05.2012 21:31

Jutro sprawdzę czy działa. Dzięki.
Dołączona grafika
Dołączona grafika





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

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

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