←  Prośby o kompilacje pluginów / Problemy z kompilacją

AMXX.pl: Support AMX Mod X i SourceMod

»

Kompilacja klas z dodanymi statystykami.

  • +
  • -
Karras - zdjęcie Karras 07.04.2013

Siema ;)
Mam taki problem, otóż dodałem do QTM_CodMod dodatkowe statystyki: grawitacje i obrażenia (w takiej kolejności) i mój problem jest taki, jak skompilować pod to klasę?
Próbowałem już napisać taką klasę, ale że zaczynam dopiero swoją zabawę z Pawn'em to nie wiem co źle robię ;/

Oto sma mojej klasy:

/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
#define DMG_BULLET (1<<1)
new bool:ma_klase[33];
new const nazwa[] = "Kosiarz[Premium]";
new const opis[] = "1/2 szansy na natychmiastowe zabicie z noza(PPM) i ma 120HP";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 20;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new const grawitacja = 0;
new const obrazenia = 0;
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, grawitacja, obrazenia);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_class_enabled(id)
ma_klase[id] = true;
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(damagebits & DMG_BULLET)
{
  new weapon = get_user_weapon(idattacker);
 
  if(weapon == CSW_KNIFE && damage > 20.0 && random_num(1,2) == 1)
   cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
  
}

return HAM_IGNORED;
}

Oraz błędy po kompilacji:

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
kosiarz.sma(25) : error 088: number of arguments does not match definition
kosiarz.sma(54) : warning 203: symbol is never used: "grawitacja"
kosiarz.sma(54) : warning 203: symbol is never used: "obrazenia"
1 Error.
Could not locate output file kosiarz.amxx (compile failed).

Jeśli możecie to wytłumaczcie co źle zrobiłem i jak mam to zrobić dobrze, abym inne klasy mógł kompilować :)
Odpowiedz

Gość_21977_* 09.04.2013

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XProblemy

do

Scripting AMXXProśby o kompilacje pluginów / Problemy z kompilacją
Odpowiedz

  • +
  • -
Karras - zdjęcie Karras 09.04.2013

Reff ;)
Odpowiedz

  • +
  • -
MateuszKuCi - zdjęcie MateuszKuCi 09.04.2013

oj to chyba trzeba coś w codmod.ini dodać.
Odpowiedz

Gość_21977_* 09.04.2013

Definicja funkcji cod_register_class znajduje się w pliku głównym Twojego CodModa.
Jeśli modyfikowałeś ten plik, dodając nowe statystyki postaci i dalej masz problem z kompilacją, to załącz nam ten plik źródłowy, a przynajmniej codmod.ini.
Jeśli nie modyfikowałeś silnika, a po prostu postanowiłeś dopisać sobie te 2 punkty statystyk jako kolejne argumenty natywu, to wiedz, że tak się nie da bez modyfikacji silnika codmoda.
Odpowiedz

  • +
  • -
Karras - zdjęcie Karras 09.04.2013

To plik .sma mojego silnika:
Załączony plik  QTM_DeathRun.sma   42,3 KB   43 Ilość pobrań

A codmod.ini, nie wiem czy dobrze zrozumiałem, chodzi o codmod.inc?

Załączony plik  codmod.inc   7,57 KB   28 Ilość pobrań
Użytkownik Karras edytował ten post 09.04.2013 17:30
Odpowiedz

Gość_21977_* 09.04.2013

Grawitacja jest, widzę, dodana do silnika, obrażeń nie widzę.

Załączony plik  codmod.inc   7,59 KB   30 Ilość pobrań z uwzględnioną grawitacją, lecz obrażeń nie znalazłem.

#include <amxmodx>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<1)

new bool:ma_klase[33];
new const nazwa[] = "Kosiarz[Premium]";
new const opis[] = "1/2 szansy na natychmiastowe zabicie z noza(PPM) i ma 120HP";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 20;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new const grawitacja = 0;

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

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, grawitacja);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

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

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(damagebits & DMG_BULLET)
{
new weapon = get_user_weapon(idattacker);

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

}

return HAM_IGNORED;
}


Ten kod klasy z załączonym codmod.inc się skompiluje, jednak nie uwzględnia obrażeń, których w silniku nie znalazłem (a przynajmniej nie w formie, jakiej próbowałeś je zaaplikować klasie).
Odpowiedz

  • +
  • -
Karras - zdjęcie Karras 09.04.2013

Próbowałem je dodać z poradnika DarkGL'a http://darkgl.amxx.p...tyka-obrazenia/ zmieniając tak jak z grawitacją tylko sposób rozdania punktów, lecz jak niestety nie dasz rady więcej to nic ;) Wielkie dzięki za pomoc ;)
Odpowiedz