←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Błąd kompilacji klasy

Locked

  • +
  • -
Ficu's Photo Ficu 02.07.2011

Mam taką klasę

#include <amxmodx>
#include <hamsandwich>
#include <codmod>
#include <engine>
#include <ColorChat>
#include <fakemeta>

#define DMG_BULLET (1<<1)

new bool:ma_klase[33];

new const nazwa[] = "Niewidzialny (Zasluzony)";
new const opis[] = "Niewidzialny, klasa tylko dla zasluzonych, natychmiastowe zabicie z noza, scout";
new const bronie = 1<<CSW_M4A1 | 1<<CSW_DEAGLE | 1<<CSW_SCOUT | 1<<DEFUSE KIT | 1<<SHIELD | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE;
new const zdrowie = 100;
new const kondycja = 100;
new const inteligencja = 100;
new const wytrzymalosc = 10;

new bool:ma_klase[33]; **

public plugin_init()
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

register_event("CurWeapon","CurWeapon","be", "1=1");
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");

public cod_class_enabled(id)
{
ColorChat(id, RED, "[Niewidzialny] Nie masz uprawnien, aby uzywac tej klasy. (wiecej info na forum www.CSWolaWest.pl)"); //Gdy gracz nie ma flagi wyświetli mu komunikat
if(!(get_user_flags(id) & ADMIN_LEVEL_G)) //FLAGA
{
ColorChat(id, RED, "[Niewidzialny] Nie masz uprawnien, aby uzywac tej klasy. (wiecej info na forum www.CSWolaWest.pl)") //Znowu info ze przykładowa klasa jest PREMIUM
return COD_STOP;
}
ma_klase[id] = true;
return COD_CONTINUE;
}
**
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 1);
}

public cod_class_disabled(id)
{
ma_klase[id] = false; **
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}
public CurWeapon(id)
{
if(!is_user_connected(id))
return;

if(!ma_klase[id])
return;

set_user_clip(id, 2);
}


stock set_user_clip(id, ammo)
{
new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
get_weaponname(weapon, weaponname, 31);
while ((weaponid = engfunc(EngFunc_FindEntityByString, weaponid, "classname", weaponname)) != 0)
if (pev(weaponid, pev_owner) == id) {
set_pdata_int(weaponid, 51, ammo, 4);
return weaponid;
}
return 0;
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;

if(!ma_klase[idattacker])
return HAM_IGNORED;

if(damagebits & DMG_BULLET)
{
new weapon = get_user_weapon(idattacker);

if(weapon == CSW_SCOUT && damage > 20.0)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);

}

return HAM_IGNORED;
}


Bardzo proszę kogoś o skompilowanie tej klasy oraz napisanie w poście co było źle zrobione ;) .sma w załączniku.

Attached Files

Quote

  • +
  • -
BliBs_Pl's Photo BliBs_Pl 02.07.2011

Dużo funkcji dałeś niepotrzebnie, po prostu nie wiem skąd to kopiowałeś ale nie bierz się za to za co nie masz pojęcia.
Dałeś dwa razy:
new bool:ma_klase[33];
Źle klamry dawałeś.
Jedno mam pytanie bo w opisie jest:

natychmiastowe zabicie z noza, scout

Ja zrobiłem że 1/1 z kosy ma, czy ze scouta też ma mieć 1/1 ?

Attached Files

Quote

  • +
  • -
Ficu's Photo Ficu 02.07.2011

Co do tej klasy robiłem ją na szybko, nie potrzebnie :) następnym razem się przyje :) Dzięki za poprawki ;P

edit:
Nadal nie mogę skompilować wyskakują takie błędy

codclass_niewidzialny.sma(22) : error 021: symbol already defined: "register_event"
codclass_niewidzialny.sma(24) : error 021: symbol already defined: "RegisterHam"

.sma w załączniku ;)

Attached Files


Edited by Ficu, 02.07.2011 22:00.
Quote

  • +
  • -
BliBs_Pl's Photo BliBs_Pl 02.07.2011

Masz, niestety nie można dać tarczy i deffa.

Attached Files

Quote

Masło's Photo Masło 02.07.2011

Masz, niestety nie można dać tarczy i deffa.


