Raised This Month: $12 Target: $400
 3% 

[API] Register Task 1.1


  
 
 
Thread Tools Display Modes
Author Message
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 08-25-2012 , 07:31   [API] Register Task 1.1
#1

Hola esto que van a ver a continuacion en si fue potenciado por Bugg al preguntar como llamar una funcion X dia y ya que estaba agrege para llamar cada X seg una funcion, es simple como funciona, veamos un poco

Natives
Code:
/* register_task; con esta native registramos un task hacia una funcion publica; Float:Time | Igual a set_task, el valor minimo es 0.1 const Func[] | Igual a set_task, el nombre de la funcion publica a la que vamos a llamar Taskid | Aca podemos pasar un id para identificar el task para poder removerlo o para pasar 1 dato(interger) el cual es mandado a la funcion Repeat | Aca es distinto, va el numero de veces que lo vamos a llamar, si dejamos el valor -1 se repite infinitas veces retorna el ID del task */ native register_task(Float:Time, const Func[], Taskid = 0, Repeat = -1) /* register_task_date; con esta native registramos un task para X dia de cualquier fecha; si los datos no corresponden al tiempo que esta activo el plugin en el mapa va a retornar un valor negativo; dejo un ejemplo: register_task_date(2012, 08, 27, 7, 30, 0, "my_task") esto va a llamar el 27 de agosto del 2012 a las 07:30:00 am la funcion public "my_task" los valores que pueden retornar son: TASK_EXPIRE = -3 ya se ejecuto el task TASK_NOT_YET = -2 en el momento que se registro el task, en ese mapa no se va a ejecutar por que no van a coincidir nunca la fecha y hora */ native register_task_date(Year, Month, Day, Hour, Minute, Second, const Func[]) // Ambas natives, register_task y register_task_date pueden retornar el ID del task que va de 0 a infinito o pueden retornar //TASK_INVALID_FUNCID = -1; cuando retorna la ultima significa que la funcion publica no fue encontrada /* remove_register_task; esta native sirve para borrar 1 task, varios que coincidan con el taskid que le asignamos o tambien podes borrar todos los task; un ejemplo de cada uno remove_register_task() | Remueve todos los task remove_register_task(id) | Remueve 1 solo task, id seria el valor que retorna register_task o register_task_date remove_register_task(_, taskid) | Remueve 1 solo task cuyo taskid es el que le asignamos antes a un register_task; INFO: remueve el ultimo taskid registrado remove_register_task(_,taskid, TASK_DELETE_ALL) | Remueve todos los task que tengan el taskid asignado */ native remove_register_task(id = -1, Taskid = -1, Delete_All = 0) /* change_register_task; cambiamos el tiempo en que se ejecuta un task id | el id es el que nos retorna register_task */ native change_register_task(id, Float:NewTime) enum { // enum con los valores antes mencionados     TASK_EXPIRE = -3,     TASK_NOT_YET,     TASK_INVALID_FUNCID,     TASK_DELETE_ONE,     TASK_DELETE_ALL } const NO_TASK_ID = -1

Informacion Adicional
Para poder compilar el plugin register_task.sma tienen que tener el include unixtime; se los deje en el .zip

Creditos
Code:
Bugsy - Inc. unixtime
shinoda - Ejemplo callfunc
Ejemplo de plugin
PHP Code:
#include <amxmodx>
#include <taskapi>

#define PLUGIN "Example Register Task"
#define VERSION "1.0"
#define AUTHOR "[R]ak"

enum _:TASKS {
    
TASK1,
    
TASK2,
    
TASK3
}

new 
g_rt_id[TASKS]

new 
g_register_task

public plugin_init() {
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /kill""cmdSayKill")
    
    
g_rt_id[TASK2] = register_task_date(20120827000"rak_birthday")
    
}

public 
client_putinserver(id) {
    
    if(!
g_register_task) {
        
        
g_rt_id[TASK1] = register_task(1.0"show_clock")
        
        
g_rt_id[TASK3] = register_task(5.0"server_spam")
        
        
g_register_task true
        
    
}
}

public 
client_disconnect(id) {
    
    if(!
get_playersnum()) {
        
        
remove_register_task(g_rt_id[TASK1])
        
        
remove_register_task(g_rt_id[TASK3])
        
        
g_rt_id[TASK1] = NO_TASK_ID
        
        g_rt_id
[TASK3] = NO_TASK_ID
        
        g_register_task 
false
        
    
}
}

public 
cmdSayKill(id) {
    
    if(!
is_user_alive(id))
        return
    
    
register_task(1.0"task_kill"id5)
    
    
set_hudmessage(255255255, -1.00.1006.01.5)
    
    
show_hudmessage(id"You will die in 5 seconds")
    
}

