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
Dodatek

1/3 szansy zamrożenia wroga z kosy

Dodatek

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

#1 FreZZy

    Guru

  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 12.05.2011 19:49

Oto item który przez x sekund zamrozi wroga (niebieski render + szybkośc/2)

na górze sma
new zamrozenie[33]


w public reset_item_skills:
zamrozenie[id]=0


w case itemka:
zamrozenie[id]=1


dodaj pod add_bonus_illusion(attacker_id,id,weapon) (w public Damage)
add_bonus_freeze(id)


dodaj na koniec sma
public add_bonus_freeze(id)
{
if (is_user_connected(id))
{
new weapon
new bodypart
new attacker_id = get_user_attacker(id,weapon,bodypart)
new bron = get_user_weapon(attacker_id)
new losowanie = random_num(1,3)
if(attacker_id!=0 && attacker_id != id && zamrozenie[attacker_id] > 0 && get_user_team(id) != get_user_team(attacker_id) && bron==CSW_KNIFE && losowanie==1)
{
if(DemageTake[id] == 0)
DemageTake[id] = 1
AddFlag(id, Flag_Freeze)
}
}
set_speedchange(id)
set_renderchange(id)



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_Freeze,
num_of_flags
}


znajdź
if(HasFlag(id,Flag_Rot)) set_rendering(id, kRenderFxGlowShell, 255,255,0, kRenderFxNone, 10)


dodaj pod
if(HasFlag(id,Flag_Freeze)) set_rendering(id, kRenderFxGlowShell, 0,0,255, kRenderFxNone, 10)


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_Freeze);
set_renderchange(id);
}


szukamy
public ResetHUD(id)
{
if(is_user_connected(id))
{


dodajemy pod tym
RemoveFlag(id, Flag_Freeze)


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_Freeze))

Użytkownik FreZZy edytował ten post 15.05.2011 19:54


#2 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 14.05.2011 13:59

Ciekawy item, da się tak zrobić, że klasa ładuje sobie takie pociski na nożu i masz może ich mieć np. 3?

Użytkownik Sniper Elite edytował ten post 14.05.2011 14:00

  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#3 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 14.05.2011 15:24

Trochę źle... Sprawdzasz broń atakowanego i ogólnie parę błędów ^ ^
Powinno być jak coś tak

dodaj pod add_bonus_illusion(attacker_id,id,weapon) (w public Damage)
add_bonus_freeze(attacker_id, id, weapon)

i potem na koniec sma
public add_bonus_freeze(attacker_id, id, weapon)
{
if (is_user_connected(id) && is_user_connected(attacker_id))
{
if(zamrozenie[attacker_id] > 0 && get_user_team(id) != get_user_team(attacker_id) && weapon==CSW_KNIFE && random(3) == 1)
{
if(DemageTake[id] == 0)
DemageTake[id] = 1
AddFlag(id, Flag_Freeze)
}
}
set_speedchange(id)
set_renderchange(id)
}

Jeszcze da się to skrócić, ale za dużo pisania. Do tego można by zrobić losową szansę, czyli nie na sztywno 1/3, tylko 1/X szansy.

Użytkownik sebul edytował ten post 14.05.2011 15:25

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 FreZZy

    Guru

  • Autor tematu
  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 14.05.2011 16:38

Sebul, bo kopiowalem to z Item Poison a tam już trzeba wyciągnąć broń ;d i nie ma wiecej błędów -.- szansa losowa? 2 sekundy, tylko kolega mnie prosił o 1/3 wiec dałem 1/3

Sniper, tak, da sie

#5 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 15.05.2011 07:51

A coś dokładniej jakby można było? :rolleyes:
  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#6 FreZZy

    Guru

  • Autor tematu
  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 15.05.2011 09:23

sebul jednak zupełnie nie masz racji - broń wyciągnąłem po to, żeby sprawdzić czy gracz ma kose - bo to jest 1/3 z kosy

PS można by twoim sposobem, ale ja wole tak ;)

Użytkownik FreZZy edytował ten post 15.05.2011 09:24


#7 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 15.05.2011 17:18

sebul jednak zupełnie nie masz racji - broń wyciągnąłem po to, żeby sprawdzić czy gracz ma kose - bo to jest 1/3 z kosy

PS można by twoim sposobem, ale ja wole tak ;)

Ale przecież Ty sprawdzasz broń atakowanego, a nie tego co atakuje, a to chyba ma być item co daje szansę 1/3 z kosy dla tego co właśnie atakuje kogoś.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#8 FreZZy

    Guru

  • Autor tematu
  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 15.05.2011 18:16

***, tu mnie zagiąłeś

dzięki ;)

#9 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 15.05.2011 19:44