Niestety <-- to prawda - za dużo broni dałeś klasie !
Quote

kamioool's Photo kamioool 02.07.2011

#include <amxmodx>
#include <hamsandwich>
#include <codmod>
#include <engine>
#include <colorchat>
#include <fun>

#define DMG_BULLET (1<<1)

new bool:ma_klase[33];

new const nazwa[] = "Niewidzialny (Zasluzony)";
new const opis[] = "Niewidzialny, klasa tylko dla zasluzonych, natychmiastowe zabicie z noza, scout";
new const bronie = 1<<CSW_M4A1 | 1<<CSW_DEAGLE | 1<<CSW_SCOUT | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE;
new const zdrowie = 100;
new const kondycja = 100;
new const inteligencja = 100;
new const wytrzymalosc = 10;

public plugin_init()
{
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("CurWeapon","CurWeapon","be", "1=1");
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_G))
{
ColorChat(id, RED, "[Niewidzialny] Nie masz uprawnien, aby uzywac tej klasy. (wiecej info na forum www.CSWolaWest.pl)") //Napis ktory wyswietli sie jak gracz nie ma flagi
return COD_STOP;
}
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 1);
ma_klase[id] = true;
give_item(id, "weapon_shield")
give_item(id, "item_thighpack")
return COD_CONTINUE;
}

public cod_class_disabled(id)
{
ma_klase[id] = false;
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
strip_user_weapons(id);
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;

if(!ma_klase[idattacker])
return HAM_IGNORED;

if(damagebits & DMG_BULLET)
{
new weapon = get_user_weapon(idattacker);

if(weapon == CSW_KNIFE && damage > 20.0)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}

return HAM_IGNORED;
}


Sprawdź, może zadziała DefuseKit i Shield :>
Quote

  • +
  • -
Ficu's Photo Ficu 02.07.2011

zaraz sprawdze :)

edit: skompilowało się poprawnie zaraz zobaczę czy działa :)
Edited by Ficu, 02.07.2011 22:21.
Quote

Masło's Photo Masło 02.07.2011


        give_item(id, "weapon_shield")  
        give_item(id, "item_thighpack") 


Może zadziała ???:( :mellow:
Quote

  • +
  • -
Ficu's Photo Ficu 02.07.2011

Nie dodaje ani defa ani tarczy :)
Quote

Masło's Photo Masło 02.07.2011

Tak myślałem :)
Quote

kamioool's Photo kamioool 02.07.2011

Jeśli chodzi o tarcze to potrzebna będzie mała modyfikacja cod ponieważ blokuje on tarcze. Jeśli jest to dla Ciebie bardzo ważne to jutro dam Ci instrukcje jak rozwiązać problem, i od razu rozwiązanie z defusekit.

Tylko daj znać :>
Edited by kamioool, 02.07.2011 23:00.
Quote

  • +
  • -
Jak się nazwać's Photo Jak się nazwać 02.07.2011

#include <amxmodx>
#include <hamsandwich>
#include <codmod>
#include <engine>
#include <colorchat>
#include <fun>
#include <fakemeta>

#define DMG_BULLET (1<<1)

new bool:ma_klase[33];

new const nazwa[] = "Niewidzialny (Zasluzony)";
new const opis[] = "Niewidzialny, klasa tylko dla zasluzonych, natychmiastowe zabicie z noza, scout";
new const bronie = 1<<CSW_M4A1 | 1<<CSW_DEAGLE | 1<<CSW_SCOUT | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE;
new const zdrowie = 100;
new const kondycja = 100;
new const inteligencja = 100;
new const wytrzymalosc = 10;

public plugin_init() 
        {
        cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
        register_event("CurWeapon","CurWeapon","be", "1=1");
        RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
{
        if(!(get_user_flags(id) & ADMIN_LEVEL_G))
        {
                ColorChat(id, RED, "[Niewidzialny] Nie masz uprawnien, aby uzywac tej klasy. (wiecej info na forum www.CSWolaWest.pl)") //Napis ktory wyswietli sie jak gracz nie ma flagi
                return COD_STOP;
        }
        set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 1);
        ma_klase[id] = true;
        cod_set_user_shield(id, 1)
        fm_give_item(id, "item_thighpack");
        return COD_CONTINUE;
}
        
public cod_class_disabled(id)
{
        ma_klase[id] = false;
        set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
        strip_user_weapons(id);
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
        if(!is_user_connected(idattacker))
                return HAM_IGNORED; 
        
        if(!ma_klase[idattacker])
                return HAM_IGNORED;
        
        if(damagebits & DMG_BULLET)
        {
                new weapon = get_user_weapon(idattacker);
                
                if(weapon == CSW_KNIFE && damage > 20.0) 
                        cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);    
        }
        
        return HAM_IGNORED;
}

To na bank zadziała.
Mam nadzięję że pomogłem.
Quote

  • +
  • -
Ficu's Photo Ficu 02.07.2011

Błąd :)

codclass_niewidzialny.sma(37) : error 017: undefined symbol "fm_give_item"

Quote

  • +
  • -
Ficu's Photo Ficu 02.07.2011

kamioool, na tarczy mi nie zależy. Tarcza miała być tylko 4fun :) bardziej mi zależy na defie :)
Quote

Masło's Photo Masło 02.07.2011

1 wyjście:
Wywal 1 broń = 1 Broń dodać !

____________________________

1 = 1 !
np. Smoke - po co ? = Defuse !
Quote

  • +
  • -
BliBs_Pl's Photo BliBs_Pl 03.07.2011

Po prostu nie możesz dać deffa i shielda tak jak mówiłem. Mój kod był dobry.
A ty masło jak się nie znasz to nic nie mów bo nie chodziło o to że za dużo broni ma klasa tylko o to że nie można posługiwać się ani CSW_SHIELD ani CSW_DEFUSEKIT bo takie coś nie istnieje. Potem spamujesz wiadomościami typu tak myślałem, powtarzasz kod który dodał poprzednik i piszesz "Może zadziała" i potem post wieńczący twoją wysoką bystrość:

1 wyjście:
Wywal 1 broń = 1 Broń dodać !

____________________________

1 = 1 !
np. Smoke - po co ? = Defuse !

Jakby to chodziło o miejsce. Najpierw trochę ogarnij pawna a dopiero potem pisz. Widać że ostro spamujesz jak się nie znasz i 35 postów w jeden dzień piszesz.
Quote

kamioool's Photo kamioool 03.07.2011

#include <amxmodx>
#include <hamsandwich>
#include <codmod>
#include <engine>
#include <colorchat>
#include <fun>

#define DMG_BULLET (1<<1)

new bool:ma_klase[33];

new const nazwa[] = "Niewidzialny (Zasluzony)";
new const opis[] = "Niewidzialny, klasa tylko dla zasluzonych, natychmiastowe zabicie z noza, scout";
new const bronie = 1<<CSW_M4A1 | 1<<CSW_DEAGLE | 1<<CSW_SCOUT | 1<<CSW_FLASHBANG | 1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE;
new const zdrowie = 100;
new const kondycja = 100;
new const inteligencja = 100;
new const wytrzymalosc = 10;

public plugin_init()
{
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_Spawn, "player", "Resp", 1);
register_event("CurWeapon","CurWeapon","be", "1=1");
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_G))
{
ColorChat(id, RED, "[Niewidzialny] Nie masz uprawnien, aby uzywac tej klasy. (wiecej info na forum www.CSWolaWest.pl)") //Napis ktory wyswietli sie jak gracz nie ma flagi
return COD_STOP;
}
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 1);
ma_klase[id] = true;
Resp(id);
return COD_CONTINUE;
}

public cod_class_disabled(id)
{
ma_klase[id] = false;
set_rendering(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;

if(!ma_klase[idattacker])
return HAM_IGNORED;

if(damagebits & DMG_BULLET)
{
new weapon = get_user_weapon(idattacker);

if(weapon == CSW_KNIFE && damage > 20.0)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}

return HAM_IGNORED;
}

public Resp(id)
{
if(ma_klase[id])
{
give_item(id, "item_thighpack");
}
}



DefuseKit działa, sprawdzałem :>
Edited by kamioool, 03.07.2011 11:06.
Quote

  • +
  • -
Ficu's Photo Ficu 03.07.2011

Działa dzięki ! :D
Quote
Locked