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

Pytania związane z robieniem nowych klas i itemów


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

#1 Gram Jajami

    Zaawansowany

  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 01.08.2010 19:08

Witam
W tym oto temacie będę zadawał przeróżne pytania (głupie, trudne, łatwe i takie tam :P) związane z robieniem nowych klas i itemów.
Oto pierwsze pytanie :D

Jak zrobić, aby dana klasa miała własny model noża?
  • +
  • -
  • 0

#2 Onyke

    Godlike

  • Przyjaciel

Reputacja: 708
Guru

  • Postów:2 178
Offline

Napisano 01.08.2010 19:19

Łap
[Tutorial]Dla danej klasy dany nóż. - Nieoficjalny polski support AMX Mod X
  • +
  • -
  • 1

#3 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 02.08.2010 10:07

+ leci
Pytanie numer 2 ^^
Co i gdzie trzeba zrobić, aby np. item Meekstone dało się używać więcej niż raz na rundę?
  • +
  • -
  • 0

#4 STRAZAK

    Profesjonalista

  • Zbanowany

Reputacja: 17
Początkujący

  • Postów:216
  • GG:
  • Steam:steam
  • Lokalizacja:Gabrielów
Offline

Napisano 02.08.2010 10:11

new player_b_meekstone[33] = 1 //Ability to lay a fake c4 and detonate

Może to ??

raczej to :P

case 32:
{
player_item_name[id] = "Meekstone"
player_item_id[id] = rannum
player_b_meekstone[id] = 1
show_hudmessage(id, "Znalazles przedmiot: %s :: Uzyj, aby podlozyc sztuczna bombe",player_item_name[id])



if (c4state[id] > 1)
{
hudmsg(id,2.0,"Meekstone mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}


tutaj edytujesz ile razy na rundę można użyć. (tekst)

Użytkownik STRAZAK edytował ten post 02.08.2010 10:13


#5 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 02.08.2010 10:24

+ leci
Trzecie pytanie ;)
Jak zrobić odporność jakiejś tam klasy na wybrane itemy?
  • +
  • -
  • 0

#6 STRAZAK

    Profesjonalista

  • Zbanowany

Reputacja: 17
Początkujący

  • Postów:216
  • GG:
  • Steam:steam
  • Lokalizacja:Gabrielów
Offline

Napisano 02.08.2010 10:36

Anty Master - Nieoficjalny polski support AMX Mod X
[5.8f/5.9l] Ninja odporna na przedmioty Scout 1/X oraz mogąca korzystać z tej mocy na nożu. - Nieoficjalny polski support AMX Mod X
[Tutorial] Dodawnie mocy do klasy. - Nieoficjalny polski support AMX Mod X

02 sierpień 2010 - 12:05:
Takie pytanie działa to co dałem w 4 poście? :)

#7 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 02.08.2010 11:19

+ leci

Takie pytanie działa to co dałem w 4 poście? :)


Nie wiem czy działa - potem będę sprawdzał ;) ale raczej nie zadziała :P

Czwarte pytanie:
Co trzeba zrobić, aby wybrana klasa miała np. o 30% słabsze obrażenia?

Użytkownik Gram Jajami edytował ten post 02.08.2010 11:37

  • +
  • -
  • 0

#8 Onyke

    Godlike

  • Przyjaciel

Reputacja: 708
Guru

  • Postów:2 178
Offline

Napisano 02.08.2010 19:19

Moze sprobuj popatrzec w kod od bagow ? Tylko to bedzie po uzyciu E
Mozesz tez zrobic ze klasa dostaje mniej o X
player_b_redirect
  • +
  • -
  • 0

#9 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 05.08.2010 12:18

Zrobiłem coś takiego
/* EFFECTS ================================================================================================= */

public add_damage_bonus(id,damage,attacker_id)
{
	if (player_b_damage[attacker_id] > 0 && get_user_health(id)>player_b_damage[attacker_id])
	{
		change_health(id,-player_b_damage[attacker_id],attacker_id,"")
			
		if (random_num(0,2) == 1) Effect_Bleed(id,248)
	}
}
if (c_damage[attacker_id] > 0 && get_user_health(id)>c_damage[attacker_id])
{
change_health(id,-c_damage[attacker_id],attacker_id,"")

if (random_num(0,2) == 1) Effect_Bleed(id,248)	
	}
}
	

