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.
|
Item Poison
#1
Napisano 07.05.2011 16:03
Jak zrobić item, który będzie miał 1/3 szansy na zatrucie wroga?
Dmg zatrucia będzie zależały od inteligencji.
#2
Napisano 07.05.2011 16:05
#3
Napisano 07.05.2011 18:33
public DoDamage(id, iDamage, attacker, weapon[]) { if(is_user_connected(id) && is_user_alive(id) && is_user_connected(attacker) && freeze_ended) { change_health(id, -iDamage, attacker, weapon); if(get_user_health(id) < 1) { add_respawn_bonus(id); add_bonus_explode(id); add_barbarian_bonus(attacker); if(player_class[attacker] == Barbarzynca) refill_ammo(attacker); set_renderchange(attacker); } } }Dać to?
public DoDamage(id, iDamage, attacker, weapon[]) { if(is_user_connected(id) && is_user_alive(id) && is_user_connected(attacker) && poison_ended) { change_health(id, -iDamage, attacker, weapon); if(get_user_health(id) < 1) { add_respawn_bonus(id); add_bonus_explode(id); add_barbarian_bonus(attacker); if(player_class[attacker] == Barbarzynca) refill_ammo(attacker); set_renderchange(attacker); } } }
#4
Napisano 07.05.2011 18:39
chcesz zrobić item czy naprawić moc pistoletowa u maga
Użytkownik Divic edytował ten post 07.05.2011 18:39
#5
Napisano 07.05.2011 20:01
Dodano 08 maj 2011 - 16:27:
To mogę prosić kogoś o pomoc przy tym itemie?
A mam jeszcze jedno pytanko jak zrobić 1/3 szansy na zamrożenie z noża?
Dodano 09 maj 2011 - 17:51:
Odświeżam
#6
Napisano 10.05.2011 19:47
!UWAGA! Obowiązkowo Nalezy Skorzystać z Poradnika sebula !UWAGA!
[Fix 5.9l] Naprawa mocy pistoletowej maga - AMXX.pl: Support AMX Mod X
new zatrucie[33]
w public reset_item_skills:
zatrucie[id]=0
w case itemka:
zatrucie[id]=1
dodaj pod add_bonus_illusion(attacker_id,id,weapon) (w public Damage)
add_bonus_poison(id)
dodaj na koniec sma
public add_bonus_poison(id)
{
if (is_user_connected(id))
{
new weapon
new bodypart
new attacker_id = get_user_attacker(id,weapon,bodypart)
if(attacker_id!=0 && attacker_id != id && zatrucie[attacker_id] > 0 && get_user_team(id) != get_user_team(attacker_id))
{
if(DemageTake[id] == 0)
{
DemageTake[id] = 1;
new Float:obrazenia
obrazenia = 5; // tutaj zmieniasz wartość obrażeń zadawanych co 2 sek.
new data[3];
data[0] = attacker_id;
data[1] = weapon;
data[2] = obrazenia;
set_task(11.0, "funcReleaseVic", id);
set_task(11.0, "funcReleaseVic2", id);
set_task(2.0, "funcDemageVic", id+GLUTON, data, 3);
}
}
}
}
znajdź
public funcDemageVic(id,attacker)
{
id-=GLUTON
if(get_user_health(id)>10)
set_task(2.0, "funcDemageVic", id+GLUTON)
DoDamage(id, attacker1, 5);
}
zamień na
public funcDemageVic(data[], id) {
id -= GLUTON;
new attacker = data[0];
new weapon = data[1];
new damage = data[2];
if(get_user_health(id)>10)
set_task(2.0, "funcDemageVic", id+GLUTON, data, 3);
new weaponname[32];
get_weaponname(weapon, weaponname, 31);
replace(weaponname, 31, "weapon_", "");
DoDamage(id, damage, attacker, weaponname);
}
znajdź
DoDamage(iTargetID, iShooterID, iDamage/*, iDamageCause, bIsWeaponID = false, iHeadShot = 0*/)
{
if(is_user_connected(iTargetID)&&is_user_connected(iShooterID))
if ( is_user_alive(iTargetID))
{
new bool:bPlayerDied = false;
new iHP = get_user_health(iTargetID);
if ( ( iHP - iDamage ) <= 0 )
bPlayerDied = true;
if (bPlayerDied)
{
// engine.inc set_msg_block function
//set_msg_block(g_iGameMsgDeath, BLOCK_ONCE);
user_kill(iTargetID, 1);
}
else
change_health(iTargetID,-iDamage,0,"")
new sShooterName[32];
get_user_name(iShooterID, sShooterName, 31);
if (bPlayerDied)
{
if ( iShooterID != iTargetID )
{
if ( get_user_team(iShooterID) != get_user_team(iTargetID) )
set_user_frags(iShooterID, get_user_frags(iShooterID) + 1);
else
set_user_frags(iShooterID, get_user_frags(iShooterID) - 1);
//LogKill(iShooterID, iTargetID, sWeaponOrMagicName);
}
//AddXP(iShooterID, BM_XP_KILL, iTargetID); // bmxphandler.inc
award_item(iShooterID,0)
award_kill(iShooterID,iTargetID)
add_respawn_bonus(iTargetID)
add_bonus_explode(iTargetID)
add_barbarian_bonus(iShooterID)
if (player_class[iShooterID] == Barbarzynca)
refill_ammo(iShooterID)
}
}
}
zamień na
public DoDamage(id, iDamage, attacker, weapon[]) {
if(is_user_connected(id) && is_user_alive(id) && is_user_connected(attacker) && freeze_ended) {
change_health(id, -iDamage, attacker, weapon);
if(get_user_health(id) < 1) {
add_respawn_bonus(id);
add_bonus_explode(id);
add_barbarian_bonus(attacker);
if(player_class[attacker] == Barbarzynca)
refill_ammo(attacker);
set_renderchange(attacker);
}
}
}
##############################################################################################################
jak jeszcze chcesz render zielony to tak:
znajdź
enum {
Flag_Ignite = 0,
Flag_Hooking,
Flag_Rot,
Flag_Dazed,
Flag_Illusion,
Flag_Moneyshield,
Flag_Teamshield,
Flag_Teamshield_Target,
num_of_flags
}
zamień na
enum {
Flag_Ignite = 0,
Flag_Hooking,
Flag_Rot,
Flag_Dazed,
Flag_Illusion,
Flag_Moneyshield,
Flag_Teamshield,
Flag_Teamshield_Target,
Flag_Trucizna,
num_of_flags
}
znajdź
if(HasFlag(id,Flag_Rot)) set_rendering(id, kRenderFxGlowShell, 255,255,0, kRenderFxNone, 10)
dodaj pod
if(HasFlag(id,Flag_Trucizna)) set_rendering(id, kRenderFxGlowShell, 0,255,0, kRenderFxNone, 10)
a zamiast
public add_bonus_poison(id)
{
if (is_user_connected(id))
{
new weapon
new bodypart
new attacker_id = get_user_attacker(id,weapon,bodypart)
if(attacker_id!=0 && attacker_id != id && zatrucie[attacker_id] > 0 && get_user_team(id) != get_user_team(attacker_id))
{
if(DemageTake[id] == 0)
{
DemageTake[id] = 1;
new Float:obrazenia[33]
obrazenia[id]=5+player_intelligence[id]/25; // tutaj zmieniasz wartość obrażeń zadawanych co 2 sek.
new data[3];
data[0] = attacker_id;
data[1] = weapon;
data[2] = obrazenia[id];
set_task(11.0, "funcReleaseVic", id);
set_task(11.0, "funcReleaseVic2", id);
set_task(2.0, "funcDemageVic", id+GLUTON, data, 3);
}
}
}
}
daj
public add_bonus_poison(id)
{
if (is_user_connected(id))
{
new weapon
new bodypart
new attacker_id = get_user_attacker(id,weapon,bodypart)
if(attacker_id!=0 && attacker_id != id && zatrucie[attacker_id] > 0 && get_user_team(id) != get_user_team(attacker_id))
{
if(DemageTake[id] == 0)
{
DemageTake[id] = 1;
new Float:obrazenia
obrazenia=5; // tutaj zmieniasz wartość obrażeń zadawanych co 2 sek.
new data[3];
AddFlag(id, Flag_Trucizna);
data[0] = attacker_id;
data[1] = weapon;
data[2] = obrazenia;
set_task(11.0, "funcReleaseVic", id);
set_task(11.0, "funcReleaseVic2", id);
set_task(2.0, "funcDemageVic", id+GLUTON, data, 3);
}
}
set_speedchange(id);
set_renderchange(id)
}
}
potem jeszcze znajdź i zamień
public funcReleaseVic(id) {
DemageTake[id] = 0;
remove_task(id+GLUTON);
}
na
public funcReleaseVic(id) {
DemageTake[id] = 0;
remove_task(id+GLUTON);
RemoveFlag(id, Flag_Trucizna);
set_renderchange(id);
}
potem się zabezbpieczamy jak to sebul opisał, czyli szukamy
public ResetHUD(id)
{
if(is_user_connected(id))
{
i dodajemy pod tym
RemoveFlag(id, Flag_Trucizna);
i jeszcze znajdź
else if(HasFlag(id,Flag_Moneyshield) || HasFlag(id,Flag_Rot) || HasFlag(id,Flag_Teamshield_Target) || HasFlag(id,Flag_Illusion))
i zamień na
else if(HasFlag(id,Flag_Moneyshield) || HasFlag(id,Flag_Rot) || HasFlag(id,Flag_Teamshield_Target) || HasFlag(id,Flag_Illusion) || HasFlag(id,Flag_Trucizna))
nie sprawdzałem czy działa! pewnie jak zwykle o czymś zapomniałem
Użytkownik FreZZy edytował ten post 12.05.2011 19:48
#7
Napisano 10.05.2011 20:04
#8
Napisano 10.05.2011 20:07
#9
Napisano 11.05.2011 20:40
#10
Napisano 11.05.2011 20:48
To już link do tematu od sebula był by lepszym rozwiązaniem.
#11
Napisano 11.05.2011 20:59
a tu mają gotowca
#12
Napisano 11.05.2011 21:08
Ogólnie dobre dla początkujących.
#13
Napisano 12.05.2011 13:13
#14
Napisano 12.05.2011 15:49
#15
Napisano 12.05.2011 19:25
#16
Napisano 15.05.2011 15:49
I mam Warningi 3 wiem ze z nimi będzie działać ale może da się je naprawić lubię mieć czyste sma
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team Warning: Tag mismatch on line 10082 Warning: Tag mismatch on line 10087 Warning: Loose indentation on line 10093 Header size: 10036 bytes Code size: 341940 bytes Data size: 226876 bytes Stack/heap size: 16384 bytes; max. usage is unknown, due to recursion Total requirements: 595236 bytes 3 Warnings. Done.
public add_bonus_poison(id) { if (is_user_connected(id)) { new weapon new bodypart new attacker_id = get_user_attacker(id,weapon,bodypart) if(attacker_id!=0 && attacker_id != id && zatrucie[attacker_id] > 0 && get_user_team(id) != get_user_team(attacker_id)) { if(DemageTake[id] == 0) { DemageTake[id] = 1 new Float:obrazenia Blad tu obrazenia=2 // tutaj zmieniasz wartosc obrazen zadawanych co 2 sek new data[3] AddFlag(id, Flag_Trucizna) data[0] = attacker_id data[1] = weapon Blad tu data[2] = obrazenia set_task(11.0, "funcReleaseVic", id) set_task(11.0, "funcReleaseVic2", id) set_task(2.0, "funcDemageVic", id+GLUTON, data, 3) } } Blad tu set_speedchange(id) set_renderchange(id) } }
Użytkownik Divic edytował ten post 15.05.2011 15:49
#17
Napisano 15.05.2011 18:59
public add_bonus_poison(id) { if (is_user_connected(id)) { new weapon new bodypart new attacker_id = get_user_attacker(id,weapon,bodypart) if(attacker_id!=0 && attacker_id != id && zatrucie[attacker_id] > 0 && get_user_team(id) != get_user_team(attacker_id)) { if(DemageTake[id] == 0) { DemageTake[id] = 1 new Float:obrazenia obrazenia = 2 // tutaj zmieniasz wartosc obrazen zadawanych co 2 sek new data[3] AddFlag(id, Flag_Trucizna) data[0] = attacker_id data[1] = weapon data[2] = obrazenia set_task(11.0, "funcReleaseVic", id) set_task(11.0, "funcReleaseVic2", id) set_task(2.0, "funcDemageVic", id+GLUTON, data, 3) } } set_speedchange(id) set_renderchange(id) } }Dalej ?
#18
Napisano 15.05.2011 19:04
new Float:obrazenia
zamień na
new obrazenia
#19
Napisano 15.05.2011 19:15
#20
Napisano 15.05.2011 20:52
new weapon new bodypart new attacker_id = get_user_attacker(id,weapon,bodypart)
Nie wystarczy?:
new attacker_id = get_user_attacker(id)
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych