Pytanie odnośnie Hamsandwich.
Muzzi
22.01.2011
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 :
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;
}
Abes Mapper
22.01.2011
DarkGL
22.01.2011
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;
}
Muzzi
22.01.2011
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ę.
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;
Zardziol
22.01.2011
też mam podobny problem więc napisze tu:
Czemu ten kod nie działa ?
Błąd jest tu : SetHamParamFloat(damage+random_float(0.1,100.0)
RejestracjaHamsa taka jak u autora tematu
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
Knopers
22.01.2011
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;
}
Knopers
22.01.2011
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)
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)