/* ==================================================================================================== */

ale przy kompilacji wyskakuje

fdfd.sma(1328) : error 088: number of arguments does not match definition
fdfd.sma(1454) : error 088: number of arguments does not match definition
fdfd.sma(1468) : error 088: number of arguments does not match definition
fdfd.sma(1475) : error 088: number of arguments does not match definition
fdfd.sma(1485) : error 088: number of arguments does not match definition
fdfd.sma(1486) : error 088: number of arguments does not match definition
fdfd.sma(2321) : error 088: number of arguments does not match definition
fdfd.sma(2341) : error 088: number of arguments does not match definition
fdfd.sma(3484) : error 088: number of arguments does not match definition
fdfd.sma(3489) : error 010: invalid function or declaration
fdfd.sma(3491) : error 017: undefined symbol "attacker_id"
fdfd.sma(3493) : error 010: invalid function or declaration
fdfd.sma(3504) : error 088: number of arguments does not match definition
fdfd.sma(3546) : error 088: number of arguments does not match definition
fdfd.sma(3639) : error 088: number of arguments does not match definition
fdfd.sma(3867) : error 088: number of arguments does not match definition
fdfd.sma(3907) : error 088: number of arguments does not match definition
fdfd.sma(4130) : error 088: number of arguments does not match definition
fdfd.sma(4718) : error 088: number of arguments does not match definition
fdfd.sma(4735) : error 088: number of arguments does not match definition
fdfd.sma(4736) : error 088: number of arguments does not match definition
fdfd.sma(4867) : error 088: number of arguments does not match definition
fdfd.sma(5831) : error 088: number of arguments does not match definition
fdfd.sma(6122) : error 088: number of arguments does not match definition
fdfd.sma(6194) : error 088: number of arguments does not match definition
fdfd.sma(6200) : error 088: number of arguments does not match definition

Co źle zrobiłem ?

EDIT

Próbowałem jeszcze zrobić antymeekstona
5075|/* ==================================================================================================== */
5076|
5077|
5078|public add_bonus_meekstone(attacker_id,id,weapon)
5079|{
5080|	if (player_b_meekstone[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_C4 && player_class[attacker_id]!=Zabojczyni)
5081|	{
5082|		
5083|		if (!is_user_alive(id))
5084|			return PLUGIN_HANDLED
5085|		
5086|		if (random_num(1,player_b_meekstone[attacker_id]) == 1)
5087|			UTIL_Kill(attacker_id,id,"meekstone")
5088|			return PLUGIN_HANDLED
5089|		
5090|		if (random_num(1,player_b_antymeekstone[attacker_id]) == 1)
5091|			return PLUGIN_HANDLED
5092|
5093|               UTIL_Kill(attacker_id, id, "meekstone")
5094|                
5095|        }
5096|        
5097|        return PLUGIN_HANDLED
5098|}
5099|
5100|
5101|/* ==================================================================================================== */

Ale przy kompilacji wyskakuje
dsd.sma(5088) : warning 217: loose indentation
dsd.sma(5090) : warning 225: unreachable code
dsd.sma(5090) : warning 217: loose indentation

Użytkownik Gram Jajami edytował ten post 05.08.2010 15:57

  • +
  • -
  • 0

#10 Onyke

    Godlike

  • Przyjaciel

Reputacja: 708
Guru

  • Postów:2 178
Offline

Napisano 05.08.2010 22:28

W tym

/* EFFECTS ================================================================================================= */

public add_damage_bonus(id,damage,attacker_id)
{
if (player_b_damage[attacker_id] > 0 && get_user_health(id)>player_b_damage[attacker_id])
{
change_health(id,-player_b_damage[attacker_id],attacker_id,"")

if (random_num(0,2) == 1) Effect_Bleed(id,248)
}
}
if (c_damage[attacker_id] > 0 && get_user_health(id)>c_damage[attacker_id])
{
change_health(id,-c_damage[attacker_id],attacker_id,"")

if (random_num(0,2) == 1) Effect_Bleed(id,248)
}
}


/* ==================================================================================================== */

Chyba masz źle klamry ułożone.
Jutro Ci napisze jak to ma być o ile sam do tego nie dojdziesz :rolleyes:
I dodałeś c_damage koło zmiennych ?

Użytkownik 0nYk3 edytował ten post 05.08.2010 22:29

  • +
  • -
  • 0

