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

[Nowy COD] Przerobienie perku na klase


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

#1 Emulov.

    Zaawansowany

  • Zbanowany

Reputacja: 7
Nowy

  • Postów:144
  • Imię:Sylwek
  • Lokalizacja:Olsztyn
Offline

Napisano 29.08.2011 15:25

Cześć, potrzebuje waszej pomocy.

Mam sobie jakiś perk, np.


#include <amxmodx>
#include <codmod>
#include <fakemeta>
#include <colorchat>

#define perk_name "Sztuka Dezorientacji"
#define perk_desc "Masz 1/LW szansy na ukrycie celownika wroga po strzale"

new bool:ma_perk[33];
new wartosc_perku[33];

new g_msg_hideweapon;

public plugin_init()
{
    register_plugin(perk_name, "1.0", "QTM_Peyote");
    
    cod_register_perk(perk_name, perk_desc, 2, 5);
    
    register_event("Damage", "Damage", "b", "2!0");
    
    g_msg_hideweapon = get_user_msgid("HideWeapon");
}

public cod_perk_enabled(id, wartosc)
{
    ma_perk[id] = true;
    wartosc_perku[id] = wartosc;
 perk_name);
}

public cod_perk_disabled(id)
    ma_perk[id] = false;

public Damage(id)
{
    new attacker = get_user_attacker(id);
    
    
    if(!is_user_connected(attacker))
   	 return PLUGIN_CONTINUE;
    
    if(!ma_perk[attacker])
   	 return PLUGIN_CONTINUE;
   	 
    if(random(wartosc_perku[attacker]))
   	 return PLUGIN_CONTINUE;
    
    Dzialaj(id);
    
    return PLUGIN_CONTINUE;
}

public Dzialaj(id)
{
    ChangeHUD(id, 1<<2);
    set_task(10.0, "wyłącz", id);
}

public wyłącz(id)
    ChangeHUD(id, 0);

public ChangeHUD(id, i)
{   	 
    message_begin(MSG_ONE_UNRELIABLE, g_msg_hideweapon, _, id);
    write_byte(i);
    message_end();
}

No a chcialbym przerobic go na klase, w sumie umialbym, gdyby nie to że on ma 2,5 i ja nie mam pojecia jak przeniesc to na klase, wyszlo mi cos takiego :


/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <codmod>
#include <engine>
#include <colorchat>

new const nazwa[] = "Zlodziej";
new const opis[] = "Masz 1/LW szansy na ukrycie celownika wroga po strzale";
new const bronie = 1<<CSW_GALIL;
new const zdrowie = 15;
new const kondycja = 30;
new const inteligencja = 15;
new const wytrzymalosc = 0;

new bool:ma_klase[33];
new wartosc_klasy[33];

public plugin_init() {
    register_plugin(nazwa, "1.0", "QTM_Peyote");
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
    register_event("Damage", "Damage", "b", "2!0");
    
    g_msg_hideweapon = get_user_msgid("HideWeapon");
}

public cod_class_enabled(id)
{
    ma_klase[id] = true;
    wartosc_klasy[id] = wartosc;
}

public cod_class_disabled(id)
{
    ma_klase[id] = false;
}

public Damage(id)
{
    new attacker = get_user_attacker(id);
    
    
    if(!is_user_connected(attacker))
   	 return PLUGIN_CONTINUE;
    
    if(!ma_perk[attacker])
   	 return PLUGIN_CONTINUE;
   	 
    if(random(wartosc_perku[attacker]))
   	 return PLUGIN_CONTINUE;
    
    Dzialaj(id);
    
    return PLUGIN_CONTINUE;
}

public Dzialaj(id)
{
    ChangeHUD(id, 1<<2);
    set_task(10.0, "wyłącz", id);
}

public wyłącz(id)
    ChangeHUD(id, 0);

public ChangeHUD(id, i)
{   	 
    message_begin(MSG_ONE_UNRELIABLE, g_msg_hideweapon, _, id);
    write_byte(i);
    message_end();
}

No ale nie mam tych 2,5 bo jesli je dam to nie moge skompilowac .. :<

Jak mam to robic ?

#2 HaDeS From HELL

    CoD MoD Fanatyk

  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 29.08.2011 16:25

zmień

ma_perk

Na

ma_klase

Użytkownik Szybcioor edytował ten post 29.08.2011 16:25

  • +
  • -
  • 1

