Page 1 of 1

Cerere set_task

Posted: 24 Feb 2014, 18:16
by EpsiloN
Nickname: EpsiloN
Numele pluginului cerut: -
Descriere plugin cerut: As vrea sa imi spuna cineva cum pot adauga in set_task pe durata infinita de rulare a task-ului
Alte informatii: As vrea sa stiu cum pot pune un set_task infinit care sa scaneze jucatorii la fiecare 5 secunde pentru a verifica un anumit cvar si daca jucatorii isi schimba valoarea acelui cvar, serverul sa ii dea slay si sa schimbe acea valoare la cea pe care o setez eu din plugin

Nu stiu daca o sa dau un exemplu bun, dar o sa dau un exemplu si va rog sa ma corectati daca gresesc
Exemplu | Afiseaza codul
[code]#include <amxmodx>

#define PLUGIN "Interp"
#define VERSION "1.0"
#define AUTHOR "EpsiloN a.k.a dystopiA"

public plugin_int()
{
      register_plugin(PLUGIN, VERSION, AUTHOR)
      set_task(5.0, "cmdInterp", id, "b")
}

public cmdInterp(id)
{
      new interp[32]
      get_user_info(id, "ex_interp", interp, charsmax(interp))
      if(strcmp(interp, "0.1" == 0)
      {
            server_cmd("slay #%d", get_user_userid(id))
            client_cmd(id, "ex_interp 0.01")
      }
}

public client_connect(id)
{
      new interp[32]
      get_user_info(id, "ex_interp", interp, chasrmax(interp))
      if(strcmp(interp, "0.1" == 0)
      {
            client_print(id, print_chat, "Interp-ul tau nu este setat corect. Te rugam sa scrii ex_interp 0.01 in consola")
      }
}[/code]
Multumesc!
Stima EpsiloN

Re: Cerere set_task

Posted: 24 Feb 2014, 18:24
by DaNNe.
Asa:
set_task(0.5, "BlaBlaBla", _, _, "b"
- La asta te referi ? Acest task se repeta la infinit.

Re: Cerere set_task

Posted: 24 Feb 2014, 18:37
by Cosmin
set_task(5.0,"exec",id,"b") //"b" = repeta la infinit.
Exista si un tutorial despre task.

Re: Cerere set_task

Posted: 24 Feb 2014, 18:39
by #Vali
scosmynnnn wrote:set_task(5.0,"exec",id,"b") //"b" = repeta la infinit.
Exista si un tutorial despre task.
Nu e bine :) daca il asezi in studio o sa vezi ca ai completat alt camp

Re: Cerere set_task

Posted: 24 Feb 2014, 18:43
by Cosmin
Ba este bine.

Re: Cerere set_task

Posted: 24 Feb 2014, 19:21
by levin
DaNNe. wrote:Asa:
set_task(0.5, "BlaBlaBla", _, _, "b"
- La asta te referi ? Acest task se repeta la infinit.
Asa e foarte bine

Re: Cerere set_task

Posted: 24 Feb 2014, 20:07
by EpsiloN
Multumesc tuturor pentru raspunsuri, mai ales tie dane :* (ai avut dreptate ;))
Cerere rezolvata.

EDIT: Nu mi-a mers :(
Am incercat ceva si imi da eroare de tag missmatch
Interp | Afiseaza codul
[code]#include <amxmodx>

#define PLUGIN "Interp"
#define VERSION "1.0"
#define AUTHOR "dystopiA"

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	set_task(5.0, "cmdInterp", _, _, "b")
}

public cmdInterp(id)
{
	new interp[32], nume[32]
	get_user_info(id, "ex_interp", interp, charsmax(interp))
	get_user_name(id, nume, charsmax(nume))
	if(strcmp(interp, "0.1") == 0)
	{
		server_cmd("slay #%d", get_user_userid(id))
		client_print(0, print_chat, "[Interp] Jucatorul %s nu are interp-ul setat pe 0.01.")
		client_print(id, print_chat, "[Interp] Interp-ul tau nu este setat pe 0.01. Te rugam sa introduci in consola ex_interp 0.01.")
	}
}[/code]

Re: Cerere set_task

Posted: 25 Feb 2014, 10:15
by meNe
Salut, incearca asta:
| Afiseaza codul
#include <amxmodx>

#define PLUGIN "Interp"
#define VERSION "1.0"
#define AUTHOR "dystopiA"

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   set_task(5.0, "cmdInterp", 0, _, _, "b")
}

public cmdInterp(id)
{
   new interp[32], nume[32]
   get_user_info(id, "ex_interp", interp, charsmax(interp))
   get_user_name(id, nume, charsmax(nume))
   if(strcmp(interp, "0.1") == 0)
   {
      server_cmd("slay #%d", get_user_userid(id))
      client_print(0, print_chat, "[Interp] Jucatorul %s nu are interp-ul setat pe 0.01.")
      client_print(id, print_chat, "[Interp] Interp-ul tau nu este setat pe 0.01. Te rugam sa introduci in consola ex_interp 0.01.")
   }
}
---
Multumesc.

Re: Cerere set_task

Posted: 25 Feb 2014, 14:08
by levin
EpsiloN wrote: Multumesc tuturor pentru raspunsuri, mai ales tie dane :* (ai avut dreptate ;))
Cerere rezolvata.

