←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
[ROZWIĄZANE] Ograniczenie umiejętności: sz...

Locked

  • +
  • -
protypek's Photo protypek 07.06.2015

Witam, próbowałem przerobić umiejętność szybkostrzelność tak żeby nie obejmowała kosy, awp, scouta. Ale nie dałem rady.

 

Proszę o pomoc.

Oczywiście daje +.

Attached Files

Quote

  • +
  • -
Rivit's Photo Rivit 09.06.2015

Sprawdź, nie próbowałem kompilować...

 

Attached Files

Quote

  • +
  • -
protypek's Photo protypek 13.06.2015

 
L 06/13/2015 - 17:13:27: [AMXX] Run time error 10 (plugin "rpgx_upgrade_speedshoot+.amxx") (native "get_weaponname") - debug not enabled!

L 06/13/2015 - 17:13:27: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes). 

 

 

 

 

 

 

Nie chce debugować bo mam już serwer obciążony wystarczająco. 


Edited by protypek, 13.06.2015 16:17.
Quote

  • +
  • -
Rivit's Photo Rivit 13.06.2015

debuguj, nie wpływa to na obiążenie aż tak, a jak wyłapiesz błąd z debugu to możesz potem wyłączyć debug

Quote

  • +
  • -
protypek's Photo protypek 14.06.2015

debuguj, nie wpływa to na obiążenie aż tak, a jak wyłapiesz błąd z debugu to możesz potem wyłączyć debug

Ok. A ty właśnie czasami tego nie zrobiłeś że ten plugin zmienia szybkostrzelność w awp, scoucie oraz na kosie? Bo ja chciałem żeby w tych broniach się to nie zmieniało. 

Quote

  • +
  • -
Rivit's Photo Rivit 14.06.2015

Wydaje mi się, że nie...

 

Po prostu sprawdź.

 

Ewentualnie zmień to:

if(!(1<<weaponid & (1<<CSW_KNIFE | 1<<CSW_AWP | 1<<CSW_SCOUT)))

na to:

if(~(1<<weaponid) & (1<<CSW_KNIFE | 1<<CSW_AWP | 1<<CSW_SCOUT))
Quote

  • +
  • -
XXL's Photo XXL 18.06.2015


if(~(1<<weaponid) & (1<<CSW_KNIFE | 1<<CSW_AWP | 1<<CSW_SCOUT))

 

Tak z ciekawości zapytam co daje ten kod

