←  Prośby o Klasę/Perk

AMXX.pl: Support AMX Mod X i SourceMod

»

Klasa
[ROZWIĄZANE] Proszę o klasę Amadeusz (Prem...


Najlepsza odpowiedź Rivit 17.07.2015 19:45

Sprawdz oO

Przejdź do postu

  • +
  • -
SabberZ - zdjęcie SabberZ 15.07.2015

Witam.

Chciałbym żeby klasa miała takie statystyki:

 

Inteligencja: 0

Zdrowie: 20

Wytrzymałość: 20

Kondycja: 10

 

Opis: Ma 10(+int) obrażeń z MP5

 

Bronie: MP5,USP,Glock-18

Odpowiedz

  • +
  • -
Alelluja - zdjęcie Alelluja 15.07.2015

Proszę.

Załączone pliki

Odpowiedz

  • +
  • -
protypek - zdjęcie protypek 15.07.2015

Trzymaj dobry, bo kolega na górze znowu o czymś zapomniał ;) 

 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<1)
        
new const nazwa[]   = "Amadeusz (Premium)";
new const opis[]    = "Ma 10(+int) obrazen z MP5.";
new const bronie    = (1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_MP5NAVY);
new const zdrowie   = 20;
new const kondycja  = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;

new ma_klase[33];
    
public plugin_init()
{
	register_plugin(nazwa, "1.0", "Alelluja");

	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	
	RegisterHam(Ham_TakeDamage, "player", "DmG");
}

public cod_class_enabled(id)
{
	if(!(get_user_flags(id) & ADMIN_LEVEL_A)) // teraz jest na flage m, a jak chcesz na flage a czyli immunitet to zamien ADMIN_LEVEL_A na ADMIN_IMMUNITY
	{
		client_print(id, print_chat, "[Amadeusz (Premium)] Nie masz uprawnien, aby uzywac tej klasy.")
		return COD_STOP;
	}
	ma_klase[id] = true;   
	return COD_CONTINUE;
}

public cod_class_distabled(id)
ma_klase[id] = false;

public DmG(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
		return HAM_IGNORED;
	
	if(!ma_klase[idattacker])
		return HAM_IGNORED;
	
	if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_AK47 && damagebits & DMG_BULLET)
		cod_inflict_damage(idattacker, this, 10.0, 0.2, idinflictor, damagebits);
	
	return HAM_IGNORED;
}

Odpowiedz

  • +
  • -
SabberZ - zdjęcie SabberZ 15.07.2015

 

Trzymaj dobry, bo kolega na górze znowu o czymś zapomniał ;) 

 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<1)
        
new const nazwa[]   = "Amadeusz (Premium)";
new const opis[]    = "Ma 10(+int) obrazen z MP5.";
new const bronie    = (1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_MP5NAVY);
new const zdrowie   = 20;
new const kondycja  = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;

new ma_klase[33];
    
public plugin_init()
{
	register_plugin(nazwa, "1.0", "Alelluja");

	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	
	RegisterHam(Ham_TakeDamage, "player", "DmG");
}

public cod_class_enabled(id)
{
	if(!(get_user_flags(id) & ADMIN_LEVEL_A)) // teraz jest na flage m, a jak chcesz na flage a czyli immunitet to zamien ADMIN_LEVEL_A na ADMIN_IMMUNITY
	{
		client_print(id, print_chat, "[Amadeusz (Premium)] Nie masz uprawnien, aby uzywac tej klasy.")
		return COD_STOP;
	}
	ma_klase[id] = true;   
	return COD_CONTINUE;
}

public cod_class_distabled(id)
ma_klase[id] = false;

public DmG(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
		return HAM_IGNORED;
	
	if(!ma_klase[idattacker])
		return HAM_IGNORED;
	
	if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_AK47 && damagebits & DMG_BULLET)
		cod_inflict_damage(idattacker, this, 10.0, 0.2, idinflictor, damagebits);
	
	return HAM_IGNORED;
}

 

Błąd przy próbie kompilacji
 

Odpowiedz

  • +
  • -
protypek - zdjęcie protypek 15.07.2015

Lokalnie kompilowałeś czy na amxx?
Bo ja żadnego bledy nie miałem.
Użytkownik protypek edytował ten post 15.07.2015 20:12
Odpowiedz

  • +
  • -