#11 Morthi

    Zaawansowany

  • Użytkownik

Reputacja: 24
Życzliwy

  • Postów:91
  • GG:
  • Steam:steam
  • Lokalizacja:Piła
Offline

Napisano 05.08.2010 22:42

/* EFFECTS ================================================================================================= */

public add_damage_bonus(id,damage,attacker_id)
{
if (player_b_damage[attacker_id] > 0 && get_user_health(id)>player_b_damage[attacker_id])
{
change_health(id,-player_b_damage[attacker_id],attacker_id,"")

if (random_num(0,2) == 1) Effect_Bleed(id,248)
}
}
if (c_damage[attacker_id] > 0 && get_user_health(id)>c_damage[attacker_id])
{
change_health(id,-c_damage[attacker_id],attacker_id,"")

if (random_num(0,2) == 1) Effect_Bleed(id,248)
}
}


/* ==================================================================================================== */

zmień na
/* EFFECTS ================================================================================================= */

public add_damage_bonus(id,damage,attacker_id)
{
if (player_b_damage[attacker_id] > 0 && get_user_health(id)>player_b_damage[attacker_id])
{
change_health(id,-player_b_damage[attacker_id],attacker_id,"")

if (random_num(0,2) == 1) Effect_Bleed(id,248)
}
if (c_damage[attacker_id] > 0 && get_user_health(id)>c_damage[attacker_id])
{
change_health(id,-c_damage[attacker_id],attacker_id,"")

if (random_num(0,2) == 1) Effect_Bleed(id,248)
}
}


/* ==================================================================================================== */

  • +
  • -
  • 1

#12 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 06.08.2010 08:54

Ok działa + oczywiście leci
Proszę jeszcze o poprawienie tego
5075|/* ==================================================================================================== */
5076|
5077|
5078|public add_bonus_meekstone(attacker_id,id,weapon)
5079|{
5080|	if (player_b_meekstone[attacker_id] > 0 && get_user_team(attacker_id) != get_user_team(id) && weapon == CSW_C4 && player_class[attacker_id]!=Zabojczyni)
5081|	{
5082|		
5083|		if (!is_user_alive(id))
5084|			return PLUGIN_HANDLED
5085|		
5086|		if (random_num(1,player_b_meekstone[attacker_id]) == 1)
5087|			UTIL_Kill(attacker_id,id,"meekstone")
5088|			return PLUGIN_HANDLED
5089|		
5090|		if (random_num(1,player_b_antymeekstone[attacker_id]) == 1)
5091|			return PLUGIN_HANDLED
5092|
5093|               UTIL_Kill(attacker_id, id, "meekstone")
5094|                
5095|        }
5096|        
5097|        return PLUGIN_HANDLED
5098|}
5099|
5100|
5101|/* ==================================================================================================== */

dsd.sma(5088) : warning 217: loose indentation
dsd.sma(5090) : warning 225: unreachable code
dsd.sma(5090) : warning 217: loose indentation

06 sierpień 2010 - 13:53:
Z antymeekstone poradziłem sobie ale jest next problem i chyba przez klamry :P
/* ==================================================================================================== */

public add_respawn_bonus(id)
{
	if (player_b_respawn[id] > 0)
	{
		new svIndex[32] 
		num_to_str(id,svIndex,32)
		new roll = random_num(1,player_b_respawn[id])
		if (roll == 1)
		{
			new maxpl,players[32]
			get_players(players, maxpl) 
			if (maxpl > 2)
			{
				cs_set_user_money(id,cs_get_user_money(id)+4000)
				set_task(0.5,"respawn",0,svIndex,32) 		
			}
			else
			{
				set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
				show_hudmessage(id, "Wiecej niz 2 graczy jest wymagane do ponownego odrodzenia sie")	
			}
			
		}
	}
}

public respawn(svIndex[]) 
{ 
	new vIndex = str_to_num(svIndex) 
	spawn(vIndex);
}
if (c_respawn[id] > 0)
{
	
		new svIndex[32] 
		num_to_str(id,svIndex,32)
		new roll = random_num(1,c_respawn[id])
		if (roll == 1)
		{
			new maxpl,players[32]
			get_players(players, maxpl) 
			if (maxpl > 2)
			{
				cs_set_user_money(id,cs_get_user_money(id)+4000)
				set_task(0.5,"respawn",0,svIndex,32) 		
			}
			else
			{
				set_hudmessage(220, 115, 70, -1.0, 0.40, 0, 3.0, 2.0, 0.2, 0.3, 5)
				show_hudmessage(id, "Wiecej niz 2 graczy jest wymagane do ponownego odrodzenia sie")	
			}
			
		}
	}
}
public respawn(svIndex[]) 
{ 
	new vIndex = str_to_num(svIndex) 
	spawn(vIndex);
}

