Wieksze obrazenia dla 1 gracza
skowron97
28.04.2011
Witam
Pisze XpModa przeznaczonego na DeathRuna i chciałbym zrobic skill/umiejetnosc "Wieksze Obrazenia z Noza". Udało mi się to, ale obrażenia zmieniają się wszystkim graczom, a chciłbym że zmieniało się graczowi, który ma dodane punkty w tą umiejetność. Daje kod. sma
Pisze XpModa przeznaczonego na DeathRuna i chciałbym zrobic skill/umiejetnosc "Wieksze Obrazenia z Noza". Udało mi się to, ale obrażenia zmieniają się wszystkim graczom, a chciłbym że zmieniało się graczowi, który ma dodane punkty w tą umiejetność. Daje kod. sma
public DmgKosa(id, victim, entity, Float:damage, damagebits)
{
if(is_user_connected(id) && is_user_connected(victim))
{
if(get_user_weapon(id) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
return HAM_IGNORED;
}
diablix
28.04.2011
Wystarczy zmienna typu bool lub normalna przyjmująca warunek 1 po kupnie umiejętności. Potem tylko sprawdzasz czy attacker posiada ową.
PS. fDamage * 9.5 = przy hicie za 100 zada 950
PS. fDamage * 9.5 = przy hicie za 100 zada 950
skowron97
28.04.2011
Wiem to tylko przykład, a jakbyś mogł mi to przerobić, bo jescze tak średnio rozumiem pisanie pluginów.
skowron97
28.04.2011
Chyba mniejwiecej rozumiem tylko daj mi sie upewnic.
Musze zrobic
i potem przy umiejetnosci
i
tylko niewiem co tam musi byc dokladnie napisane
Musze zrobic
new bool: dmg
i potem przy umiejetnosci
dmg == 1
i
public DmgKosa(id, attacker, entity, Float:damage, damagebits)
{
if(attacker(dmg == 1) {
if(is_user_connected(id) && is_user_connected(victim))
{
if(get_user_weapon(id) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
return HAM_IGNORED;
}
tylko niewiem co tam musi byc dokladnie napisane
FreZZy 28.04.2011
nie, jeżeli już to
public DmgKosa(attacker, victim, entity, Float:damage, damagebits)
{
if(attacker(dmg == 1) {
if(is_user_connected(attacker) && is_user_connected(victim))
{
if(get_user_weapon(attacker) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
return HAM_IGNORED;
}
diablix
28.04.2011
new gUserSkill[33];
Przy kupnie
gUserSkill[id] ++;
public DmgKosa(this, attacker, entity, Float:damage, damagebits){
if(gUserSkill[attacker]) {
if(is_user_connected(attacker) && is_user_connected(victim))
{
if(get_user_weapon(attacker) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}
Użytkownik diablix edytował ten post 28.04.2011 15:30
skowron97
29.04.2011
new gUserSkill[33];
Przy kupniegUserSkill[id] ++;public DmgKosa(this, attacker, entity, Float:damage, damagebits){
if(gUserSkill[attacker]) {
if(is_user_connected(attacker) && is_user_connected(victim))
{
if(get_user_weapon(attacker) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}
Użytkownik diablix edytował ten post wczoraj, 15:30
To niestety nie działa, wtedy wcale nie zadaje obrazen z noza ;(
Użytkownik skowron97 edytował ten post 29.04.2011 17:44
Goliath
29.04.2011
public DmgKosa(this, entity, attacker, Float:damage, damagebits)
{
if(gUserSkill[attacker])
{
if(is_user_connected(attacker) && is_user_connected(this))
{
if(get_user_weapon(attacker) == CSW_KNIFE && damagebits & (1<<1))
{
SetHamParamFloat(4, damage * 9.5);
}
}
}
return HAM_IGNORED;
}
Użytkownik Goliath edytował ten post 29.04.2011 18:15
diablix
29.04.2011
Mój kod działa na 100% poprostu warunku nie spełniasz z tą zmienną zapewne.
skowron97
30.04.2011
Nie rozumiem powinno byc dobrze ;/. Teraz znowu nie zmienia sie dmg.
RegisterHam(Ham_TakeDamage, "player", "DmgKosa");
new gUserSkill[33];
public exp_wybierz_3(id, menu_exp_3 , item)
{
new data[6], iName[64]
new acces, callback
menu_item_getinfo(menu_exp_3, item, acces, data,5, iName, 63, callback)
new klawisz = str_to_num(data)
switch(klawisz)
{
case 1 : {
//if(PlayerLevel[id] <= 24) {
//ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Nie masz^x03 25^x01 levela!");
//}
//else
if(punkty[id] == 0) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Nie masz wystarczajacej ilosci punktow!");
}
else
{
if(punktykosa[id] >= 2) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Przepraszam, masz juz^x03 %i^x04 /^x03 2^x01!", punktykosa[id]);
}
else
{
punkty[id] -= 1;
punktykosa[id] += 1;
gUserSkill[id] ++;
ColorChat(id, GREEN, "[DeathRun XpMod] Dodanie punkta do Wieksze DMG z Kosy zakonczone sukcesem!");
}
}
menu_destroy(menu_exp_3);
menu_xp_3(id);
SaveData(id);
return PLUGIN_HANDLED;
}
case 2 : {
if(PlayerLevel[id] <= 26) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Nie masz^x03 27^x01 levela!");
}
else if(punkty[id] == 0) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Nie masz wystarczajacej ilosci punktow!");
}
else
{
if(punktyhe[id] >= 2) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Przepraszam, masz juz^x03 %i^x04 /^x03 2^x01!", punktyhe[id]);
}
else
{
punkty[id] -= 1;
punktyhe[id] += 1;
ColorChat(id, GREEN, "[DeathRun XpMod] Dodanie punkta do Wieksze DMG z HE zakonczone sukcesem!");
}
}
menu_destroy(menu_exp_3);
menu_xp_3(id);
SaveData(id);
return PLUGIN_HANDLED;
}
case 8: {
menu_xp_2(id);
menu_destroy(menu_exp_3);
}
}
}
public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
if(is_user_connected(Attacker) && is_user_connected(Victim))
{
if(get_user_weapon(Attacker) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}
Optymalny193 30.04.2011
Jak chcesz tez do HE to wez to:
public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
if(is_user_connected(Attacker) && is_user_connected(Victim))
{
if(get_user_weapon(Attacker) == CSW_KNIFE && CSW_HEGRENADE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}
skowron97
30.04.2011
Jak chcesz tez do HE to wez to:
public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
if(is_user_connected(Attacker) && is_user_connected(Victim))
{
if(get_user_weapon(Attacker) == CSW_KNIFE && CSW_HEGRENADE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}
Ja to wiem tylko, że mi to w ogóle nie działa ;/
diablix
30.04.2011
Jak chcesz tez do HE to wez to:
public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
if(is_user_connected(Attacker) && is_user_connected(Victim))
{
if(get_user_weapon(Attacker) == CSW_KNIFE && CSW_HEGRENADE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}
Sprawdz chociaż to co piszesz, ok?
#define DMG_GRENADE (1 << 24)
public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
if(is_user_connected(Attacker) && is_user_connected(Victim))
{
if(damagebits & DMG_GRENADE)
{
SetHamParamFloat(4, damage * 2.0);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}
Użytkownik diablix edytował ten post 30.04.2011 12:29
skowron97
30.04.2011
diablix thx . Wszystko dziala poprostu pomylily mi sie FTP . Wielkie dzięki masz "+".
Mozna Close
Mozna Close