←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Cod klasa duch

Zablokowany

  • +
  • -
korthagor - zdjęcie korthagor 27.04.2011

Witam! Zrobiłem sobie klasę [CoD nowy] duch, która ma tylko nóż i noclipa na początku każdej rundy... Ale noclipa ma tylko po wybraniu, a w następnej rundzie już nie. Może mi ktoś zrobić tą klasę?
Odpowiedz

  • +
  • -
Nomaf - zdjęcie Nomaf 27.04.2011

Gdzie tego noclipa dodajesz? W jakiej funkcji?
Spróbuj do cod_class_enabled (a jak jej nie masz to dodaj), a w cod_class_disabled wyłączenie noclipa.
Odpowiedz

  • +
  • -
korthagor - zdjęcie korthagor 27.04.2011

No właśnie tak jest. W cod_class_enabled mam wpisane set_user_noclip(id, 1) a w cod_class_disabled mam set_user_noclip(id, 0). I w następnej rundzie po wybraniu klasy noclipa nie ma. Wiesz jak to zrobić?
Odpowiedz

csfraghunt COD - zdjęcie csfraghunt COD 27.04.2011

Daj sma to coś sproboje wymyśleć
Odpowiedz

  • +
  • -
Grandi - zdjęcie Grandi 28.04.2011

Do:
public plugin_init()   

Dodaj:
  	register_event("ResetHUD", "ResetHUD", "abe");

A następnie niżej dodaj:
public ResetHUD(id)  	
set_user_noclip(id, 1);

Użytkownik Grandi edytował ten post 28.04.2011 09:51
Odpowiedz

csfraghunt COD - zdjęcie csfraghunt COD 28.04.2011

To samo chciałem mu zrobić w sma Grandi. xD
Odpowiedz

  • +
  • -
korthagor - zdjęcie korthagor 28.04.2011

-.-" Teraz jest noclip ale od początku jak wejdę na serwer i na każdej klasie. A nie da się zrobić tak, że noclip na tej klasie włącza się i wyłącza po wciśnięciu E?

Dam *.sma jakby co

#include <amxmodx>
#include <codmod>
#include <fakemeta>
#include <fun>

new const nazwa[] = "Duch";
new const opis[] = "Ma noclipa i lata tylko z nozem. Ma wiecej hp.";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 100;
new const kondycja = 0;
new const inteligencja = 10;
new const wytrzymalosc = 15;

new bool:ma_klase[33];


public plugin_init() 
{      
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	register_event("ResetHUD", "ResetHUD", "abe");
	register_event("CurWeapon","CurWeapon","be", "1=1");
}

public cod_class_enabled(id)
{
	ma_klase[id]=true;
	set_user_noclip(id, 1);
}

public cod_class_disabled(id)
{
	ma_klase[id]=false;
	set_user_noclip(id, 0);
}

public ResetHUD(id)     
	set_user_noclip(id, 1);

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

  • +
  • -
Grandi - zdjęcie Grandi 28.04.2011

Ile sekund ma trwać no clip? I czy zrobić, żeby raz na rundę można było użyć?
Odpowiedz

  • +
  • -
korthagor - zdjęcie korthagor 28.04.2011

noclip na tej klasie włącza się i wyłącza po wciśnięciu E


Prosiłbym coś takiego. :)
Odpowiedz

Neazo - zdjęcie Neazo 28.04.2011

Bez sensu, jak ktoś włączy to już nie wyłączy, i nie będzie gry ...
Odpowiedz

  • +
  • -
Svizz - zdjęcie Svizz 28.04.2011

Na samej gorze:
#include <hamsandwich>

W plugin_init:
RegisterHam(Ham_Spawn, "player", "Respawn", 1);

Na samym dole to:
public Respawn(id)
{
  if(ma_klase[id])
    set_user_noclip(id,1);
  else
    set_user_noclip(id,0);
}

W cod_class_enabled i disabled zostawiasz to co teraz masz.
Odpowiedz

  • +
  • -
korthagor - zdjęcie korthagor 28.04.2011

Neazo, właśnie ja chce żeby mógł to włączyć i wyłączyć przyciskiem E ...

Dobra Svizz masz +. A pytanie czy możesz zrobić właśnie że noclipa włącza się E i wyłącza się E?
Użytkownik korthagor edytował ten post 28.04.2011 19:00
Odpowiedz

  • +
  • -
Svizz - zdjęcie Svizz 29.04.2011

Hmmm... nigdy tak nie robiłem i nie mam pojęcia, czy to będzie działać (ściągnąłem ze starego coda ;P ):

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

new const nazwa[] = "Duch";
new const opis[] = "Ma noclipa i lata tylko z nozem. Ma wiecej hp.";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 100;
new const kondycja = 0;
new const inteligencja = 10;
new const wytrzymalosc = 15;

new bool:ma_klase[33];
new bool:ma_noclip[33];


public plugin_init() 
{      
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	register_event("CurWeapon","CurWeapon","be", "1=1");
        register_forward(FM_EmitSound, "UzylE");
}

public cod_class_enabled(id)
{
	ma_klase[id]=true;
}

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

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");
}
 	



public UzylE(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch ) 
{
	if(equal(szSound, "common/wpn_denyselect.wav"))
	{
                if(ma_noclip[id] == false)
                    ma_noclip[id]=true

                if(ma_noclip[id] == true)
                    ma_noclip[id]=false

                DajNoclip(id);
                return FMRES_SUPERCEDE;
	}
	
	return FMRES_IGNORED;
}

public DajNoclip(id)
{
	if(ma_noclip[id] == true)
           set_user_noclip(id,1);
        else {
           ma_noclip[id]=false;
           set_user_noclip(id,0);
        }
		
	return PLUGIN_HANDLED;
}

Powinno działać :)

Edit: Drobna poprawka.
Użytkownik Svizz edytował ten post 30.04.2011 07:10
Odpowiedz

  • +
  • -
korthagor - zdjęcie korthagor 02.05.2011

Teraz to nie ma wcale noclipa ;/
Odpowiedz

  • +
  • -
Nomaf - zdjęcie Nomaf 02.05.2011

To zamiast nazwy funkcji UzylE to wpisz cod_class_skill_used.
Wtedy powinno działać.

A to usuń: register_forward(FM_EmitSound, "UzylE");
Odpowiedz
Zablokowany