/* ==================================================================================================== */

fdf.sma(3664) : error 010: invalid function or declaration
fdf.sma(3668) : error 021: symbol already defined: "num_to_str"
fdf.sma(3670) : error 010: invalid function or declaration
fdf.sma(3673) : error 021: symbol already defined: "get_players"
fdf.sma(3674) : error 010: invalid function or declaration
fdf.sma(3679) : error 010: invalid function or declaration
fdf.sma(3685) : error 054: unmatched closing brace
fdf.sma(3689) : error 021: symbol already defined: "respawn"
fdf.sma(4776) : warning 213: tag mismatch
fdf.sma(4776) : error 088: number of arguments does not match definition
fdf.sma(8511) : warning 203: symbol is never used: "maxpl"
fdf.sma(8511) : warning 203: symbol is never used: "players"
fdf.sma(8511) : warning 203: symbol is never used: "roll"
fdf.sma(8511) : warning 203: symbol is never used: "svIndex"

  • +
  • -
  • 0

#13 Onyke

    Godlike

  • Przyjaciel

Reputacja: 708
Guru

  • Postów:2 178
Offline

Napisano 07.08.2010 12:33

Masz tu program do sprawdzania klamer
Sprawdzanie liczby klamer w funkcjach - Nieoficjalny polski support AMX Mod X
  • +
  • -
  • 1

#14 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 08.08.2010 00:17

Dzięki przyda się.
Powtarzam pytanie:
Co i gdzie trzeba zrobić, aby np. item Meekstone dało się używać więcej niż raz na rundę?

10 sierpień 2010 - 22:15:
Kolejne pytanie:
Jak zrobić aby wybrana klasa dostawała co rundę jakąś broń?

Użytkownik Gram Jajami edytował ten post 10.08.2010 21:15

  • +
  • -
  • 0

#15 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 20.08.2010 23:30

Odświeżam
  • +
  • -
  • 0

#16 Pro DiabloMod

    Życzliwy

  • Zbanowany

Reputacja: 10
Początkujący

  • Postów:25
  • Lokalizacja:Counter-Strike
Offline

Napisano 21.08.2010 07:57

http://amxx.pl/tutor...ron-t27790.html

wyciągnij z tego kod i dodaj tak jak przy tym poradniku:

http://amxx.pl/tutor...asy-t23969.html


Użytkownik Pro DiabloMod edytował ten post 21.08.2010 07:59


#17 Screeaam...

    ; ooo

  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 21.08.2010 08:33

if (c4state[id] > X)
{
hudmsg(id,2.0,"Meekstone mozesz uzyc raz na runde!")
return PLUGIN_CONTINUE
}


Za X podstaw ile razy można go użyć, 1 = 1 raz, 2 = 2 razy. Potem zmień tekst pojawiający się po zużyciu meekstonów, przykład:

if (c4state[id] > 4)
{
hudmsg(id,2.0,"Meekstone mozesz uzyc cztery razy na runde!")
return PLUGIN_CONTINUE
}


#18 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 26.08.2010 11:07

A jak zrobić, żeby ilość użyć była losowa?
  • +
  • -
  • 0

#19 slowly

    Wszechwidzący

  • Zbanowany

Reputacja: 14
Początkujący

  • Postów:270
  • Steam:steam
  • Lokalizacja:Warszawa
Offline

Napisano 26.08.2010 11:14

new los = random_num(x,y)
if (c4state[id] > los)
{
hudmsg(id,2.0,"Meekstone mozesz uzyc %i razy na runde!", los)
return PLUGIN_CONTINUE
}
else if(los==1)(id,2.0,"Meekstone mozesz uzyc raz na runde!"
			}
Za "x" postaw od której ma się zaczynać losowanie
Za "y" postaw liczbę na której na się kończyć losowanie

Powinno działać...

Użytkownik slowly edytował ten post 26.08.2010 11:16


