←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Klasa - Zawodowiec

  • +
  • -
Eustachy8 - zdjęcie Eustachy8 07.02.2012

Witam!


http://img851.images...8930/infovj.png

Klasa u której wraz z inteligencją, zwiększa się szybkość strzelania
Aktualnie, co 4 punkty int szybkość zwiększa się od 0.01 (standardowa szybkość to 1.00)
aby to zmienić trzeba poprawić tutaj:
if (1.0-(cod_get_user_intelligence(id)/400.0) <= 0)

i tutaj

fSpeedMultiplier = 1.0-(cod_get_user_intelligence(id)/400.0);

a dokładniej liczbę 400 (jak ustawimy 500, będzie co 5 punktów 0.01, a jak 300 to co 3 itd.)

Załączone pliki

Odpowiedz

  • +
  • -
dziobax - zdjęcie dziobax 07.02.2012

wrzuce na serwer i sprawdze ją
Odpowiedz

  • +
  • -
Intex - zdjęcie Intex 08.02.2012

Spoko klasa xD

Tu macie w perku:

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
	   
new const perk_name[] = "Zawodowiec";
new const perk_desc[] = "Strzelasz szybciej z broni. 2 int = 0.01 szybkosci";
   
new ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "QTM_Peyote")
cod_register_perk(perk_name, perk_desc);
  
register_event("CurWeapon","eventCurWeapon", "b");
}
public cod_perk_enabled(id)
{
ma_perk[id] = true;
}
public cod_perk_disabled(id)
{
ma_perk[id] = false;
}
public eventCurWeapon(id)
{
	    if(!ma_perk[id])
			    return PLUGIN_HANDLED;
	   
	    new iWeapon = get_user_weapon(id);
	    new iEnt;

	   
	    static Float:fSpeedMultiplier;
  if (1.0-(cod_get_user_intelligence(id)/400.0) <= 0)
   fSpeedMultiplier = 0.01
  else
	 
   fSpeedMultiplier = 1.0-(cod_get_user_intelligence(id)/400.0);
					 
  if(iWeapon == CSW_M4A1)
	    {
			    iEnt = fm_find_ent_by_owner(-1, "weapon_m4a1", id)
			    set_pdata_float( iEnt, 46, ( get_pdata_float(iEnt, 46, 4) * fSpeedMultiplier), 4 );
			    set_pdata_float( iEnt, 47, ( get_pdata_float(iEnt, 47, 4) * fSpeedMultiplier), 4 );
	    }
	    return PLUGIN_HANDLED;
}
Odpowiedz

  • +
  • -
robaloss - zdjęcie robaloss 08.02.2012

fajna klasa +
Odpowiedz

  • +
  • -
fbang - zdjęcie fbang 08.02.2012

Spoko klasa xD

Tu macie w perku:

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
	  
new const perk_name[] = "Zawodowiec";
new const perk_desc[] = "Strzelasz szybciej z broni. 2 int = 0.01 szybkosci";
  
new ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "QTM_Peyote")
cod_register_perk(perk_name, perk_desc);
  
register_event("CurWeapon","eventCurWeapon", "b");
}
public cod_perk_enabled(id)
{
ma_perk[id] = true;
}
public cod_perk_disabled(id)
{
ma_perk[id] = false;
}
public eventCurWeapon(id)
{
		if(!ma_perk[id])
				return PLUGIN_HANDLED;
	  
		new iWeapon = get_user_weapon(id);
		new iEnt;

	  
		static Float:fSpeedMultiplier;
  if (1.0-(cod_get_user_intelligence(id)/400.0) <= 0)
   fSpeedMultiplier = 0.01
  else
	
   fSpeedMultiplier = 1.0-(cod_get_user_intelligence(id)/400.0);
					
  if(iWeapon == CSW_M4A1)
		{
				iEnt = fm_find_ent_by_owner(-1, "weapon_m4a1", id)
				set_pdata_float( iEnt, 46, ( get_pdata_float(iEnt, 46, 4) * fSpeedMultiplier), 4 );
				set_pdata_float( iEnt, 47, ( get_pdata_float(iEnt, 47, 4) * fSpeedMultiplier), 4 );
		}
		return PLUGIN_HANDLED;
}

a gdzie give i take weapon??

da sie zrobic, zeby dotyczylo to wszystkich broni?
Odpowiedz

  • +
  • -
Eustachy8 - zdjęcie Eustachy8 08.02.2012

Intex zrobiłeś to źle, dalej co 4 int 0.01 się zmniejsza, i działa tylko do m4, którego perk nie dodaje ;D

a po drugie, jak już przerabiasz moją klasę, to może wpisuj odpowiedniego autora ;>


register_plugin(perk_name, "1.0", "QTM_Peyote")
to perk, ltóry działa w każdej broni:
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
		  
new const perk_name[] = "Zawodowiec";
new const perk_desc[] = "Strzelasz szybciej z broni. 4 int = 0.01 szybkosci";
  
new ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "Eustachy")
cod_register_perk(perk_name, perk_desc);
  
register_event("CurWeapon","eventCurWeapon", "b");
}
public cod_perk_enabled(id)
{
ma_perk[id] = true;
}
public cod_perk_disabled(id)
{
ma_perk[id] = false;
}
public eventCurWeapon(id)
{
			if(!ma_perk[id])
							return PLUGIN_HANDLED;
		 	  
			static Float:fSpeedMultiplier;
  if (1.0-(cod_get_user_intelligence(id)/400.0) <= 0)
   fSpeedMultiplier = 0.01
  else
		
   fSpeedMultiplier = 1.0-(cod_get_user_intelligence(id)/400.0);
				  
   set_pdata_float( iEnt, 46, ( get_pdata_float(iEnt, 46, 4) * fSpeedMultiplier), 4 );
   set_pdata_float( iEnt, 47, ( get_pdata_float(iEnt, 47, 4) * fSpeedMultiplier), 4 );
		  
return PLUGIN_HANDLED;
}

