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
Klasa

[ROZWIĄZANE] 1/x na zabicie z generatora klas dodaje się do każdej broni

klasa

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

#1 Krzysztof97

    Pomocny

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:50
  • Imię:Krzysztof
  • Lokalizacja:Blubla
Offline

Napisano 20.12.2012 21:47

Witajcie!
Mam problem.
Mianowicie, gdy robię klasę w generatorze klas i jest w niej funkcja np. 1/1 z awp, to dodaje się to automatycznie do wszystkich broni(nawet jeśli nie zaznaczę np. usp w generatorze to usp też ma 1/1).
Co tutaj bym musiał zedytować, żeby tylko do scouta 1/4(inny plugin) było aktywne?(jestem zielony w pawnie:D)
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
#include <cstrike>
	   
new const nazwa[]   = "test";
new const opis[]    = "xxx";
new const bronie    = (1<<CSW_SCOUT);
new const zdrowie   = 0;
new const kondycja  = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
   
new ma_klase[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
  
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
  client_print(id, print_chat, "[test] Nie masz uprawnien, aby uzywac tej klasy.")
  return COD_STOP;
}
ma_klase[id] = true;
  
return COD_CONTINUE;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 5) != 1 )
  return HAM_IGNORED;
cs_set_user_armor(this, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(this) + 1));
return HAM_HANDLED;
}


Pozdrawiam

Użytkownik Krzysztof97 edytował ten post 20.12.2012 21:48

  • +
  • -
  • 0

#2 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 20.12.2012 22:13

W generatorze nie dziala funkcja dla konkretnej broni, tylko dla wszystkich. Poszukaj w google np. 1/x z wybranej broni amxx
Na pewno znajdziesz :)
Pozdrawiam
  • +
  • -
  • 0

#3 Krzysztof97

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:50
  • Imię:Krzysztof
  • Lokalizacja:Blubla
Offline

Napisano 20.12.2012 22:21

Mógłby ktoś opisać co bym musiał zmienić w kodzie, żeby tylko dla jednej/wybranych broni działało te 1/x?:D
Pozdrawiam
  • +
  • -
  • 0

#4 Piotreq183

    Banned

  • Zbanowany

Reputacja: 14
Początkujący

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

Napisano 21.12.2012 14:40

Na końcu includ'ów dopisujesz(chyba, że już masz):
#include <hamsandwich>

pod tym dajesz:
#define DMG_BULLET (1<<1)

W Public plugin_init dajesz
RegisterHam(Ham_TakeDamage, "player", "TakeDamage_JedenZ");

A na końcu dajesz:

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

if(!ma_klase[idattacker])
return HAM_IGNORED;

if(!(damagebits & DMG_BULLET))
return HAM_IGNORED;

if(get_user_weapon(idattacker) == CSW_XXX && random_num(1,X) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

return HAM_IGNORED;
}


Zamiast CSW_XXX dajesz swoją broń, a w miejscu random_num(1,X) zamiast X wpisujesz jaka ma być szansa na zabicie

#5 Krzysztof97

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:50
  • Imię:Krzysztof
  • Lokalizacja:Blubla
Offline

Napisano 22.12.2012 16:34

Próbuję i lipa:
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
#include <cstrike>
#include <fun>
	   
new const nazwa[]   = "Rasiu [PREMIUM]";
new const opis[]    = "Posiada m4 + 1/10 z każdej broni";
new const bronie    = (1<<CSW_HEGRENADE)|(1<<CSW_M4A1)|(1<<CSW_FLASHBANG)|(1<<CSW_DEAGLE);
new const zdrowie   = 30;
new const kondycja  = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;
   
new ma_klase[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
  
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cool.png' class='bbc_emoticon' alt='B)' />)
{
  client_print(id, print_chat, "[Rasiu [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.")
  return COD_STOP;
}
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
ma_klase[id] = true;
  
return COD_CONTINUE;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 10) != 1 )
  return HAM_IGNORED;
cs_set_user_armor(this, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(this) + 1));
return HAM_HANDLED;
}

Takie errory w kompilatorze wyskakują:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
codclass_PomperPREMIUM.sma(20) : warning 217: loose indentation
codclass_PomperPREMIUM.sma(22) : warning 217: loose indentation
codclass_PomperPREMIUM.sma(41) : error 017: undefined symbol "ma_klase"
codclass_PomperPREMIUM.sma(41) : warning 215: expression has no effect
codclass_PomperPREMIUM.sma(41) : error 001: expected token: ";", but found "]"
codclass_PomperPREMIUM.sma(41) : error 029: invalid expression, assumed zero
codclass_PomperPREMIUM.sma(41) : fatal error 107: too many error messages on one line
Compilation aborted.
4 Errors.
Pozdro
  • +
  • -
  • 0

#6 Piotreq183

    Banned

  • Zbanowany

Reputacja: 14
Początkujący

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

Napisano 22.12.2012 19:01

musisz kompilować normalnie, wtedy nie będzie błędów, sprawdziłem :P

#7 Krzysztof97

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:50
  • Imię:Krzysztof
  • Lokalizacja:Blubla
Offline

Napisano 22.12.2012 21:32

Mógłbyś mi podać amxx? Bo u mnie przy lokalnej kompilacji error 1 jest i nie działa;p
  • +
  • -
  • 0

#8 LuKoIl

    Pomocny

  • Użytkownik

Reputacja: 32
Życzliwy

  • Postów:67
  • Steam:steam
  • Imię:Łukasz
Offline

Napisano 22.12.2012 22:09

Nie dodałeśtego

#define DMG_BULLET (1<<1)


pod includami, oraz

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

if(!ma_klase[idattacker])
return HAM_IGNORED;