#3 Emulov.

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 7
Nowy

  • Postów:144
  • Imię:Sylwek
  • Lokalizacja:Olsztyn
Offline

Napisano 29.08.2011 18:13

Tyle że w perku jest :
cod_register_perk(perk_name, perk_desc, 2, 5);
Te 2,5 nie oznacza przypadkiem szansy na znikniecie celownika ? Jak to przeniesc ? Moglby ktos poprawić tą klase abym miał wzór co źle robie ?

#4 A może sma?

    Godlike

  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 29.08.2011 18:33

if(random(wartosc_perku[attacker]))
return PLUGIN_CONTINUE;

Dzialaj(id);

na:

if(random(5) == 0)
return PLUGIN_CONTINUE;

Dzialaj(id);

I usuń wartosc_klasy[33] z sma
  • +
  • -
  • 1

#5 Emulov.

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 7
Nowy

  • Postów:144
  • Imię:Sylwek
  • Lokalizacja:Olsztyn
Offline

Napisano 29.08.2011 18:41

Lapcie plusy. Jeszcze jedno pytanie na plusa ;d

if(random(5) == 0)

Nie powinno być przypadkiem :

if(random(5) == 1)


#6 A może sma?

    Godlike

  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 29.08.2011 19:31

A co to za różnica?
  • +
  • -
  • 0

#7 Emulov.

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 7
Nowy

  • Postów:144
  • Imię:Sylwek
  • Lokalizacja:Olsztyn
Offline

Napisano 30.08.2011 17:49

Jako że temat nie został zamknięty potrzebuje znów pomocy ...

Mam perk :

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <hamsandwich>
#include <codmod>


new const perk_name[] = "Pancerz Neomexowy";
new const perk_desc[] = "Masz 1/LW szans na odbicie pocisku";

new bool:ma_perk[33];
new wartosc_perku[33];

public plugin_init()
{
    register_plugin(perk_name, "1.0", "QTM_Peyote");
    
    cod_register_perk(perk_name, perk_desc, 4, 7);
    RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_perk_enabled(id, wartosc)
{
    ma_perk[id] = true;
    wartosc_perku[id] = wartosc;
}

public cod_perk_disabled(id)
    ma_perk[id] = false;

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
   	 return HAM_IGNORED;
   	 
    if(!ma_perk[this] || random_num(1, wartosc_perku[this]) != 1)
   	 return HAM_IGNORED;
   	 
    cod_inflict_damage(this, idattacker, damage, 0.0, idinflictor, damagebits);
    return HAM_SUPERCEDE;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/

A chce go przerobić na klase, to jak ? Na prawdę tego nie kumam .. :<

I wyszło mi coś takiego :

#include <amxmodx>
#include <codmod>
#include <hamsandwich>

new bool:ma_klase[33];

new const nazwa[] = "Strzelec";
new const opis[] = "Brak";
new const bronie = 1<<CSW_M4A1;
new const zdrowie = 10;
new const kondycja = 0;
new const pancerz = 0;
new const inteligencja = 0;
new const wytrzymalosc = 20;

public plugin_init() {
    register_plugin(nazwa, "1.0", "QTM_Peyote");
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, pancerz, inteligencja, wytrzymalosc);
    RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public cod_class_enabled(id)
{
    ma_klase[id] = true;

}

public cod_class_disabled(id)
{
    ma_klase[id] = false;

}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
   	 return HAM_IGNORED;
   	 
    if(random(10) == 2)
   	 return HAM_IGNORED;
   	 
    cod_inflict_damage(this, idattacker, damage, 0.0, idinflictor, damagebits);
    return HAM_SUPERCEDE;
}

Tak mam to robić ?

Jeśli ktoś odpowie - Tak to temat można zamknąć

#8 A może sma?

    Godlike

  • Power User

Reputacja: 547
Wszechwiedzący

  • Postów:1 464
  • Steam:steam
  • Imię:Tomasz
  • Lokalizacja:Polska
Offline

Napisano 30.08.2011 23:24

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

if(!ma_klase[id])
return HAM_IGNORED;

if(random(10) == 2)
return HAM_IGNORED;

cod_inflict_damage(this, idattacker, damage, 0.0, idinflictor, damagebits);
return HAM_SUPERCEDE;
}

Użytkownik A może sma? edytował ten post 30.08.2011 23:24

  • +
  • -
  • 0




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

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