#20 Gram Jajami

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -2
Nowy

  • Postów:75
  • Lokalizacja:Polska
Offline

Napisano 26.08.2010 11:39

public item_c4fake(id)
{ 
	new los = random_num(1,3)
	if (c4state[id] > los)
	{
	hudmsg(id,2.0,"Meekstone mozesz uzyc %i razy na runde!", los)
	return PLUGIN_CONTINUE
	}
	else if(los==1)(id,2.0,"Meekstone mozesz uzyc raz na runde!"
	}

	
	if (player_b_meekstone[id] > 0 && c4state[id] == 1 && is_user_alive(id) == 1 && freeze_ended == true)
	{
		explode(c4bombc[id],id,0)
		
		for(new a = 0; a < MAX; a++) 
		{ 
			if (is_user_connected(a) && is_user_alive(a))
			{			
				new origin1[3]
				get_user_origin(a,origin1) 
				
				if(get_distance(c4bombc[id],origin1) < 300 && get_user_team(a) != get_user_team(id))
				{
					UTIL_Kill(id,a,"grenade")
				}
			}
		}
		
		c4state[id] = 2
		remove_entity(c4fake[id])
		c4fake[id] = 0 
	}
	
	if (player_b_meekstone[id] > 0 && c4state[id] == 0 && c4fake[id] == 0 && is_user_alive(id) == 1 && freeze_ended == true)
	{
		new Float:pOrigin[3]
		entity_get_vector(id,EV_VEC_origin, pOrigin)
		c4fake[id] = create_entity("info_target")
		
		entity_set_model(c4fake[id],"models/w_backpack.mdl")
		entity_set_origin(c4fake[id],pOrigin)
		entity_set_string(c4fake[id],EV_SZ_classname,"fakec4")
		entity_set_edict(c4fake[id],EV_ENT_owner,id)
		entity_set_int(c4fake[id],EV_INT_movetype,6)
		
		
		new Float:aOrigin[3]
		entity_get_vector(c4fake[id],EV_VEC_origin, aOrigin)
		c4bombc[id][0] = floatround(aOrigin[0])
		c4bombc[id][1] = floatround(aOrigin[1])
		c4bombc[id][2] = floatround(aOrigin[2])
		c4state[id] = 1
	}
	
	return PLUGIN_CONTINUE 
}

dsd.sma(3876 -- 3877) : error 001: expected token: ")", but found "}"
dsd.sma(3876 -- 3880) : warning 215: expression has no effect
dsd.sma(4010) : error 010: invalid function or declaration
dsd.sma(4017) : error 021: symbol already defined: "message_begin"

27 sierpień 2010 - 23:04:
I jeszcze pytanko:
Jak zrobić odporność dla jakiejś klasy na latarkę maga?

29 sierpień 2010 - 19:18:
Jak zrobić, aby dana klasa mogła używać tylko pistoletów?

31 sierpień 2010 - 11:34:
Kolejny problem
Zrobiłem klasę, która ma zadawać o 10 większe obrażenia, a po załadowaniu noża o 30 i oczywiście ani to ani to nie działa. Zrobiłem tak:

nowa zmienna
new c_damage[33]

przed switch
c_damage[id] = 0

/* EFFECTS ================================================================================================= */

public add_damage_bonus(id,damage,attacker_id)
{
        if (player_b_damage[attacker_id] > 0 && get_user_health(id)>player_b_damage[attacker_id])
        {
                change_health(id,-player_b_damage[attacker_id],attacker_id,"")
                        
                if (random_num(0,2) == 1) Effect_Bleed(id,248)
        }
        if (c_damage[attacker_id] > 0 && get_user_health(id)>c_damage[attacker_id])
        {
                change_health(id,-c_damage[attacker_id],attacker_id,"")

                if (random_num(0,2) == 1) Effect_Bleed(id,248)  
        }
}
        

/* ==================================================================================================== */


case 0: {
		player_class[id] = xxx
		c_damage[id] = 10
		set_user_maxspeed(id,get_user_maxspeed(id)+20.0)


}
		case xxx:
		{
		c_damage[id]+=30;
		}

Moc dodawałem według tego: [Tutorial] Dodawnie mocy do klasy. - Nieoficjalny polski support AMX Mod X

Użytkownik Gram Jajami edytował ten post 31.08.2010 10:37

  • +
  • -
  • 0




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

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