Prośba o dodanie klasie zamrożenia
Maciek332
07.11.2012
Witam, stworzyłem klasę z god mode i chciałbym, aby podczas jego trwania gracz nie mógł się ruszyć z miejsca. Pomożecie?
Użytkownik Maciek332 edytował ten post 07.11.2012 19:14
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <fun>
#include <ColorChat>
#define CZAS_GODMOD 2 //SEKUND
new bool:wykorzystal[33];
new bool:ma_klase[33];
new msg_bartime;
new const nazwa[] = "Tank";
new const opis[] = "Ma niesmiertelnosc na 2s";
new const bronie = (1<<CSW_HEGRENADE)|(1<<CSW_FAMAS)|(1<<CSW_DEAGLE);
new const zdrowie = 10;
new const kondycja = 5;
new const inteligencja = 10;
new const wytrzymalosc = 5;
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
msg_bartime = get_user_msgid("BarTime");
register_event("ResetHUD", "ResetHUD", "abe");
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Tank] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
give_item(id, "weapon_hegrenade");
ma_klase[id] = true;
ResetHUD(id);
return COD_CONTINUE;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public cod_class_skill_used(id)
{
if(!is_user_alive(id))
return;
if(wykorzystal[id])
{
ColorChat(id, RED, "Wykorzystales juz swoja niesmiertelnosc.");
return;
}
wykorzystal[id] = true;
set_user_godmode(id, 1);
set_task(CZAS_GODMOD.0, "WylaczGod", id);
message_begin(MSG_ONE, msg_bartime, _, id)
write_short(CZAS_GODMOD)
message_end()
}
public WylaczGod(id)
{
if(!is_user_connected(id)) return;
set_user_godmode(id, 0);
set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0);
}
public ResetHUD(id)
{
wykorzystal[id] = false;
}
Użytkownik Maciek332 edytował ten post 07.11.2012 19:14
Maciek332
07.11.2012
To tak:
1) Pierwsze pytanko- czemu do new bool:zamrozenie[32] wstawiles liczbe 32?
2) Zamrozenie ma byc wtedy, gdy god mode jest aktywny, czyli po uzyciu funkcji public cod_class_skill_used(id), ktorej w ogole nie edytowales.
Raczej to nie ma prawa dzialac ;/
1) Pierwsze pytanko- czemu do new bool:zamrozenie[32] wstawiles liczbe 32?
2) Zamrozenie ma byc wtedy, gdy god mode jest aktywny, czyli po uzyciu funkcji public cod_class_skill_used(id), ktorej w ogole nie edytowales.
Raczej to nie ma prawa dzialac ;/
Maciek332
08.11.2012
Dorwałem taki kod, ale dalej coś jest nie tak jak trzeba ;/
Oczywiście na gore dodaje zmienna zamrozenie.
Errory:
new Float:stara_grawitacja = get_user_gravity(this)
new Float:stara_predkosc = get_user_maxspeed(this)
new czas_zamrozenia[32] = 2
if(zamrozenie[this]==false){
set_user_gravity(this, 0.1)
set_user_maxspeed(this, 0.1)
czas_zamrozenia[this] --;
zamrozenie[this] = true
if(czas_zamrozenia[this] == 0)
{
set_user_gravity(this, stara_grawitacja)
set_user_maxspeed(this, stara_predkosc)
zamrozenie[this] = false
}
}
if(zamrozenie[id] == true)
return HAM_SUPERCEDE
Oczywiście na gore dodaje zmienna zamrozenie.
Errory:
Welcome to the AMX Mod X 1.76-300 Compiler. Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team Error: Function heading differs from prototype on line 56 <---- wyskakuje przy public cod_class_skill_used(id, this) po dopisaniu this Warning: Function "cod_class_skill_used" should return a value on line 59 Warning: Function "cod_class_skill_used" should return a value on line 64 Error: Function uses both "return" and "return <value>" on line 84 Warning: Function "cod_class_skill_used" should return a value on line 1102 Errors.
Could not locate output file C:\Documents and Settings\Prywatny\Pulpit\codclass_tank.amx (compile failed).