←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Uczę się pisać pluginy - czy to działa

  • +
  • -
Emru - zdjęcie Emru 26.12.2014

Witam. Stworzyłem na podstawie tutoriala z tego forum własny plugin (a raczej 5). Chciałbym wiedzieć, czy to zadziała. Ma graczowi za 6000 kasy dać tarcze.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "Tarcza"
#define VERSION "1.0"
#define AUTHOR "Emru"

new tarcza_koszt

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar("tarcza_koszt","8000")
    register_clcmd("/say tarcza","shi")
}

public shi(id){
    if(!is_user_alive(id)){
        client_print(id,print_chat,"[Tarcza] Jestes trupem")
        return PLUGIN_HANDLED
    }
    if(cs_get_user_money(id)<get_pcvar_num(tarcza_koszt)){
    	client_print(id,print_chat,"[Tarcza] Nie stac Cie...")
	return PLUGIN_HANDLED
}

    
    give_item(id, "weapon_shield")
    cs_set_user_money(id,cs_get_user_money(id)-get_pcvar_num(tarcza_koszt))
    return PLUGIN_HANDLED
   }

Odpowiedz

  • +
  • -
he1st - zdjęcie he1st 26.12.2014

Moim zdaniem powinno być tak, ale zawsze mogę się mylić ;)

 
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
 
#define PLUGIN "Tarcza"
#define VERSION "1.0"
#define AUTHOR "Emru"
 
new tarcza_koszt
 
public plugin_init() 
{
register_plugin(PLUGIN, VERSION, AUTHOR)
tarcza_koszt = register_cvar("tarcza_koszt","8000")
register_clcmd("/say tarcza","shi")
}
 
public shi(id)
{
if(!is_user_alive(id))
{
client_print(id,print_chat,"[Tarcza] Jestes trupem")
return PLUGIN_HANDLED
}
if(cs_get_user_money(id)<get_pcvar_num(tarcza_koszt))
{
client_print(id,print_chat,"[Tarcza] Nie stac Cie...")
return PLUGIN_HANDLED
}
 
 
give_item(id, "weapon_shield")
cs_set_user_money(id,cs_get_user_money(id)-get_pcvar_num(tarcza_koszt))
return PLUGIN_HANDLED;
}


Użytkownik MS.Zer0. edytował ten post 26.12.2014 18:12
Odpowiedz

  • +
  • -
NieWiemMamMac@ - zdjęcie NieWiemMamMac@ 26.12.2014

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "Tarcza"
#define VERSION "1.0"
#define AUTHOR "Emru"


public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /tarcza","shi")
}

public shi(id)
{
	if(!is_user_alive(id))
	{
		client_print(id,print_chat,"[Tarcza] Jestes trupem")
	}
	if(cs_get_user_money(id) >= 8000)
	{
		cs_set_user_money(id, cs_get_user_money(id)-8000);
		give_item(id, "weapon_shield")
		client_print(id,print_chat,"[Tarcza] Dostales Tarcze!")
	}
	else
		client_print(id,print_chat,"[Tarcza] Nie stac Cie...")
}

Jeśli robisz to na serwer COD MOD to nie zadziała ..

Wtedy musiałbyś użyć

cod_set_user_shield(id, 1);
Odpowiedz

  • +
  • -
he1st - zdjęcie he1st 26.12.2014

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "Tarcza"
#define VERSION "1.0"
#define AUTHOR "Emru"


public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /tarcza","shi")
}

public shi(id)
{
	if(!is_user_alive(id))
	{
		client_print(id,print_chat,"[Tarcza] Jestes trupem")
	}
	if(cs_get_user_money(id) >= 8000)
	{
		cs_set_user_money(id, cs_get_user_money(id)-8000);
		give_item(id, "weapon_shield")
		client_print(id,print_chat,"[Tarcza] Dostales Tarcze!")
	}
	else
		client_print(id,print_chat,"[Tarcza] Nie stac Cie...")
}

Jeśli robisz to na serwer COD MOD to nie zadziała ..

Wtedy musiałbyś użyć

cod_set_user_shield(id, 1);

 

 

Wszystko fajnie tylko nie podał takich informacji. :P Ogólnie wydaje mi się, że kod, który podałem jest ok. tym bardziej, że zawsze może sobie cenę tarczy ustawić cvarem, a nie edytować i kompilować za każdym razem, gdy chce zmienić cenę. ^D^ Niemniej rzeczywiście na COD nie zadziała ten sposób, który podał/em i trzeba byłoby użyć cod_set_user_shield

Odpowiedz

  • +
  • -
NieWiemMamMac@ - zdjęcie NieWiemMamMac@ 26.12.2014


Ogólnie wydaje mi się, że kod, który podałem jest ok

 

Mogę się mylić ale :

return PLUGIN_HANDLED;

Zatrzyma dalsze działanie...

 

No i oczywiscie przy użyciu :

cod_set_user_shield(id, wartosc);

Będzie trzeba dać event nowej rundy by zabierało tarcze :)


Użytkownik NieWiemMamMac@ edytował ten post 26.12.2014 20:14
Odpowiedz

  • +
  • -
Emru - zdjęcie Emru 26.12.2014

Jest to na serwer 4FUN. Też myślę, że return PLUGIN_HANDLED zablokuje plugin.
Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 26.12.2014

Ogółem return przerywa działanie funkcji.

Można dać samo return lub return PLUGIN_*

Pytałem się o to na tym forum, wystarczy poszukać
Odpowiedz

  • +
  • -
Emru - zdjęcie Emru 26.12.2014

Dziękuje za pomoc. Jeszcze taka prośba. Czy te pluginy są poprawne? Wszystki są prawie takie same.

Załączone pliki

  • Załączony plik  Armor.sma   915 bajtów   16 Ilość pobrań
  • Załączony plik  G3SG1.sma   795 bajtów   11 Ilość pobrań
  • Załączony plik  HP.sma   899 bajtów   15 Ilość pobrań
  • Załączony plik  SG550.sma   813 bajtów   24 Ilość pobrań
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 27.12.2014

ms zero, podales ten sam kod czy ja jestem taki zmeczony?

 

plugin jest napisany w działający sposób.

 

return PLUGIN_HANDLED w tym przypadku sprawi jedynie, że napis nie zostanie pokazany na czacie ani żadne kolejne pluginy go nie będą w stanie przechwycić.


Użytkownik grankee edytował ten post 27.12.2014 05:36
Odpowiedz

  • +
  • -
he1st - zdjęcie he1st 27.12.2014

ms zero, podales ten sam kod czy ja jestem taki zmeczony?

 

plugin jest napisany w działający sposób.

 

return PLUGIN_HANDLED w tym przypadku sprawi jedynie, że napis nie zostanie pokazany na czacie ani żadne kolejne pluginy go nie będą w stanie przechwycić.

 

Jesteś zmęczony :D Jak widzisz nie przypisał

tarcza_koszt
wartości cvaru
 register_cvar("tarcza_koszt","8000")

 

 

Więc zrobiłem to za niego :D

 

 tarcza_koszt = register_cvar("tarcza_koszt","8000")
Odpowiedz