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

Nie wychwytuje kumulatywnego dmg


Najlepsza odpowiedź Robiin, 28.08.2020 14:29

#include <amxmodx>
#include <hamsandwich>

#define AUTHOR "Wicked - amxx.pl/user/60210-wicked/"

new Float:damage_given[33],
	damage_required_cvar;

public plugin_init()
{
	register_plugin("x", "v0.1", AUTHOR);

	RegisterHam(Ham_TakeDamage, "player", "TakeDamage", true);

	damage_required_cvar = register_cvar("damage_required_cvar", "500");
}

public TakeDamage(victim, idinflictor, attacker, Float:damage, damagebits)
{
	if(!is_user_connected(attacker) || !is_user_connected(victim) || !damage)
	{
		return;
	}

	new required = get_pcvar_num(damage_required_cvar);

	damage_given[attacker] += damage;

	while(damage_given[attacker] >= required)
	{
		damage_given[attacker] -= required;

		// Add bonus here. Ex:
		// cs_set_user_money(attacker, cs_get_user_money(attacker) + 500);
		// client_print(attacker, print_chat, "+ $500");
	}
}
Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Mixtaz

    Zaawansowany

  • Użytkownik

Reputacja: 21
Życzliwy

  • Postów:76
  • Steam:steam
  • Imię:Jędrzej
  • Lokalizacja:%s
Offline

Napisano 28.08.2020 12:34

Cześć.

 

Mam plugin który nagradza graczy za zadane obrażenia. Niestety nie działa drobnostka, a mianowicie gdy zadane obrażenia są większe niż te ustalone cvarem. Załóżmy, że zadałem 500 obrażeń bronią, to przyznawany bonus nie kumuluje się lecz jest traktowany jako jedna "iteracja".

 

Czy można to jakoś w ogóle zrobić pętlą while zeby było optymalnie? Jak zapisać obrażenia tak aby była przyznana pełna nagroda? Pozdrawiam.  :ok: 


  • +
  • -
  • 0

:nuke:  Mój serwer Zombie Biohazard/Deathmatch  :nuke:
:cwaniak:


#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 28.08.2020 14:29   Najlepsza odpowiedź

#include <amxmodx>
#include <hamsandwich>

#define AUTHOR "Wicked - amxx.pl/user/60210-wicked/"

new Float:damage_given[33],
	damage_required_cvar;

public plugin_init()
{
	register_plugin("x", "v0.1", AUTHOR);

	RegisterHam(Ham_TakeDamage, "player", "TakeDamage", true);

	damage_required_cvar = register_cvar("damage_required_cvar", "500");
}

public TakeDamage(victim, idinflictor, attacker, Float:damage, damagebits)
{
	if(!is_user_connected(attacker) || !is_user_connected(victim) || !damage)
	{
		return;
	}

	new required = get_pcvar_num(damage_required_cvar);

	damage_given[attacker] += damage;

	while(damage_given[attacker] >= required)
	{
		damage_given[attacker] -= required;

		// Add bonus here. Ex:
		// cs_set_user_money(attacker, cs_get_user_money(attacker) + 500);
		// client_print(attacker, print_chat, "+ $500");
	}
}

  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.





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

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