public 
show_clock() {
    
    new 
Time[20
    
    
get_time("%H:%M:%S %p",Timecharsmax(Time))
    
    
set_hudmessage(42255420.800.0501.01.50.00.02
    
    
show_hudmessage(0Time)
    
}

public 
rak_birthday()
    
client_print(0print_chat"Happy Birthday [R]ak!")
    
public 
server_spam() {
        
    static 
Float:fCall
    
    fCall 
+= 5.0
    
    client_print
(0print_chat"[R]ak Acme Inc.- API Register Task 1.1")
    
    
client_print(0print_chat"[R]ak Acme Inc.- You Are Playing in Cstrike-Arg!")
    
    
change_register_task(g_rt_id[TASK3], fCall 5.0)
    
}

public 
task_kill(id) {
    
    static 
iCall[33]
    
    
iCall[id] == ? (iCall[id] = 1) : iCall[id]++
    
    
set_hudmessage(255255255, -1.00.1006.06.0)
    
    
show_hudmessage(id"You will die in %d seconds", (5-iCall[id]))
    
    if(!(
5-iCall[id]) && is_user_alive(id))
        
user_kill(id)
    

ChangeLog
Code:
* Register Task 1.0 - First release
* Register Task 1.1 - Agregado change_register_task | Pequeña modificación
disfruten y critiquenlo xD
Attached Files
File Type: zip register_task.zip (14.0 KB, 216 views)
File Type: zip register_task 1.1.zip (14.5 KB, 238 views)
__________________

www.amxmodx-es.com

Steam: Luchokoldo

Last edited by rak; 08-25-2012 at 22:51.
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
S34Qu4K3
Veteran Member
Join Date: Jan 2010
Location: Galicia
Old 08-25-2012 , 07:41   Re: [API] Register Task 1.0
#2

Nice!
__________________

- ASM2SMA: Experimental AMXX Assembly encoder

- Defuse Bar Fix

Quote:
Originally Posted by Arkshine
I DON'T WANT TO SEE NOOOOOOOOOOOOOOO AHHHHH. MY EYES ARE ALREADY HURT.
S34Qu4K3 is offline
Geoslide
Senior Member
Join Date: Jun 2011
Location: Chilean player
Old 08-25-2012 , 09:50   Re: [API] Register Task 1.0
#3

bien, lo úsare si me llega a hacer falta
__________________
Basebuilder V6 - plugin for sale
Jailbreak V6 - plugin for sale
more plugins in progress ...

Geoslide ?
Geoslide is offline
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 08-25-2012 , 09:53   Re: [API] Register Task 1.0
#4

set_task es mas lindo lalala, jajaja. Agregale un change_task así lo uso para el valebug.
__________________
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
AlgoChikitito
BANNED
Join Date: Feb 2011
Location: España
Old 08-25-2012 , 12:33   Re: [API] Register Task 1.0
#5

No entendi una mierda
AlgoChikitito is offline
DJHD!
Veteran Member
Join Date: Dec 2009
Location: Santiago, Chile
Old 08-25-2012 , 20:11   Re: [API] Register Task 1.0
#6

Excelente Api Lo Usaré en mi BB Par Algo qué tengo que hacer ;)
__________________
Quote:
Originally Posted by XINLEI View Post
Porque rocccos trata de ser el metalicross que nunca va a poder ser.
DJHD! is offline
Send a message via MSN to DJHD!
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 08-25-2012 , 20:19   Re: [API] Register Task 1.0
#7

Quote:
Originally Posted by Neeeeeeeeeel.- View Post
set_task es mas lindo lalala, jajaja. Agregale un change_task así lo uso para el valebug.
ahora lo agrego
Quote:
Originally Posted by AlgoChikitito View Post
No entendi una mierda
q no entendiste? xD
Quote:
Originally Posted by DJHD! View Post
Excelente Api Lo Usaré en mi BB Par Algo qué tengo que hacer ;)
en estos dias armo un inc. para que no sea necesario usar un plugin
__________________

www.amxmodx-es.com

Steam: Luchokoldo
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 08-25-2012 , 22:44   Re: [API] Register Task 1.1
#8

Update *-*
__________________

www.amxmodx-es.com

Steam: Luchokoldo
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 08-26-2012 , 09:49   Re: [API] Register Task 1.1
#9

Quote:
Originally Posted by rak View Post
Update *-*
Después lo pruebo en el valebug
__________________
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
Old 09-10-2012, 16:11
Netsys
This message has been deleted by lucas_7_94. Reason: Quote to deleted post , spam , offtopic, doble post.
Old 09-10-2012, 16:18
dantemilitello
This message has been deleted by lucas_7_94. Reason: Quote to deleted post , spam , offtopic, doble post.
Old 09-10-2012, 16:19
nike!
This message has been deleted by nike!. Reason: sorry
Old 09-10-2012, 16:26
Geoslide
This message has been deleted by lucas_7_94. Reason: Quote to deleted post , spam , offtopic, doble post.
Old 09-10-2012, 16:26
dantemilitello
This message has been deleted by lucas_7_94. Reason: Quote to deleted post , spam , offtopic, doble post.
Old 09-10-2012, 16:42
dantemilitello
This message has been deleted by lucas_7_94. Reason: Quote to deleted post , spam , offtopic, doble post.
Old 09-10-2012, 19:41
Neeeeeeeeeel.-
This message has been deleted by lucas_7_94. Reason: Quote to deleted post , spam , offtopic, doble post.
Desktop
AlliedModders Donor
Join Date: Sep 2009
Location: C:\Users\Default\
Old 10-13-2012 , 09:46   Re: [API] Register Task 1.1
#10

Uh no había visto esto, está muy interesante
__________________
Massive Infection:: Piu-Games
Desktop is offline
 


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:19.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode