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
JailBreak

Ilość HP razy ilość graczy na serwerze

jailbreak

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

#1 Vakos

    Wszechwidzący

  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:266
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Opolskie
Offline

Napisano 22.06.2017 14:17

Chciałbym dodać do 1 zabawy ilość HP razy ilość graczy na serwerze.

Dodałem coś takie ale nie działa:

                new ile_graczy[2];
		for(new i=1; i<=MAX; i++)
		
		if(ile_graczy[0])
		{
			for(new i=1; i<=MAX; i++)
			{
				if(!is_user_connected(i) || !is_user_alive(i) || get_user_team(i) != 2)
					continue;
				
				set_user_health(i, ile_graczy[0]*150/ile_graczy[i]);
			}
		}

  • +
  • -
  • 0

#2 _McHappy

    Wszechwiedzący

  • Support Team

Reputacja: 243
Wszechwidzący

  • Postów:501
  • GG:
  • Imię:Radek
  • Lokalizacja:Tak
Offline

Napisano 22.06.2017 16:15

Y0osKXW.jpg

 

Po co taki bałagan, wystarczy jedna pętla xD

new iIloscGraczy = get_playersnum(); //pobieramy ilość graczy (wraz z HLTV)
new iHpBaza = 100; //podstawa do obliczeń
new iHpDocelowe = iHpBaza*iIloscGraczy; //wyznaczenie docelowej ilosci HP

for(new i=1; i<=iIloscGraczy; i++)
{
	if(!is_user_alive(i) || get_user_team(i) != 2) //sprawdzając, czy gracz żyje, automatycznie sprawdzamy, czy gracz jest połączony
		continue;
				
	set_user_health(i, iHpDocelowe);
}

  • +
  • -
  • 2

#3 Vakos

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:266
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Opolskie
Offline

Napisano 26.06.2017 10:50

Dodałem do zabawy, lecz nie działa.

Znajduje się to w public OnDayStartPre

 

#include 
#include
#include
#include
#include
#include // MUSISZ UŻYC ABY UŻYWAĆ NATYVU "fm_set_user_health"
#include
#include
#include

#define PLUGIN "[JB] Ninja's"
#define VERSION "1.0"
#define AUTHOR "kIImIIz"
#define STR_T 33
#define fm_get_user_button(%1) pev(%1, pev_button)
/* stock fm_get_user_button(index)
return pev(index, pev_button) */
#define fm_get_entity_flags(%1) pev(%1, pev_flags)
/* stock fm_get_entity_flags(index)
return pev(index, pev_flags) */

//End of stuff from fakemeta_util
//new STR_T[32]
new bool:g_WallClimb[33]
new Float:g_wallorigin[32][3]
new id_ninja;
new const maxAmmo[31] = {0,52,0,90,1,31,1,100,90,1,120,100,100,90,90,90,100,120,30,120,200,31,90,120,90,2,35,90,90,0,100};

new bool:blokuj_sklep[33] = false;

new iIloscGraczy = get_playersnum(); //pobieramy ilość graczy (wraz z HLTV)
new iHpBaza = 100; //podstawa do obliczeń
new iHpDocelowe = iHpBaza*iIloscGraczy; //wyznaczenie docelowej ilosci HP

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
id_ninja = jail_register_game("Ninja's")
register_forward(FM_Touch, "fwd_touch")
register_forward(FM_PlayerPreThink, "fwd_playerprethink")

register_clcmd("say","block");
register_clcmd("say_team","block");
}

public plugin_precache()

{
precache_sound("ambience/laugh_dp.wav");
precache_sound("jb_cypis/ninja2.mp3");
}