(~

???

Quote

  • +
  • -
Rivit's Photo Rivit 18.06.2015

Negacja bitowa albo odwracanie bitów...

Chyba tak to się nazywa....

 

Gdy mamy liczbę 100101 to ~100101 = 011010

 

A że 1<<x, gdzie x to liczba, to nic innego jak przesunięcie bitowe, poczytaj sobie

CSW_* to nic innego jak liczba (zobacz amxconst.inc)

Quote

  • +
  • -
protypek's Photo protypek 20.06.2015

Nie działa. Dalej wszystkie bronie obejmuję. :(

Quote

  • +
  • -
Rivit's Photo Rivit 20.06.2015

A kompilujesz ten kod? Podmieniasz na serwerze? Nie wydaje mi się, żeby kod był błędny...

Quote

  • +
  • -
protypek's Photo protypek 20.06.2015

Oczywiście. -,- 
Posiadam teraz 3 serwery i to nie są moje pierwsze serwery. Więc wiem czy działa plugin poprawnie czy nie. ;)

Aktualnie kompilowałem tylko ograniczając bronie AWP i Scouta:
 

#include <amxmodx>
#include <engine>
#include <fakemeta_util>
#include <rpgx>


new upgrade_id;
new level, weaponid, ent, Float:nextattack, weapon[32];


public plugin_init()
register_plugin("SpeedShoot+ RPGx Upgrade", "2.0", "roflmao456");


public RPGx_OnPluginReady()
upgrade_id = RPGx_MakeUpgrade("SpeedShoot+", 5, 15, 15);


public client_PreThink(id)
{
level = RPGx_GetUpgradeLevel(id, upgrade_id);
if(level)
{
weaponid = get_user_weapon(id);
if(~(1<<weaponid) & (1<<CSW_AWP | 1<<CSW_SCOUT))
{
get_weaponname(weaponid, weapon, 31);
ent = fm_find_ent_by_owner(-1, weapon, id);
if(ent)
{
nextattack = get_pdata_float(ent, 46, 4);
if(nextattack > 0.0)
set_pdata_float(ent, 46, nextattack - (nextattack * (level * 0.015)), 4);
}
}
}
}

Myślałem nad czymś takim ale nwm czy to coś zmieni:

 

#include <amxmodx>
#include <engine>
#include <fakemeta_util>
#include <rpgx>


new upgrade_id;
new level, weaponid, ent, Float:nextattack, weapon[32];


public plugin_init()
register_plugin("SpeedShoot+ RPGx Upgrade", "2.0", "roflmao456");


public RPGx_OnPluginReady()
upgrade_id = RPGx_MakeUpgrade("SpeedShoot+", 5, 15, 15);


public client_PreThink(id)
{
level = RPGx_GetUpgradeLevel(id, upgrade_id);
if(level)
{
weaponid = get_user_weapon(id);
{
get_weaponname(weaponid, weapon, 31);
ent = fm_find_ent_by_owner(-1, weapon, id);
if(ent)
{
if(~(1<<weaponid) & (1<<CSW_AWP | 1<<CSW_SCOUT))
nextattack = get_pdata_float(ent, 46, 4);
if(nextattack > 0.0)
set_pdata_float(ent, 46, nextattack - (nextattack * (level * 0.015)), 4);
}
}
}
}

 


Edited by protypek, 20.06.2015 17:21.
Quote

  • +
  • -
Rivit's Photo Rivit 20.06.2015

#include <amxmodx>
#include <engine>
#include <fakemeta_util>
#include <rpgx>

new upgrade_id;
new level, weaponid, ent, Float:nextattack;

new const Nazwy_broni[][] = {
	"", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", 
	"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", 
	"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", 
	"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", 
	"weapon_ak47", "weapon_knife", "weapon_p90" }

public plugin_init()
	register_plugin("SpeedShoot+ RPGx Upgrade", "2.0", "roflmao456");

public RPGx_OnPluginReady()
	upgrade_id = RPGx_MakeUpgrade("SpeedShoot+", 5, 15, 15);

public client_PreThink(id)
{
	level = RPGx_GetUpgradeLevel(id, upgrade_id);
	if(level)
	{
		weaponid = get_pdata_int(get_pdata_cbase(id,373,5), 43, 4)
		
		if(!(1<<weaponid & (1<<CSW_KNIFE | 1<<CSW_AWP | 1<<CSW_SCOUT)))
		{
			ent = fm_find_ent_by_owner(-1, Nazwy_broni[weaponid], id);
			if(ent)
			{
				nextattack = get_pdata_float(ent, 46, 4);
				if(nextattack > 0.0)
					set_pdata_float(ent, 46, nextattack - (nextattack * (level * 0.015)), 4);
			}
		}
	}
}

Albo mi się wydaje albo coś tu zwraca złe wyniki

Quote

  • +
  • -
protypek's Photo protypek 20.06.2015

Coś z tym źle jest, niezdefiniowany symbol:

weaponid = get_pdata_int(get_pdata_cbase(id,373,5), 43, 4)
Quote

  • +
  • -
Rivit's Photo Rivit 20.06.2015

Przez pół roku tkwiłem w przekonaniu, że get_pdata_cbase jest w fakemecie :X

 

Teraz widzę, że nie...

 

 

Dodaj:

#include hamsandwich

Quote

  • +
  • -
protypek's Photo protypek 22.06.2015

Ok, dzięki :) Wszystko śmiga. 

Quote

  • +
  • -
MAGNET's Photo MAGNET 23.06.2015

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked