←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Problem z niewidzialnością w klasie 'N...

Zablokowany

  • +
  • -
Vanquish - zdjęcie Vanquish 27.02.2011

Tak jak w temacie. Niewidzialność raz działa a raz nie.
Oto moja klasa:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <engine>
#include <cstrike>
#include <codmod>
#include <hamsandwich>
#include <ColorChat>
#include <fun>

#define DMG_BULLET (1<<1)


new bool:ma_klase[33];

new const nazwa[] = "Nozownik [PREMIUM]";
new const opis[] = "Natychmiastowe zabicie z noza(PPM)+niewidzialnosc";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 50;
new const kondycja = 76;
new const inteligencja = 10;
new const wytrzymalosc = 3;

public plugin_init() 
{
        register_plugin(nazwa, "1.0", "QTM_Peyote");
        
        cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
        
        RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
        register_event("CurWeapon","CurWeapon","be", "1=1");
}

public cod_class_enabled(id)
{
        if(!(get_user_flags(id) & ADMIN_LEVEL_H)) 
       {
        ColorChat(id, RED, "[Nozownik] Nie masz uprawnien, aby korzystac z tej klasy. "); 
        return COD_STOP;
}
        
                ColorChat(id, RED, "[Nozownik] Klasa stworzona przez aXe") 
                ma_klase[id] = true;
                return COD_CONTINUE;
}
public cod_class_disabled(id)
        ma_klase[id] = false;

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

public CurWeapon(id)
{
        if(!ma_klase[id])
                return PLUGIN_CONTINUE; 
        
        if(get_user_weapon(id) == CSW_KNIFE)
                set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 5);
        else
                set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);

       if(ma_klase[id] && read_data(2) != CSW_KNIFE)
        {
                        set_task(0.1 ,"ma" ,id)
        }
}

public ma(id)
{
        strip_user_weapons(id);
        give_item(id, "weapon_knife");
}

Czy da się coś z tym zrobić? :)
Odpowiedz

  • +
  • -
Norbert - zdjęcie Norbert 27.02.2011

Skoro jest to klasa tylko z nożem (tak zakładam po tym kodzie) to można to zrobić tak:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <engine>
#include <cstrike>
#include <codmod>
#include <hamsandwich>
#include <ColorChat>
#include <fun>

#define DMG_BULLET (1<<1)


new bool:ma_klase[33];

new const nazwa[] = "Nozownik [PREMIUM]";
new const opis[] = "Natychmiastowe zabicie z noza(PPM)+niewidzialnosc";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 50;
new const kondycja = 76;
new const inteligencja = 10;
new const wytrzymalosc = 3;

public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");

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

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

public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
ColorChat(id, RED, "[Nozownik] Nie masz uprawnien, aby korzystac z tej klasy. ");
return COD_STOP;
}

ColorChat(id, RED, "[Nozownik] Klasa stworzona przez aXe")
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 5);
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
ma_klase[id] = false;

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

if(!ma_klase[idattacker])
return HAM_IGNORED;

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

return HAM_IGNORED;
}


public ma(id)
{
strip_user_weapons(id);
give_item(id, "weapon_knife");
}


Sam tak robię i nie mam problemów. Kiedyś zrobiłem jeszcze niewidzialność tak jak CurWeapon tylko użyłem innego public i też nie było problemów, wszystko działało jak należy i było to dla wielu broni w klasie, a niewidzialność na jedną. Tylko zapomniałem nazwy public. A i CurWeapon mi nigdy nie działało, a robiłem wszystko jak należy dlatego skorzystałem z tego innego ;). Jak nazwę sobie przypomnę to wam podrzuce to powiecie czy to bezpieczne :P
Odpowiedz

  • +
  • -
Vanquish - zdjęcie Vanquish 27.02.2011

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

codclass_nozownik.sma(42) : warning 217: loose indentation
codclass_nozownik.sma(49) : error 010: invalid function or declaration

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

  • +
  • -
Goliath - zdjęcie Goliath 28.02.2011

Spoiler

Użytkownik Goliath edytował ten post 28.02.2011 11:41
Odpowiedz

  • +
  • -
Vanquish - zdjęcie Vanquish 28.02.2011

Wgrałem ale niewidzialność działa przez 5 sekund a potem już widać ;/
Odpowiedz

  • +
  • -
Kapucha112 - zdjęcie Kapucha112 28.02.2011

Nie jestem pewien czy

set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 5);

czy może?

set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 0);

Znawcą nie jestem ale na zombie niewidzialność tak ustawiałem i działało.
Użytkownik Kapucha112 edytował ten post 28.02.2011 16:13
Odpowiedz

  • +
  • -
Vanquish - zdjęcie Vanquish 28.02.2011

Ustawiłem tak ale teraz działa tylko przed pierwszą rundę potem znowu widać...
Odpowiedz

  • +
  • -
Norbert - zdjęcie Norbert 12.03.2011

/* Plugin generated by AMXX-Studio */

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

#define DMG_BULLET (1<<1)


new bool:ma_klase[33];

new const nazwa[] = "Nozownik [PREMIUM]";
new const opis[] = "Natychmiastowe zabicie z noza(PPM)+niewidzialnosc";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 50;
new const kondycja = 76;
new const inteligencja = 10;
new const wytrzymalosc = 3;

public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, "SS");

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

public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
ColorChat(id, RED, "[Nozownik] Nie masz uprawnien, aby korzystac z tej klasy. ");
return COD_STOP;
}

ColorChat(id, RED, "[Nozownik] Klasa stworzona przez aXe")
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 5);
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
{
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
ma_klase[id] = false;
}

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

if(!ma_klase[idattacker])
return HAM_IGNORED;

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

return HAM_IGNORED;
}

public CurWeapon(id)
{

if(ma_klase[id] && read_data(2) != CSW_KNIFE)
{
set_task(0.1 ,"ma" ,id)
}
}

public ma(id)
{
strip_user_weapons(id);
give_item(id, "weapon_knife");
}
Odpowiedz
Zablokowany