Użytkownik Eustachy8 edytował ten post 08.02.2012 16:48
Odpowiedz

  • +
  • -
fbang - zdjęcie fbang 08.02.2012

Intex zrobiłeś to źle, dalej co 4 int 0.01 się zmniejsza, i działa tylko do m4, którego perk nie dodaje ;D

a po drugie, jak już przerabiasz moją klasę, to może wpisuj odpowiedniego autora ;>


register_plugin(perk_name, "1.0", "QTM_Peyote")
to perk, ltóry działa w każdej broni:

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
		  
new const perk_name[] = "Zawodowiec";
new const perk_desc[] = "Strzelasz szybciej z broni. 4 int = 0.01 szybkosci";
  
new ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "Eustachy")
cod_register_perk(perk_name, perk_desc);
  
register_event("CurWeapon","eventCurWeapon", "b");
}
public cod_perk_enabled(id)
{
ma_perk[id] = true;
}
public cod_perk_disabled(id)
{
ma_perk[id] = false;
}
public eventCurWeapon(id)
{
			if(!ma_perk[id])
							return PLUGIN_HANDLED;
		 	  
			static Float:fSpeedMultiplier;
  if (1.0-(cod_get_user_intelligence(id)/400.0) <= 0)
   fSpeedMultiplier = 0.01
  else
		
   fSpeedMultiplier = 1.0-(cod_get_user_intelligence(id)/400.0);
				  
   set_pdata_float( iEnt, 46, ( get_pdata_float(iEnt, 46, 4) * fSpeedMultiplier), 4 );
   set_pdata_float( iEnt, 47, ( get_pdata_float(iEnt, 47, 4) * fSpeedMultiplier), 4 );
		  
return PLUGIN_HANDLED;
}

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

Error: Undefined symbol "iEnt" on line 42
Warning: Expression has no effect on line 42
Error: Undefined symbol "iEnt" on line 42
Error: Invalid expression, assumed zero on line 42
Error: Too many error messages on one line on line 42

Compilation aborted.
4 Errors.
Could not locate output file C:\Users\y\Desktop\Untitled.amx (compile failed).
Odpowiedz

  • +
  • -
Eustachy8 - zdjęcie Eustachy8 08.02.2012

eeee... zapomniałem o tym, ten problem wymaga dłuższego przemyślenia, a aktualnie nie mam czasu. Więc na początek łatwiej by było zrobić perk, który dodaje m4, jak będę miał czas przerobie by działało pod każdą broń


#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
		  
new const perk_name[] = "Zawodowiec";
new const perk_desc[] = "Strzelasz szybciej z broni. 4 int = 0.01 szybkosci";
  
new ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "Eustachy")
cod_register_perk(perk_name, perk_desc);
  
register_event("CurWeapon","eventCurWeapon", "b");
}
public cod_perk_enabled(id)
{
ma_perk[id] = true;
cod_give_weapon(id, CSW_M4A1);
}
public cod_perk_disabled(id)
{
ma_perk[id] = false;
cod_take_weapon(id, CSW_M4A1);
}
public eventCurWeapon(id)
{
				if(!ma_perk[id])
								return PLUGIN_HANDLED;
		  
				new iWeapon = get_user_weapon(id);
				new iEnt;

		  
				static Float:fSpeedMultiplier;
  if (1.0-(cod_get_user_intelligence(id)/400.0) <= 0)
   fSpeedMultiplier = 0.01
  else
		
   fSpeedMultiplier = 1.0-(cod_get_user_intelligence(id)/400.0);
										
  if(iWeapon == CSW_M4A1)
				{
								iEnt = fm_find_ent_by_owner(-1, "weapon_m4a1", id)
								set_pdata_float( iEnt, 46, ( get_pdata_float(iEnt, 46, 4) * fSpeedMultiplier), 4 );
								set_pdata_float( iEnt, 47, ( get_pdata_float(iEnt, 47, 4) * fSpeedMultiplier), 4 );
				}
				return PLUGIN_HANDLED;
}

teraz powinno działać
Użytkownik Eustachy8 edytował ten post 08.02.2012 17:39
Odpowiedz

  • +
  • -
robaloss - zdjęcie robaloss 08.02.2012

bo zabiciu crash serwa sorry ale w logach nic tylko w konsoli to



Uploading dump (in-process) [proxy']

/tmp/dumps/crash_20111124172504_1.dmp

success = no

error: Failed to open/read local data from file/application

Segmentation fault.


pojawia sie to tylko wtedy gdy ktos zabije gracza z ta klasa
Odpowiedz

  • +
  • -
Eustachy8 - zdjęcie Eustachy8 08.02.2012

nie mam pojęcia, u mnie na serwerze klasa hulała 2 miesiące i ani razu takie coś nie wyskoczyło
Odpowiedz

  • +
  • -
robaloss - zdjęcie robaloss 08.02.2012

zmienilem binarki zobacze tera
masz amx 1.8.2 czy 1.8,1?
Odpowiedz

  • +
  • -
Eustachy8 - zdjęcie Eustachy8 08.02.2012

1.8.2 albo i 1.8.3 nawet
nie jestem do końca pewny, bo nie ja stawiałem serwer
Odpowiedz

  • +
  • -
Wetris - zdjęcie Wetris 29.10.2013

Niestety ,jeżeli zagramy tą klasą jedną rundę i zmienimy klasę na inną to na tej nowej też mamy szybkie strzelanie :P może ktoś potrafi to naprawić ? Klasa jest Zaje..... ,ale buguje.

Odpowiedz