if(!(damagebits & DMG_BULLET))
return HAM_IGNORED;

if(get_user_weapon(idattacker) == CSW_XXX && random_num(1,X) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

return HAM_IGNORED;
}


na końcu.

czyli wszystko powinno wyglądac tak:


#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
#include <cstrike>
#include <fun>

#define DMG_BULLET (1<<1)

new const nazwa[] = "Rasiu [PREMIUM]";
new const opis[] = "Posiada m4 + 1/10 z każdej broni";
new const bronie = (1<<CSW_HEGRENADE)|(1<<CSW_M4A1)|(1<<CSW_FLASHBANG)|(1<<CSW_DEAGLE);
new const zdrowie = 30;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;

new ma_klase[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_B))
{
client_print(id, print_chat, "[Rasiu [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
ma_klase[id] = true;

return COD_CONTINUE;
}
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(!ma_klase[idattacker])
return HAM_IGNORED;

if(!(damagebits & DMG_BULLET))
return HAM_IGNORED;

if(get_user_weapon(idattacker) == CSW_XXX && random_num(1,X) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

return HAM_IGNORED;
}

Użytkownik LuKoIl edytował ten post 22.12.2012 22:15

  • +
  • -
  • 0
Jeśli pomogłem Daj plusika :plus: :) :) :)

#9 Krzysztof97

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:50
  • Imię:Krzysztof
  • Lokalizacja:Blubla
Offline

Napisano 23.12.2012 15:47

Zedytowałem na inną klasę i mam tak:
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#define DMG_BULLET (1<<1)				 
new const nazwa[]   = "Pomper [PREMIUM]";
new const opis[]			    = "Posiada dużo hp +1/7 z pompy";
new const bronie			    = (1<<CSW_XM1014)|(1<<CSW_SMOKEGRENADE);
new const zdrowie   = 50;
new const kondycja  = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;
new ma_klase[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_C))
{
  client_print(id, print_chat, "[Pomper [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.")
  return COD_STOP;
}
give_item(id, "weapon_smokegrenade");
ma_klase[id] = true;
return COD_CONTINUE;
}
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(!ma_klase[idattacker])
																															    return HAM_IGNORED;
															    if(!(damagebits & DMG_BULLET))
																															    return HAM_IGNORED;
															    if(get_user_weapon(idattacker) == CSW_XM1014 && random_num(1,2) == 1)
																															    cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
															    return HAM_IGNORED;
}
i nie działa(specjalnie 1/2 do testów, bo na 2 magazynki by musiało wejść);/
Pozdro
  • +
  • -
  • 0

#10 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 23.12.2012 16:42

zamień

public TakeDamage

na
fwTakeDamage_JedenZ

  • +
  • -
  • 0

#11 Krzysztof97

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:50
  • Imię:Krzysztof
  • Lokalizacja:Blubla
Offline

Napisano 23.12.2012 17:15

Mam tak:
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#define DMG_BULLET (1<<1)				 
new const nazwa[]   = "Pomper [PREMIUM]";
new const opis[]			    = "Posiada dużo hp +1/7 z pompy";
new const bronie			    = (1<<CSW_XM1014)|(1<<CSW_SMOKEGRENADE);
new const zdrowie   = 50;
new const kondycja  = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;
new ma_klase[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_C))
{
  client_print(id, print_chat, "[Pomper [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.")
  return COD_STOP;
}
give_item(id, "weapon_smokegrenade");
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
fwTakeDamage_JedenZ(this, idinflictor, idattacker, Float:damage, damagebits)
{
															    if(!is_user_connected(idattacker))
																															    return HAM_IGNORED;
															    if(!ma_klase[idattacker])
																															    return HAM_IGNORED;
															    if(!(damagebits & DMG_BULLET))
																															    return HAM_IGNORED;
															    if(get_user_weapon(idattacker) == CSW_XM1014 && random_num(1,2) == 1)
																															    cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
															    return HAM_IGNORED;
}
i nie działa;/
  • +
  • -
  • 0

#12 Amaroq

    AMXX Contributor

  • Użytkownik

Reputacja: 304
Wszechpomocny

  • Postów:380
  • GG:
  • Steam:steam
  • Imię:Karol
  • Lokalizacja:Łódź
Offline

Napisano 24.12.2012 02:11

Teraz powinno działać
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#include <fun>

new const nazwa[] = "Pomper [PREMIUM]";
new const opis[] = "Posiada dużo hp +1/7 z pompy";
new const bronie = (1<<CSW_XM1014)|(1<<CSW_SMOKEGRENADE);
new const zdrowie = 50;
new const kondycja = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;

new bool:ma_klase[33];

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

public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_C))
{
client_print(id, print_chat, "[Pomper [PREMIUM]] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
give_item(id, "weapon_smokegrenade");
ma_klase[id] = true;
return COD_CONTINUE;
}

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

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

if(!ma_klase[idattacker])
return HAM_IGNORED;

if(damagebits & (1<<1))
{
if(get_user_weapon(idattacker) == CSW_XM1014 && random_num(1,7) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}

return HAM_IGNORED;
}

  • +
  • -
  • 1
Plugin informujący o zabiciu zakładnika (wysyła do admina na say nick gracza oraz zapisuje o tym logi) - Hostage Killer v1.3.3
DarkGL to mój autorytet.

#13 Kawon

    Godlike

  • Przyjaciel

Reputacja: 887
Czempion

  • Postów:5 165
  • Steam:steam
  • Imię:Paweł
  • Lokalizacja:Dzierzgoń
Offline

Napisano 10.01.2013 20:16

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

DarkGL to mój autorytet.






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

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

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