I klamry dalej nie zamknąłeś w "add_bonus_freeze", no i trochę nie potrzebnie wyciągasz dwa razy w tej funkcji broń atakującego (pomijając fakt, który wspomniałem w moim pierwszym poście tutaj).
Lepiej będzie tak
public add_bonus_freeze(id)
{
if (is_user_connected(id))
{
new weapon
new bodypart
new attacker_id = get_user_attacker(id,weapon,bodypart)
new losowanie = random(3)
if(attacker_id!=0 && attacker_id != id && zamrozenie[attacker_id] > 0 && get_user_team(id) != get_user_team(attacker_id) && weapon==CSW_KNIFE && losowanie==1)
{
if(DemageTake[id] == 0)
DemageTake[id] = 1
AddFlag(id, Flag_Freeze)
}
}
set_speedchange(id)
set_renderchange(id)
}

I jeszcze chyba jedna ważna rzecz, którą źle robisz. Z tego co wiem nie ma czegoś takiego jak "random_num(3)", jak coś jest albo "random(3)", albo "random_num(1,3)".
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#10 FreZZy

    Guru

  • Autor tematu
  • Zbanowany

Reputacja: 210
Profesjonalista

  • Postów:716
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wwa
Offline

Napisano 15.05.2011 19:51

hmm dzięki ale skąd będzie wiedział że to

new weapon

to właśnie get_user_weapon(id)?


a poza tym dzięki za info o tym

I jeszcze chyba jedna ważna rzecz, którą źle robisz. Z tego co wiem nie ma czegoś takiego jak "random_num(3)", jak coś jest albo "random(3)", albo "random_num(1,3)".



#11 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 15.05.2011 20:17

hmm dzięki ale skąd będzie wiedział że to

new weapon

to właśnie get_user_weapon(id)?

AMX Mod X - Half-Life Scripting for Pros!
Czyli po prostu drugi parametr "get_user_attacker", jest to broń atakującego, w tym przypadku przypisujesz ją do "weapon".
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#12 alien123

    Pomocny

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:54
  • Lokalizacja:Polska
Offline

Napisano 19.05.2011 19:38

Ta moc nie zamraża tylko spowalnia i jak spowalnia to na całą mapę.
Freez zrób tak żeby zamrażało na 4 sec.
  • +
  • -
  • 0

#13 JLB. Leo

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:180
  • Imię:Paweł
  • Lokalizacja:Bielawa
Offline

Napisano 20.05.2011 19:25

ta moc spowalnia dokładnie 2 razy :)

podmień w public set_speedchange kawałek kodu na:


new speeds
if(DemageTake[id]==1)
{
agi=(BASE_SPEED / 2)
if(HasFlag(id,Flag_Freeze))
set_task(4.0,"unfreeze",id)
}


i dodaj na sam koniec sma

public unfreeze(id)
{
DemageTake[id]=0
set_speedchange(id)
}


To spowoduje, że po 4.0 sekundach ci się odmrozi gość

Użytkownik JLB. Leo edytował ten post 20.05.2011 19:27


#14 Kicku

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:17
  • Imię:Mudzyn
  • Lokalizacja:Daleko w Dal
Offline

Napisano 20.05.2011 19:37

Jak zrobić by przeciwnik ktorego zamrozimy w ogóle sie nie ruszal i nie strzelal?
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika

#15 JLB. Leo

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:180
  • Imię:Paweł
  • Lokalizacja:Bielawa
Offline

Napisano 20.05.2011 19:42

to juz temat na zupełnie inny temat ;)

#16 Kicku

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:17
  • Imię:Mudzyn
  • Lokalizacja:Daleko w Dal
Offline

Napisano 20.05.2011 19:56

Interesuje mnie czy na podstawie tego kodu mozna zrobic takie cos.
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika

#17 Dalinor

    Zaawansowany

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:77
  • GG:
  • Lokalizacja:Rabka :)
Offline

Napisano 20.05.2011 20:33

Tak.
  • +
  • -
  • 0

#18 JLB. Leo

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:180
  • Imię:Paweł
  • Lokalizacja:Bielawa
Offline

Napisano 21.05.2011 08:47

Dalinor, mylisz sie

Trzeba jeszcze zmienić funkcje set_speedchange

#19 Aard

    Profesjonalista

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:190
  • Lokalizacja:Toruń
Offline

Napisano 21.05.2011 09:50

idzie to przerobic na moc do klasy ?

Użytkownik Aard edytował ten post 21.05.2011 09:50

  • +
  • -
  • 0

#20 alien123

    Pomocny

  • Użytkownik

Reputacja: 6
Nowy

  • Postów:54
  • Lokalizacja:Polska
Offline

Napisano 21.05.2011 10:16

JLB. Leo to weź zrób to będę ci bardzo wdzięczny.
  • +
  • -
  • 0





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

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

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