public block(id)
{
new szCommand[192];
read_args(szCommand,charsmax(szCommand));

if(equali(szCommand, "/sklep") && blokuj_sklep[id] == true){
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

public OnRemoveData(day)
{
if(day == id_ninja)
{
set_lights("#OFF");
client_cmd(0, "mp3 stop");
}
}
public OnLastPrisonerShowWish(day)
{
OnRemoveData(day);

}

public OnDayStartPre(day, szInfo[256], szInfo2[512], setting[10], gTimeRound)
{
static szTime[12];
if(day == id_ninja)
{
format_time(szTime, 11, "%M:%S", gTimeRound-30);
formatex(szInfo2, 511, "Zasady:^n - CT ma zabic wiezniow ktore sa niewidzialne^n - Zakaz kampienia^nOstatni wiezien ma zyczenie", szTime, szTime);
szInfo = "Ninja's Day";

jail_set_prisoners_micro(true, true);
jail_set_ct_hit_tt(false);
jail_set_tt_hit_ct(false);

setting[0] = 2;
setting[1] = 0;
setting[2] = 1;
setting[3] = 1;
setting[4] = 3;
setting[6] = 1;
setting[7] = 2;

for(new i=1; i<=iIloscGraczy; i++)
{
if(!is_user_alive(i) || get_user_team(i) != 2) //sprawdzając, czy gracz żyje, automatycznie sprawdzamy, czy gracz jest połączony
continue;

set_user_health(i, iHpDocelowe);
}
}
}

public OnDayStartPost(day)
{
if(day != id_ninja)
return;
jail_set_game_hud(10, "Rozpoczecie zabawy za");
client_cmd(0, "mp3 play sound/jb_cypis/ninja2.mp3");
set_lights("b");

for(new i=1; i<=MAX; i++)
{
if(!is_user_alive(i) || cs_get_user_team(i) != CS_TEAM_T) // WYGODNIEJ JEST UŻYWAĆ TEGO SPARWDZANIA, SAMO "!=" POKAZUJE ŻE POMIJASZ TEAMCT
continue; // ROWNIEZ MUSI BYC, I NIE UZYWASZ JUZ TUTAJ "{" ORAZ "}", GDYŻ "continue" DZIALA NA ZASADZIE ELSE

blokuj_sklep[i] = true;

if(get_user_flags(i) & ADMIN_LEVEL_G)
fm_set_user_health(i, 150);
else if(get_user_flags(i) & ADMIN_LEVEL_H)
fm_set_user_health(i, 130);
else fm_set_user_health(i, 100);
}

}

public OnGameHudEnd(day)
{
for(new i=1; i<=32; i++)
{
if(!is_user_alive(i) || !is_user_connected(i) )
continue;

if(day != id_ninja)
return;

set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 5.0);
show_hudmessage(0, "Fight!");
jail_open_cele();
emit_sound(0, CHAN_AUTO, "ambience/laugh_dp.wav", 1.0, ATTN_NORM, 0, PITCH_NORM);

blokuj_sklep[i] = false;

if(cs_get_user_team(i) != CS_TEAM_T)
{
strip_user_weapons(i);
give_item(i, "weapon_knife");
give_item (i, "weapon_tmp");
cs_set_user_bpammo(i, CSW_TMP, maxAmmo[CSW_TMP]);
set_user_health(i, 100);
set_user_rendering(i, kRenderFxGlowShell, 0, 0, 100, kRenderNormal, 15);
}
else
{
strip_user_weapons(i)
give_item(i, "weapon_knife");
jail_set_user_speed(i, 500.0);
set_user_rendering(i, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 10);
set_user_footsteps(i, 1);
set_user_maxspeed(i, 500.0);
}
}

for(new i=1; i<=MAX; i++)
{
if(!is_user_alive(i) || cs_get_user_team(i) != CS_TEAM_T) // WYGODNIEJ JEST UŻYWAĆ TEGO SPARWDZANIA, SAMO "!=" POKAZUJE ŻE POMIJASZ TEAMCT
continue; // ROWNIEZ MUSI BYC, I NIE UZYWASZ JUZ TUTAJ "{" ORAZ "}", GDYŻ "continue" DZIALA NA ZASADZIE ELSE

if(get_user_flags(i) & ADMIN_LEVEL_G)
fm_set_user_health(i, 150);
else if(get_user_flags(i) & ADMIN_LEVEL_H)
fm_set_user_health(i, 130);
else fm_set_user_health(i, 100);
}
}

public EventDeathMsg()
{
new id = read_data(2)
g_WallClimb[id] = true
return PLUGIN_HANDLED
}

public client_connect(id) {
g_WallClimb[id] = true
}

public fwd_touch(id, world, day)
{
if(!is_user_alive(id) || !g_WallClimb[id] || day != id_ninja)
return FMRES_IGNORED

new classname[STR_T]
pev(world, pev_classname, classname, (STR_T-1))

if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable"))
pev(id, pev_origin, g_wallorigin[id])

return FMRES_IGNORED
}

public wallclimb(id, button)
{
static Float:origin[3]
pev(id, pev_origin, origin)

if(get_distance_f(origin, g_wallorigin[id]) > 25.0)
return FMRES_IGNORED // if not near wall

if(fm_get_entity_flags(id) & FL_ONGROUND)
return FMRES_IGNORED

if(fm_get_entity_flags(id) & FL_FLY )
return PLUGIN_HANDLED

if(button & IN_FORWARD)
{
static Float:velocity[3]
velocity_by_aim(id, 120, velocity)
fm_set_user_velocity(id, velocity)
}
else if(button & IN_BACK)
{
static Float:velocity[3]
velocity_by_aim(id, -120, velocity)
fm_set_user_velocity(id, velocity)
}
return FMRES_IGNORED
}

public fwd_playerprethink(id, day)
{
if(!g_WallClimb[id] || day != id_ninja)
return FMRES_IGNORED

new button = fm_get_user_button(id)

if(button & IN_USE) //Use button = climb
{
static Float:origin[3]
pev(id, pev_origin, origin)

if(get_distance_f(origin, g_wallorigin[id]) > 10.0)
return FMRES_IGNORED // if not near wall

if(fm_get_entity_flags(id) & FL_ONGROUND)
return FMRES_IGNORED

if(button & IN_FORWARD)
{
static Float:velocity[3]
velocity_by_aim(id, 120, velocity)
fm_set_user_velocity(id, velocity)
}
else if(button & IN_BACK)
{
static Float:velocity[3]
velocity_by_aim(id, -120, velocity)
fm_set_user_velocity(id, velocity)
}
}

else if((button & IN_JUMP) && button & IN_DUCK) //Jump + Duck = climb
{
static Float:origin[3]
pev(id, pev_origin, origin)

if(get_distance_f(origin, g_wallorigin[id]) > 10.0)
return FMRES_IGNORED // if not near wall

if(fm_get_entity_flags(id) & FL_ONGROUND)
return FMRES_IGNORED

if(button & IN_FORWARD)
{
static Float:velocity[3]
velocity_by_aim(id, 120, velocity)
fm_set_user_velocity(id, velocity)
}
else if(button & IN_BACK)
{
static Float:velocity[3]
velocity_by_aim(id, -120, velocity)
fm_set_user_velocity(id, velocity)
}
}


return FMRES_IGNORED
}


  • +
  • -
  • 0

#4 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 26.06.2017 17:18

Jeżeli już to OnDayStartPost + zablokuj używanie apteczek (jako konfiguracja zabawy to się robiło, lecz nie pamiętam jak).

Te zmienne nie muszą być globalne też, w funkcji lepiej jakby były tylko, a nie na samej górze.


  • +
  • -
  • 0

#5 Vakos

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:266
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Opolskie
Offline

Napisano 26.06.2017 19:15

 

Jeżeli już to OnDayStartPost

No tak sory.

 

 

zablokuj używanie apteczek (jako konfiguracja zabawy to się robiło, lecz nie pamiętam jak).

Chodzi ci o to: https://amxx.pl/topi...-drugiego-typu/ ?

 

 

Te zmienne nie muszą być globalne też, w funkcji lepiej jakby były tylko, a nie na samej górze.

Na początku były w funkcji, potem zmieniłem na globalne


  • +
  • -
  • 0

#6 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 26.06.2017 19:37

Jeżeli chodzi o apteczki to jest już zablokowane - więc nic nie musisz zmieniać, mój błąd, chodziło mi o setting[4] w OnDayStartPre


  • +
  • -
  • 0

#7 Vakos

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:266
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Opolskie
Offline

Napisano 26.06.2017 20:09

Przecież setting [4] dotyczy tego: "zablokowanie podnoszenie dla tt i dropa broni, jak na 1 ustawiomy to tt nie beda mogli podnosic broni i dropowac broni, blokuje automaty z broniami zeby nie bylo mozna znich broni brac"


  • +
  • -
  • 0

#8 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 27.06.2017 18:16

Spójrz w api jaila - blokuje też apteczki, tak to wygląda.


  • +
  • -
  • 0

#9 Vakos

    Wszechwidzący

  • Autor tematu
  • Użytkownik

Reputacja: 57
Pomocny

  • Postów:266
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Opolskie
Offline

Napisano 27.06.2017 20:34

Spójrz w api jaila - blokuje też apteczki, tak to wygląda.

 

Okey. A co w związku z przelicznikiem HP? Ma ktoś pomysł? :>


  • +
  • -
  • 0

#10 Tojaocb

    Zaawansowany

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:96
Offline

Napisano 28.09.2017 17:38

moze wez przyklad z zabawy dzieci wojny cypisa


		
		new ile_graczy[2];
		for(new i=1; i<=MAX; i++)
		{
			if(!is_user_connected(i) || !is_user_alive(i))
				continue;
				
			switch(get_user_team(i))
			{
				case 1: 
				{
					ile_graczy[0]++;
					jail_set_user_menuweapons(i, true, false);
				}
				case 2: ile_graczy[1]++;
			}
		}
		
		if(ile_graczy[0])
		{
			for(new i=1; i<=MAX; i++)
			{
				if(!is_user_connected(i) || !is_user_alive(i) || get_user_team(i) != 2)
					continue;
				
				set_user_health(i, ile_graczy[0]*150/ile_graczy[1]);
			}
		}
	}

  • +
  • -
  • 0

Pomogłem? Daj add.png ciebie nie kosztuje, mnie motywuje.


#11 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 29.09.2017 00:03

static iPlayers[32], iNum, iPlayer;
get_players(iPlayers, iNum, "ach");
for(--iNum; iNum >= 0; iNum--) {
	iPlayer = iPlayers[iNum];

	set_user_health(iPlayer, get_user_health(iPlayer) * iNum);
}

  • +
  • -
  • 0





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

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

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