←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

set_task

Locked

  • +
  • -
camilost's Photo camilost 04.05.2010

Zrobiłem taki prosty plugin, jeśli gracz wpisze /kill to wyświetla info i zabija (Taki na zombie ^^)
I potrzebuję w nim set_taska tylko nie wiem jak go poprawnie użyć, aby działał tylko na gracza który, użyje komendy. Tera jest tak że ktoś wpisze i wszystkich zabija :/

Takie coś mam:
		set_task(60.0, "ZabijFrajera", _, _, _, "b")


Takie też pewnie źle wypełnione:
		set_task(60.0, "Frajer", id, "b") 


Całe .sma:

#include <amxmodx>
#include <fun>

public plugin_init() {
register_plugin("Frajer", "0.2", "BotQ")
register_clcmd("say /kill", "ZabijTegoFrajera")
}

public ZabijTegoFrajera(id) {
if (!is_user_hltv(id) && is_user_alive(id))
{
set_task(60.0, "ZabijFrajera", _, _, _, "b")
}
}

public ZabijFrajera(id) {
client_print(id, print_chat, "Frajer jestes i tyle. Bac sie zombie, porazka! -.-")
set_task(0.1, "ZabijGn_ja", _, _, _, "a", 1)
}

public ZabijGn_ja(id) {
client_cmd(id, "kill")
}
Quote

  • +
  • -
mgr inż. Pavulon's Photo mgr inż. Pavulon 04.05.2010

Sprawdź:
#include <amxmodx>
#include <fun>

public plugin_init() {
        register_plugin("Frajer", "0.2", "BotQ")
        register_clcmd("say /kill", "ZabijTegoFrajera")
}

public ZabijTegoFrajera(id) {
        if (is_user_alive(id))
                set_task(60.0, "ZabijFrajera", id)
}

public ZabijFrajera(id) {
	if (is_user_alive(id))
	{
		client_print(id, print_chat, "Frajer jestes i tyle. Bac sie zombie, porazka! -.-")
		set_task(0.1, "ZabijGn_ja", id)
	}
}

public ZabijGn_ja(id) {
	client_cmd(id, "kill")
}
Quote

  • +
  • -
nad3jf's Photo nad3jf 04.05.2010

Z tego kodu wynika, że gracz po wpisaniu /kill otrzyma wiadomość i po odczekaniu minuty zostanie zabity. O to Ci chodziło?
Jeśli chcesz szybciej zmień

set_task(60.0, "ZabijFrajera", id)

Przykładowo na:

set_task(3.0,"ZabijFrajera",id)

To wykona po 3 sekundach od pisania kill funkcję zabij frajera.
Edited by nad3jf, 04.05.2010 11:49.
Quote

  • +
  • -
sbstn's Photo sbstn 04.05.2010

Napisał, że potrzebuje set_task'a. Jakby nie potrzebował taska, to by to zrobił dużo prościej...
#include <amxmodx>

public plugin_init()
{
register_plugin("Frajer", "1.0", "AMXX.pl")
register_clcmd("say /kill", "ZabijTegoFrajera")
}

public ZabijTegoFrajera(id)
{
client_print(id, print_chat, "Frajer jestes i tyle. Bac sie zombie, porazka! -.-")
client_cmd(id,"kill")
}
Quote

  • +
  • -
nad3jf's Photo nad3jf 04.05.2010

Ja bym zrobił to tak: (Jeżeli koniecznie z set_task to)

#include <amxmodx>

public plugin_init() {
register_plugin("Frajer", "0.2", "BotQ")
register_clcmd("say /kill", "ZabijTegoFrajera")
}

public ZabijTegoFrajera(id) {
if (is_user_alive(id))
{
client_print(id, print_chat, "Frajer jestes i tyle. Bac sie zombie, porazka! -.-")
set_task(0.1, "ZabijGn_ja", id) // tutaj ustal po jakim czasie od wpisania komendy ma killnac gracza
}
}
public ZabijGn_ja(id) {
client_cmd(id, "kill")
}

Jeżeli może być bez to:

#include <amxmodx>

public plugin_init() {
register_plugin("Frajer", "0.2", "BotQ")
register_clcmd("say /kill", "ZabijTegoFrajera")
}

public ZabijTegoFrajera(id) {
if (is_user_alive(id))
{
client_print(id, print_chat, "Frajer jestes i tyle. Bac sie zombie, porazka! -.-")
client_cmd(id, "kill")
}
}


P.S tak na marginesie po co dodałeś moduł Fun skoro to .sma go nie wymaga?
Edited by nad3jf, 04.05.2010 12:51.
Quote

  • +
  • -
Lukasz5's Photo Lukasz5 04.05.2010

Może user_kill, bo ktoś może mieć skrypt i nie wykona na nim kill... Też podobnie zabijałem, ale mi inni o tym powiedzieli... ;)
Quote

  • +
  • -
camilost's Photo camilost 04.05.2010

Dzięki za odświeżenie pamięci/pomoc :D
Quote
Locked