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.
|
Pytania związane z robieniem nowych klas i itemów
#1
Napisano 01.08.2010 19:08
W tym oto temacie będę zadawał przeróżne pytania (głupie, trudne, łatwe i takie tam ) związane z robieniem nowych klas i itemów.
Oto pierwsze pytanie
Jak zrobić, aby dana klasa miała własny model noża?
Zapraszam - http://cs-hardcorownia.pl/
#2
Napisano 01.08.2010 19:19
#3
Napisano 02.08.2010 10:07
Pytanie numer 2
Co i gdzie trzeba zrobić, aby np. item Meekstone dało się używać więcej niż raz na rundę?
Zapraszam - http://cs-hardcorownia.pl/
#4
Napisano 02.08.2010 10:11
Może to ??new player_b_meekstone[33] = 1 //Ability to lay a fake c4 and detonate
raczej to
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
Napisano 02.08.2010 10:24
Trzecie pytanie
Jak zrobić odporność jakiejś tam klasy na wybrane itemy?
Zapraszam - http://cs-hardcorownia.pl/
#6
Napisano 02.08.2010 10:36
[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
Napisano 02.08.2010 11:19
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
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
Zapraszam - http://cs-hardcorownia.pl/
#8
Napisano 02.08.2010 19:19
Mozesz tez zrobic ze klasa dostaje mniej o X
player_b_redirect
#9
Napisano 05.08.2010 12:18
/* 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
Zapraszam - http://cs-hardcorownia.pl/
#10
Napisano 05.08.2010 22:28
/* 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
I dodałeś c_damage koło zmiennych ?
Użytkownik 0nYk3 edytował ten post 05.08.2010 22:29
#11
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)
}
}
/* ==================================================================================================== */
#12
Napisano 06.08.2010 08:54
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
/* ==================================================================================================== */ 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"
Zapraszam - http://cs-hardcorownia.pl/
#13
Napisano 07.08.2010 12:33
Sprawdzanie liczby klamer w funkcjach - Nieoficjalny polski support AMX Mod X
#14
Napisano 08.08.2010 00:17
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
Zapraszam - http://cs-hardcorownia.pl/
#16
Napisano 21.08.2010 07:57
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
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
Napisano 26.08.2010 11:07
Zapraszam - http://cs-hardcorownia.pl/
#19
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
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
Zapraszam - http://cs-hardcorownia.pl/
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych