04.02.2014, 01:37
Pessoal, podem me ensinar a usar o SetTimerEx?
SetTimerEx("minha_public", 1000, false, "s", "hello");
forward minha_public(str[]); public minha_public(str[]){
printf(str);
}
public OnPlayerCommandText(playerid, cmdtext[]){
if(!strcmp(cmdtext, "/meucmd", true)){
SetPVarInt(playerid, "Minhavariavel", 50);
return true;
}
return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == ID_SEU_DIALOG){
if(response){
printf("Vallor й: %i", GetPVarInt(playerid, "Minhavariavel"));
DeletePVar(playerid, "Minhavariavel");
}
}
return true;
}
public OnPlayerCommandText(playerid, cmdtext[]){
if(!strcmp(cmdtext, "/meucmd", true)){
// Criamos uma "PVar" (player variable) e armazenamos a seguinte frase "Olб, sou SuYaNw Lindo"
SetPVarString(playerid, "Minhavariavel", "Olб, sou SuYaNw Lindo");
return true;
}
return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
// Quando a callback "OnDialogResponse" for chamada, acontecerб oque estiver abaixo:
// Caso o id em questгo for i gual do ID_SEU_DIALOG, executarб o codigo abaixo
if(dialogid == ID_SEU_DIALOG){
// Caso ele clicou no primeiro botгo
if(response){
// Criamos uma array tendo vaga para 49 caracteres
// Muitos programadores erram nesta parte, porquк a contagem decimal comeзa do 1, porйm
// na programaзгo comeзa do 0...
new
string[50]
;
// Pegamos o valor da PVar "Minhavariavel" e passamos para "string" que criamos acima.
GetPVarString(playerid, "Minhavariavel", string, 50);
// Exibimos a string no console do servidor
printf("Quem й vocк?\n%s", string);
// Deletamos a PVar.
DeletePVar(playerid, "Minhavariavel");
}
}
return true;
}
Ok, deslcumpe-me
Minha duvida й: posso usar SetTimerEx para passar o valor de uma variavel do OnPlayerCommandText para a OnDiaogResponse? Se sim, como? |
#include <a_samp>
new my_value[MAX_PLAYERS];
#define DIALOG_ID 47
#define DIALOG_LINE_ID 47
main()
{
print("\n----------------------------------");
print(" test value by reference!");
print("----------------------------------\n");
OnPlayerCommandText(0,"/mycommand");
}
public OnGameModeInit(){return 1;}
public OnGameModeExit(){return 1;}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
print("My command started!");
my_value[playerid] = 58;
SetTimerEx("OnDialogResponse", 2500, true, "dddds", playerid, DIALOG_ID, 1, DIALOG_LINE_ID, "a");
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_ID) {
if(response) {
switch(listitem) {
case 0..5: print("Vocк clicou entre 0-5");
case DIALOG_LINE_ID: printf("Responde a linha 6 ^^ Valor passado:%d", my_value[playerid]);
}
} else return false;
return 1;
}
return 1;
}