EDIT: Nu mi-a mers :(
Am incercat ceva si imi da eroare de tag missmatch
Interp | Afiseaza codul
[code]
#include <amxmodx>

#define PLUGIN "Interp"
#define VERSION "1.0"
#define AUTHOR "dystopiA"

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	set_task(5.0, "cmdInterp", _, _, "b")
}

public cmdInterp(id)
{
	new interp[32], nume[32]
	get_user_info(id, "ex_interp", interp, charsmax(interp))
	get_user_name(id, nume, charsmax(nume))
	if(strcmp(interp, "0.1") == 0)
	{
		server_cmd("slay #%d", get_user_userid(id))
		client_print(0, print_chat, "[Interp] Jucatorul %s nu are interp-ul setat pe 0.01.")
		client_print(id, print_chat, "[Interp] Interp-ul tau nu este setat pe 0.01. Te rugam sa introduci in consola ex_interp 0.01.")
	}
}
[/code]
Uite asa
| Afiseaza codul
#include < amxmodx >

new const
        PLUGIN [ ] = "Interp",
        VERSION [ ] = "1.0",
        AUTHOR [ ] = "dystopiA";

public plugin_init ( )
{
   register_plugin ( PLUGIN , VERSION , AUTHOR );
   set_task ( 5.0 , "cmdInterp" , _ , _ , _ , "b" , 0 );
}

public cmdInterp ( id )
{
   new interp [ 32 ] , nume [ 32 ];
   get_user_info( id , "ex_interp" , interp , charsmax ( interp ) );
   get_user_name( id , nume , charsmax ( nume ) );

   if ( strcmp ( interp , "0.1" ) == 0 )
   {
      server_cmd ( "slay #%i" , get_user_userid ( id ) )
      xCoLoR ( 0 , ".n[.vInterp.n] Jucatorul.e %s.n nu are interp-ul setat pe.v 0.01.n !" , nume );
      xCoLoR ( id , ".n[.vInterp.n] Interp-ul tau nu este setat pe.e 0.01.n ! Te rugam sa introduci in consola ex_interp.n 0.01.n !" );
   }
}

stock xCoLoR ( const id , const input [ ] , any:... )
{
	new count = 1, players [ 32 ];
	static msg [ 191 ];
	vformat ( msg , 190 , input , 3 );

	replace_all ( msg , 190 , "!v" , "^4" );
	replace_all ( msg , 190 , "!n" , "^1" );
	replace_all ( msg , 190 , "!e" , "^3" );
	replace_all ( msg , 190 , "!e2" , "^0" );

	if ( id )
        {
                 players [ 0 ] = id;
        }

        else
        get_players ( players , count , "ch" );
	{
		for ( new i = 0; i < count; i++ )
		{
			if ( is_user_connected ( players [ i ] ) )
			{
				message_begin ( MSG_ONE_UNRELIABLE , get_user_msgid ( "SayText" ) , _ , players [ i ] );
				write_byte ( players[ i ] );
				write_string ( msg );
				message_end ( );
			}
		}
	}
}

#pragma semicolon 1

Re: Cerere set_task

Posted: 25 Feb 2014, 21:03
by EpsiloN
meNe wrote:Salut, incearca asta:
| Afiseaza codul
#include <amxmodx>

#define PLUGIN "Interp"
#define VERSION "1.0"
#define AUTHOR "dystopiA"

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   set_task(5.0, "cmdInterp", 0, _, _, "b")
}

public cmdInterp(id)
{
   new interp[32], nume[32]
   get_user_info(id, "ex_interp", interp, charsmax(interp))
   get_user_name(id, nume, charsmax(nume))
   if(strcmp(interp, "0.1") == 0)
   {
      server_cmd("slay #%d", get_user_userid(id))
      client_print(0, print_chat, "[Interp] Jucatorul %s nu are interp-ul setat pe 0.01.")
      client_print(id, print_chat, "[Interp] Interp-ul tau nu este setat pe 0.01. Te rugam sa introduci in consola ex_interp 0.01.")
   }
}
---
Multumesc.
Multumesc tuturor (am uitat sa pun sa pun un argument inainte de _, _, "b")
@ meNe Nu inteleg de ce tie ti-a mers cand ai pus acel 0 :)) (eu in loc de 0 am pus id si tot mi-a dat eroare de tag missmatch :()

Re: Cerere set_task

Posted: 25 Feb 2014, 22:36
by meNe
Salut,
Totul e simplu. In plugin_init() nu ai definit indexul, asa ca taskul nu avea de unde sa ,,il cunoasca''.
Ca sa setezi cum ai pus tu, trebuia sa fie ceva de genul:
| Afiseaza codul
public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   for(new id = 1; id <= get_maxplayers(); id++)
   {
      set_task(5.0, "cmdInterp", id, _, _, "b")
   }
}


---
Multumesc.

Re: Cerere set_task

Posted: 26 Feb 2014, 21:31
by EpsiloN
meNe wrote:Salut,
Totul e simplu. In plugin_init() nu ai definit indexul, asa ca taskul nu avea de unde sa ,,il cunoasca''.
Ca sa setezi cum ai pus tu, trebuia sa fie ceva de genul:
| Afiseaza codul
public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   for(new id = 1; id <= get_maxplayers(); id++)
   {
      set_task(5.0, "cmdInterp", id, _, _, "b")
   }
}

---
Multumesc.
Deci daca e 0 si nu id, task-ul se va aplica si va verifica toti jucatorii deodata sau pe rand?