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

Pytanie odnośnie Hamsandwich.Problem :)


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

#1 Muzzi

    Guru

  • Przyjaciel

Reputacja: 228
Wszechwidzący

  • Postów:772
  • Lokalizacja:Kraków
Offline

Napisano 22.01.2011 12:31

Witam serdecznie.
Niestety nie mam możliwości przetestowania tego. I tutaj proszę was o odpowiedź czy ta funkcja będzie działać.
A jak nie to co jest źle co musze poprawić.
Chodzi mi oto zeby osobie która ma klase abcd miała 50 % szansy ze zada dodatkowy dmg od 50 do 100.

init :

RegisterHam(Ham_TakeDamage, "player","fwTakeDamage",0);


funkcja :

public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(player_class[idattacker] == Abcd)
{
if(random_num(1,100)<= 50) // 50 %
{
damage+=(random_num(50,100))
}
}
return HAM_IGNORED;
}

  • +
  • -
  • 0

#2 Abes Mapper

    Repulsion Gel

  • Przyjaciel

Reputacja: 2 017
Godlike

  • Postów:7 356
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Sulejówek
Offline

Napisano 22.01.2011 13:06

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
AMX Mod X -> Pytania
do
Scripting -> Pytania

  • +
  • -
  • 0

#3 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 22.01.2011 13:11


public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(player_class[idattacker] == Abcd)
{
if(random_num(1,100)<= 50) // 50 %
{

SetHamParamFloat(damage+random_float(50.0,100.0)
return HAM_HANDLED;
}
}
return HAM_IGNORED;
}

  • +
  • -
  • 0

#4 Muzzi

    Guru

  • Autor tematu
  • Przyjaciel

Reputacja: 228
Wszechwidzący

  • Postów:772
  • Lokalizacja:Kraków
Offline

Napisano 22.01.2011 14:27

Niestety Nie działa.

C:\Documents and Settings\Uzytkownik\Pulpit\Desktop\pstudio-0.8.3\temp3.sma(1773 -- 1774) : warning 213: tag mismatch
C:\Documents and Settings\Uzytkownik\Pulpit\Desktop\pstudio-0.8.3\temp3.sma(1773 -- 1774) : error 001: expected token: ",", but found "return"

Wskazuje na tą linijkę.


SetHamParamFloat(damage+random_float(50.0,100.0)
return HAM_HANDLED;

  • +
  • -
  • 0

#5 Zardziol

    Pomocny

  • Zbanowany

Reputacja: 2
Nowy

  • Postów:62
  • Imię:Filip
  • Lokalizacja:Radom
Offline

Napisano 22.01.2011 14:41

też mam podobny problem więc napisze tu:

public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
damage=0.00
damage=obr[idattacker]
if(random_num(1,100)<= inte[idattacker]) // 50 %
{

SetHamParamFloat(damage+random_float(0.1,100.0)
return HAM_HANDLED
}

new Float:bff[33] = bf[idinflictor]*0.25
damage=damage-bff[idinflictor]


}


Czemu ten kod nie działa ?
Błąd jest tu : SetHamParamFloat(damage+random_float(0.1,100.0)
RejestracjaHamsa taka jak u autora tematu

#6 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 22.01.2011 15:11

public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(player_class[idattacker] == Abcd)
{
if(random_num(1,100) <= 50) // 50 %
{
SetHamParamFloat(4, damage+random_float(50.0,100.0))
return HAM_HANDLED;
}
}
return HAM_IGNORED;
}

  • +
  • -
  • 0

#7 Zardziol

    Pomocny

  • Zbanowany

Reputacja: 2
Nowy

  • Postów:62
  • Imię:Filip
  • Lokalizacja:Radom
Offline

Napisano 22.01.2011 15:31

knopers co oznacza to 4 ?

#8 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 22.01.2011 15:46

Funkcja SetHamParamFloat jak można się domyślić po nazwie zmienia Parametr typu Float w funkcji HamSandwitch'a .
Funkcja przyjmuje 2 argumenty:
1. Numer Parametru - w tym wypadku damage który ma nr. 4
2. Nową wartość dla danego parametru, oczywiście typu zmienno-przecinkowego (Float)
  • +
  • -
  • 0




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

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