←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
sprawdzanie czy funkcja została wykonana

  • +
  • -
Arbitralny - zdjęcie Arbitralny 07.10.2014

Jak zrobić warunki sprawdzające if(zycie z przyznaj zostalo dodane && cod_get_user_intelligence(id, 1, 1, 1) < 100) if(juz otrzymal) ?

#include <amxmodx>
#include <amxmisc>
#include <codmod>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "ADMIN"

new bool:ma_klase[33];

new const nazwa[] = "przyklad";
new const opis[] = "przyklad";
new const bronie = 0;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new const obrazenia = 0;
new const regeneracja = 0;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, obrazenia, regeneracja);
	register_logevent("Przyznaj", 2, "1=Round_Start");
	register_logevent("Sprawdz", 2, "1=Round_Start");
}

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

public cod_class_disabled(id)
{
	if(zycie z przyznaj zostalo dodane && cod_get_user_intelligence(id, 1, 1, 1) < 100)
	{
		cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)-100);
	}
	ma_klase[id] = false;
}

public Przyznaj()	
{
	new num, players[32];
	get_players(players, num, "gh")
	for(new i=0; i<num; i++)
	{
		new id = players[i]
		if(juz otrzymal)
			return;
		if(ma_klase[id]  &&  is_user_alive(id)  &&  cod_get_user_intelligence(id, 1, 1, 1) >= 100)
		{
			cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)+100);
		}
	}
}

public Sprawdz()	
{
	new num, players[32];
	get_players(players, num, "gh")
	for(new i=0; i<num; i++)
	{
		new id = players[i]
		if(zycie z przyznaj zostalo dodane && cod_get_user_intelligence(id, 1, 1, 1) < 100)
		{
			cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)-100);
		}
	}
}

Użytkownik Arbitralny edytował ten post 07.10.2014 22:40
Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 08.10.2014

Wartość bool: true/false w chwili przyznawania bonusu? O to chodzi?

Odpowiedz

  • +
  • -
Arbitralny - zdjęcie Arbitralny 08.10.2014

Jeżeli o to chodzi, to mam użyć tego w ten sposób? :D

#include <amxmodx>
#include <amxmisc>
#include <codmod>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "ADMIN"

new bool:ma_klase[33];

new bool:przyznane[33];

new const nazwa[] = "przyklad";
new const opis[] = "przyklad";
new const bronie = 0;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new const obrazenia = 0;
new const regeneracja = 0;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, obrazenia, regeneracja);
	register_logevent("Przyznaj", 2, "1=Round_Start");
	register_logevent("Sprawdz", 2, "1=Round_Start");
}

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

public cod_class_disabled(id)
{
	if(przyznane[id] == true && cod_get_user_intelligence(id, 1, 1, 1) < 100)
	{
		cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)-100);
	}
	ma_klase[id] = false;
}

public Przyznaj()	
{
	new num, players[32];
	get_players(players, num, "gh")
	for(new i=0; i<num; i++)
	{
		new id = players[i]
		if(przyznane[id] == false && ma_klase[id]  &&  is_user_alive(id)  &&  cod_get_user_intelligence(id, 1, 1, 1) >= 100)
		{
			cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)+100);
		}
	}
}

public Sprawdz()	
{
	new num, players[32];
	get_players(players, num, "gh")
	for(new i=0; i<num; i++)
	{
		new id = players[i]
		if(przyznane[id] == true && cod_get_user_intelligence(id, 1, 1, 1) < 100)
		{
			cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)-100);
		}
	}
}

Użytkownik Arbitralny edytował ten post 08.10.2014 12:17
Odpowiedz

  • +
  • -
Arbitralny - zdjęcie Arbitralny 08.10.2014

Sprawdzanie i usuwanie nie działa. Jeżeli mam 100 int to co rundę dostaje +100 hp, a jak nie mam to nie przyznaje i też nie usuwa. :[

Odpowiedz

  • +
  • -
Arbitralny - zdjęcie Arbitralny 08.10.2014

Ma przyznać 100 hp jeżeli ma 100 int i nie otrzymał jeszcze bonusu. Jeżeli zmieni klasę, a otrzymał bonus to go usuwa. Jeżeli będzie miał mniej niż 100 pkt int, to usunie bonus, a jak doda ponownie 100 pkt int to znowu go ustawi. OMG xD

Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 08.10.2014

Po co to w takim razie, jak i tak co runde sprawdzasz, czy gracz ma klase?

if(przyznane[id] == true && cod_get_user_intelligence(id, 1, 1, 1) < 100)
    {
        cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)-100);
    }

 

A gdzie ustawiasz wartości true/false? Bo tylko widzę sprawdzanie.

 

Odpowiedz

  • +
  • -
Arbitralny - zdjęcie Arbitralny 08.10.2014

Jeżeli miał 100 int i otrzymał bonus, a później zrestartował statystyki i nie dodał 100 pkt w int, to ma mu usunąć bonus. Mam dodać do enabled przyznane[id] = false; ?:D


Użytkownik Arbitralny edytował ten post 08.10.2014 18:55
Odpowiedz

  • +
  • -
Wielkie Jol - zdjęcie Wielkie Jol 08.10.2014

No i musisz jeszcze gdzieś tę wartość ustawiać na true.

Odpowiedz

  • +
  • -
Arbitralny - zdjęcie Arbitralny 08.10.2014

W ten sposób? :D

#include <amxmodx>
#include <amxmisc>
#include <codmod>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "ADMIN"

new bool:ma_klase[33];

new bool:przyznane[33];

new const nazwa[] = "przyklad";
new const opis[] = "przyklad";
new const bronie = 0;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new const obrazenia = 0;
new const regeneracja = 0;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, obrazenia, regeneracja);
	register_logevent("Sprawdz", 2, "1=Round_Start");
}

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

public cod_class_disabled(id)
{	
	if(przyznane[id] && cod_get_user_intelligence(id, 1, 1, 1) < 100)
	{
		cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)-100);
		przyznane[id] = false;
	}
	ma_klase[id] = false;
}

public Sprawdz()	
{
	new num, players[32];
	get_players(players, num, "gh")
	for(new i=0; i<num; i++)
	{
		new id = players[i]
		if(!przyznane[id] && ma_klase[id]  &&  is_user_alive(id)  &&  cod_get_user_intelligence(id, 1, 1, 1) >= 100)
		{
			cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)+100);
			przyznane[id] = true;
		}
		else if(przyznane[id] && cod_get_user_intelligence(id, 1, 1, 1) < 100)
		{
			cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)-100);
			przyznane[id] = false;
		}
	}
}

Użytkownik Arbitralny edytował ten post 08.10.2014 19:24
Odpowiedz

  • +
  • -
Arbitralny - zdjęcie Arbitralny 08.10.2014

WIelkie jol, wielkie dzięki za pomoc. Poda mi ktoś jeszcze event, który wykona sprawdzanie po śmierci gracza? :D

Odpowiedz