Alelluja - zdjęcie Alelluja 15.07.2015

Zamień to:

 

public cod_class_distabled(id)
ma_klase[id] = false;

 

Na

 

public cod_class_distabled(id)

{
ma_klase[id] = false;

}

Odpowiedz

  • +
  • -
SabberZ - zdjęcie SabberZ 16.07.2015

Kompilowałem na Amxx i nawet jak to zamienilem co napisal Alleluja to i tak sie nie kompiluje u mnie.

Zobaczcie sami moze ja cos zle podmienilem bo zielony jestem w te sprawy.

 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<1)
        
new const nazwa[]   = "Amadeusz (Premium)";
new const opis[]    = "Ma 10(+int) obrazen z MP5.";
new const bronie    = (1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_MP5NAVY);
new const zdrowie   = 20;
new const kondycja  = 10;
new const inteligencja = 0;
new const wytrzymalosc = 20;

new ma_klase[33];
    
public plugin_init()

{
    register_plugin(nazwa, "1.0", "Alelluja");

    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    
    RegisterHam(Ham_TakeDamage, "player", "DmG");
}

public cod_class_enabled(id)
{
    if(!(get_user_flags(id) & ADMIN_LEVEL_A)) // teraz jest na flage m, a jak chcesz na flage a czyli immunitet to zamien ADMIN_LEVEL_A na ADMIN_IMMUNITY
    {
        client_print(id, print_chat, "[Amadeusz (Premium)] Nie masz uprawnien, aby uzywac tej klasy.")
        return COD_STOP;
    }
    ma_klase[id] = true;   
    return COD_CONTINUE;
}

public cod_class_distabled(id)


{
ma_klase[id] = false;

}
public DmG(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_connected(idattacker))
        return HAM_IGNORED;
    
    if(!ma_klase[idattacker])
        return HAM_IGNORED;
    
    if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_AK47 && damagebits & DMG_BULLET)
        cod_inflict_damage(idattacker, this, 10.0, 0.2, idinflictor, damagebits);
    
    return HAM_IGNORED;
}
 


Użytkownik SabberZ edytował ten post 16.07.2015 05:30
Odpowiedz

  • +
  • -
Alelluja - zdjęcie Alelluja 16.07.2015

Masz

Załączone pliki

Odpowiedz

  • +
  • -
protypek - zdjęcie protypek 16.07.2015

Masz

 Nie zmienia to postaci żeby jak masz:
 

public cod_class_distabled(id)
ma_klase[id] = false;

albo

 

public cod_class_distabled(id)
{
ma_klase[id] = false;
}

Mi się normalnie kompiluję z pierwszą opcją.

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 16.07.2015

:facepalm: :facepalm: :facepalm: :facepalm: :facepalm: :facepalm:

 

To:

public cod_class_distabled(id)
{
    ma_klase[id] = false;
}

a to:

public cod_class_distabled(id)
	ma_klase[id] = false;

To to samo XDDDDDDDD

 

 

Przyjrzyj się tu:

public cod_class_distabled(id)

a dokładniej tu:

cod_class_distabled(id)

a tak bardzo dokładnie to tu:

distabled

Wyrzuć stamtąd literkę "t" i po sprawie...

Odpowiedz

  • +
  • -
NieWiemMamMac@ - zdjęcie NieWiemMamMac@ 16.07.2015

A i tak chyba nikt nie zauważył istotnego błędu:

if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_AK47 && damagebits & DMG_BULLET)
        cod_inflict_damage(idattacker, this, 10.0, 0.2, idinflictor, damagebits);

obrażenie zwiększone będą dla AK47 nie dla MP5NAVY ;)

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 16.07.2015

Tsaaa, jasne, a zwiększone dmg będą powodować czaszkę zamiast ikonki bronii...

public DmG(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker)) return HAM_IGNORED;
	
	if(!ma_klase[idattacker]) return HAM_IGNORED;
	
	if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_AK47 && damagebits & DMG_BULLET)
        {
                SetHamParamFloat(4, damage+(cod_get_user_intelligence(id, 1, 1, 1)*0.2))
                return HAM_HANDLED
        }
	
	return HAM_IGNORED;
}

