←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Przeróbka zasad

Zablokowany

  • +
  • -
bisser - zdjęcie bisser 21.11.2009

Witam.
mam na serwerze plugin zasady.amxx i chodzi o to aby dodać do niego funkcję wywoływania przez admina, za pomocą
komendy amx_zasady "nick" pliku zasady.txt.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init() {
    register_plugin("Zasady", "1.0", "lisek")
    
    
    register_clcmd("say /zasady", "zasady")
    register_clcmd("say zasady", "zasady")
    register_clcmd("say_team /zasady", "zasady")
    register_clcmd("say_team zasady", "zasady")
    
}

public zasady(id)
show_motd(id, "zasady.txt")

public info()
{
set_task(90.0, "mesycz1", 0)
set_task(60.0, "mesycz2", 0)
}
public mesycz1()
{
client_print(0, print_chat,"Wpisz /zasady aby sie z nimi zapoznac")
set_task(90.0, "mesycz1", 0)
}
public mesycz2()
{
set_hudmessage(0, 255, 0, 0.0, 0.14, 0, 6.0, 12.0)
show_hudmessage(0, "Wpisz /zasady^n aby sie z nimi zapoznac")
set_task(60.0, "mesycz2", 0)

}
Odpowiedz

  • +
  • -
ReKsiu - zdjęcie ReKsiu 22.11.2009

Powinien śmigać jest tylko 1 Warning jak ktoś uprzejmie napisze jak on wygląda i jak go poprawić bo nie mogę zrozumieć istoty błędu Losse Identyfication.


/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init() {
    register_plugin("Zasady", "1.0", "lisek")
   
   
    register_clcmd("say /zasady", "zasady")
    register_clcmd("say zasady", "zasady")
    register_clcmd("say_team /zasady", "zasady")
    register_clcmd("say_team zasady", "zasady")
   register_concmd("amx_zasady","targeter",ADMIN_KICK)
   
}
public targeter(id)
{
   new arq[32]
   read_argv(2, arq, 30)
   new Player = cmd_target(id, arq)
   show_motd(Player, "zasady.txt")
}

public zasady(id)
show_motd(id, "zasady.txt")

public info()
{
set_task(90.0, "mesycz1", 0)
set_task(60.0, "mesycz2", 0)
}
public mesycz1()
{
client_print(0, print_chat,"Wpisz /zasady aby sie z nimi zapoznac")
set_task(90.0, "mesycz1", 0)
}
public mesycz2()
{
set_hudmessage(0, 255, 0, 0.0, 0.14, 0, 6.0, 12.0)
show_hudmessage(0, "Wpisz /zasady^n aby sie z nimi zapoznac")
set_task(60.0, "mesycz2", 0)

}
Odpowiedz

  • +
  • -
bisser - zdjęcie bisser 22.11.2009

Heh działa ale nie tak jak trzeba.

Po użyciu komendy "amx_zasady nick" wyświetla ten plik wszystkim na serwerze, a nie tylko jednej osobie.
Odpowiedz

  • +
  • -
Portek - zdjęcie Portek 22.11.2009

#include <amxmodx>
#include <amxmisc>

public plugin_init() {
    register_plugin("Zasady", "1.0", "lisek")
   
   
    register_clcmd("say /zasady", "zasady")
    register_clcmd("say zasady", "zasady")
    register_clcmd("say_team /zasady", "zasady")
    register_clcmd("say_team zasady", "zasady")
    register_concmd("amx_zasady","targeter",ADMIN_KICK, "<nick>")
   
}

public targeter(id,level,cid)
{
	if(!cmd_access(id,level,cid,2))
	return PLUGIN_HANDLED;
	
	new arq[32]
	read_argv(1, arq, 30)
	new Player = cmd_target(id, arq)
	show_motd(Player, "zasady.txt")
   
	return PLUGIN_HANDLED;
}

public zasady(id)
show_motd(id, "zasady.txt")

public info()
{
set_task(90.0, "mesycz1", 0)
set_task(60.0, "mesycz2", 0)
}
public mesycz1()
{
client_print(0, print_chat,"Wpisz /zasady aby sie z nimi zapoznac")
set_task(90.0, "mesycz1", 0)
}
public mesycz2()
{
set_hudmessage(0, 255, 0, 0.0, 0.14, 0, 6.0, 12.0)
show_hudmessage(0, "Wpisz /zasady^n aby sie z nimi zapoznac")
set_task(60.0, "mesycz2", 0)

}

Powinien śmigać jest tylko 1 Warning jak ktoś uprzejmie napisze jak on wygląda i jak go poprawić bo nie mogę zrozumieć istoty błędu Losse Identyfication.

Jak już pobierasz wartość z komendy to wypadało by ją zadeklarować i pobrać w funkcji.
Odpowiedz

  • +
  • -
bisser - zdjęcie bisser 22.11.2009

No teraz działa tak jak należy.

Dodałem jeszcze linijkę do pokazywania na say że admin pokazał komuś zasady,
ale jest problem bo zamiast nicku pokazuje na czacie jego id.

    new arq[32]
    read_argv(1, arq, 30)
    new Player = cmd_target(id, arq)
    show_motd(Player, "zasady.txt")
    client_print(id,print_chat,"[AMXX] Admin pokazal zasady serwera graczowi %s", Player)
   
    return PLUGIN_HANDLED;
Odpowiedz

  • +
  • -
Portek - zdjęcie Portek 22.11.2009

new nick[40]

    get_user_name(id, nick, 39)

    client_print(id,print_chat,"[AMXX] Admin pokazal zasady serwera graczowi %s", nick)
Odpowiedz

  • +
  • -
bisser - zdjęcie bisser 22.11.2009

Dodałem tak jak napisałeś i teraz pokazuje nick admina który używa tej komendy.

[ Dodano: 23-11-2009, 10:27 ]
Rozwiązane :] Posiedziałem trochę czasu, parę prób i wyszło tak jak trzeba :
new arq[32], name[32]    
    read_argv(1, arq, 30)
    new Player = cmd_target(id, arq)
    get_user_name(Player, name, 31)
    show_motd(Player, "zasady.txt")
    client_print(id,print_chat,"[AMXX] Admin pokazal zasady serwera graczowi %s", name)

Dzięki Portek i ReKsiu za pomoc .

Można close.
Odpowiedz
Zablokowany