To będzie poprawnie, tylko nie wiem czy nie ma literówek, ale to łatwo poprawić.

Odpowiedz

  • +
  • -
NieWiemMamMac@ - zdjęcie NieWiemMamMac@ 17.07.2015

Tsaaa, jasne, a zwiększone dmg będą powodować czaszkę zamiast ikonki bronii...

public DmG(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker)) return HAM_IGNORED;
	
	if(!ma_klase[idattacker]) return HAM_IGNORED;
	
	if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_AK47 && damagebits & DMG_BULLET)
        {
                SetHamParamFloat(4, damage+(cod_get_user_intelligence(id, 1, 1, 1)*0.2))
                return HAM_HANDLED
        }
	
	return HAM_IGNORED;
}

To będzie poprawnie, tylko nie wiem czy nie ma literówek, ale to łatwo poprawić.

http://scr.hu/7m7a/hhbvr

ps. czemu:

get_user_weapon(idattacker) == CSW_AK47

?

ps.2.

SetHamParamFloat(4, damage+(cod_get_user_intelligence(id, 1, 1, 1)*0.2))

spójrz na opis.

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 17.07.2015

Ajć, wziąłem stary kod...

 

To czemu ktoś w int dał mnożnik 0.2? oO

public DmG(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker)) return HAM_IGNORED;
	
	if(!ma_klase[idattacker]) return HAM_IGNORED;
	
	if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_MP5NAVY && damagebits & DMG_BULLET)
        {
                SetHamParamFloat(4, damage+cod_get_user_intelligence(id, 1, 1, 1)
                return HAM_HANDLED
        }
	
	return HAM_IGNORED;
}

My się tu poprawiamy, a autor nic xD

Odpowiedz

  • +
  • -
NieWiemMamMac@ - zdjęcie NieWiemMamMac@ 17.07.2015


To czemu ktoś w int dał mnożnik 0.2? oO

Mnożnik mogłeś zostawić, chodziło mi o brak 10 DMG:)

Przy użyciu cod_inflict_damage pokazuje broń z której zabito, nie ma czaszki - bynajmniej u mnie :)

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 17.07.2015

Czaszka bedzie gdy strzelisz do gracza ktory ma 20hp, broń zabierze mu np. 15, a dodatkowe dmg zrobi reszte

public DmG(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker)) return HAM_IGNORED;
	
	if(!ma_klase[idattacker]) return HAM_IGNORED;
	
	if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_MP5NAVY && damagebits & DMG_BULLET)
        {
                SetHamParamFloat(4, damage+10+cod_get_user_intelligence(idattacker, 1, 1, 1))
                return HAM_HANDLED
        }
	
	return HAM_IGNORED;
}

Sprawdź to... Chyba ostateczna wersja

Odpowiedz

  • +
  • -
SabberZ - zdjęcie SabberZ 17.07.2015

Czaszka bedzie gdy strzelisz do gracza ktory ma 20hp, broń zabierze mu np. 15, a dodatkowe dmg zrobi reszte

public DmG(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker)) return HAM_IGNORED;
	
	if(!ma_klase[idattacker]) return HAM_IGNORED;
	
	if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_MP5NAVY && damagebits & DMG_BULLET)
        {
                SetHamParamFloat(4, damage+10+cod_get_user_intelligence(id, 1, 1, 1)
                return HAM_HANDLED
        }
	
	return HAM_IGNORED;
}

Sprawdź to... Chyba ostateczna wersja

 

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team

codclass_amadeusz.sma(1) : error 013: no entry point (no public functions)

1 Error.
Could not locate output file codclass_amadeusz.amxx (compile failed).

 

Coś takiego nie czaje o co biega
 

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 17.07.2015

Ten kod do podałem masz podmienić, a nie skonpilować go
Odpowiedz

  • +
  • -
SabberZ - zdjęcie SabberZ 17.07.2015

Ten kod do podałem masz podmienić, a nie skonpilować go

 

ale zeby miec plik amxx to trzeba cale sma skompilowac a to co dales podmienilem i ten blad przy kompilacji byl
 

Odpowiedz

  • +
  • -
Najlepsza odpowiedź Rivit - zdjęcie Rivit 17.07.2015

Sprawdz oO

Załączone pliki

Odpowiedz