[Ajuda] Problema contagem de segundos![AJUDA]
#1

Eu tenho um problema q й assim :

Tipo tem um sistema de duelo no meu gm, e nesse sistema a a contagem de segundos q durou este duelo porem acontece um bug chato assim vou explicar:

quando comeзa o duelo tem esse codigo :

Код:
Tempo = gettime();
e quando acaba ;

Код:
new TempoDoDuelo = gettime() - Tempo;
porem tipo da para criar varios duelos pelos players ao mesmo tempo intao se alguem comeзar outro duel enquanto um duelo ja esta ocorrendo os segundos sao resetados, tipo tem vezes q a pessoa comeзa um duelo bem na hora q o outro duelo acaba, dae da o mensagem do fim do duelo :

Код:
O "joagador1" Venceu "Jogador2" em 1 segundos.
tem como vcs me ajudarem ?
Reply
#2

vocк tem que usar matrizes.
Reply
#3

Vocк que bloquear os players a usarem o comando enquanto jб estiver tendo ou quer que vбrios players utilizem ao mesmo tempo?
Reply
#4

varios player usem ao mesmo tempo porem nao de esse bug chato kk
Reply
#5

alguem ?
Reply
#6

PHP код:
CMD:duelar(playeridparams[])
{
    new 
idplayerstring[124], aname[MAX_PLAYER_NAME];
    if(
sscanf(params"u"idplayer)) return SendClientMessage(playerid, -1"[ ERRO ] use: /duelar [id/nick do player]");
    if(
PlayerDuelo[playerid][playerid][EmDuelo] == 1) return SendClientMessage(playerid, -1"[ ERRO ] Vocк jб estб em um duelo !");
    if(
PlayerDuelo[idplayer][idplayer][EmDuelo] == 1) return SendClientMessage(playerid, -1"[ ERRO ] O player que vocк convidou jб estб em duelo!");
    
PlayerDuelo[idplayer][idplayer][ConviteDuelo] = playerid;
    
PlayerDuelo[idplayer][idplayer][Convidado] = 1;
    
GetPlayerName(playeridanamesizeof(aname));
    
format(stringsizeof(string), "[>] O(A) jogador(a) %s estб te convidando para duelar! use: /duelo aceitar ou /duelo recusar"aname);
    
SendClientMessage(idplayer, -1string);
    return 
1;
}
CMD:duelo(playeridparams[])
{
    new 
funcao[50], string[124], conversaoaname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
    if(
sscanf(params"s[50]"funcao)) return SendClientMessage(playerid, -1"[ ERRO ] use: /duelo [aceitar - recusar]");
    if(
strfind(funcao"aceitar"true) != -1)
    {
        if(
PlayerDuelo[playerid][playerid][EmDuelo] == 1) return SendClientMessage(playerid, -1"[ ERRO ] Vocк jб estб em um duelo !");
        
conversao PlayerDuelo[playerid][playerid][ConviteDuelo];
        if(
PlayerDuelo[playerid][playerid][Convidado] == 0) return SendClientMessage(playerid, -1"[ ERRO ] Vocк nгo foi convidado para nenhum duelo!");
        if(
PlayerDuelo[conversao][conversao][EmDuelo] == 1) return SendClientMessage(playerid, -1"[ ERRO ] O player que tinha te convidado jб estб duelando com outra pessoa!");
        
SetPlayerPos(playerid0000.00000000.00000000.0000);
        
SetPlayerPos(PlayerDuelo[playerid][playerid][ConviteDuelo], 0000.00000000.00000000.0000);
        
GetPlayerName(playeridanamesizeof(aname));
        
GetPlayerName(playeridpnamesizeof(pname));
        
format(stringsizeof(string), "[>] O(A) jogador(a) %s aceitou o convite de duelo !"aname);
        
SendClientMessage(PlayerDuelo[playerid][playerid][ConviteDuelo], -1string);
        
format(stringsizeof(string), "[>] O(A) jogador(a) %s e o(a) jogador(a) %s iniciaram um duelo !"anamepname);
        
SendClientMessageToAll(-1string);
        
SendClientMessage(playerid, -1"[>] Vocк aceitou o duelo, boa sorte !");
        
PlayerDuelo[playerid][playerid][Tempo] = gettime();
        
PlayerDuelo[conversao][conversao][Tempo] = gettime();
        return 
1;
    }
    if(
strfind(funcao"recusar"true) != -1)
    {
        if(
PlayerDuelo[playerid][playerid][Convidado] == 0) return SendClientMessage(playerid, -1"[ ERRO ] Vocк nгo foi convidado para nenhum duelo!");
        
GetPlayerName(playeridanamesizeof(aname));
        
format(stringsizeof(string), "[>] O(A) jogador(a) %s recusou o convite de duelo !"aname);
        
SendClientMessage(PlayerDuelo[playerid][playerid][ConviteDuelo], -1string);
        
SendClientMessage(playerid, -1"[>] Vocк recusou o convite de duelo!");
        return 
1;
    }
    return 
1;
}
//Final do duelo
PlayerDuelo[playerid][playerid][TempoDoDuelo] = (gettime() - PlayerDuelo[playerid][playerid][Tempo]); 
Reply
#7

eu nao quero um novo sistema de duelos '-'
Reply
#8

Quote:
Originally Posted by TatuTM
Посмотреть сообщение
eu nao quero um novo sistema de duelos '-'
Mas usa o dele como base para arrumar o seu.
Reply
#9

Quote:
Originally Posted by Ever_SH
Посмотреть сообщение
Mas usa o dele como base para arrumar o seu.
HSUAHSAUH foda que alйm de eu fazer o cara ainda fala que nгo quer um novo sistema.
Entгo continua com o seu todo bugado ai! tnc u.u
Reply
#10

lanзa uma variavel, mais facil..

Ex:
PHP код:
new usandoduelo//criando a variavel.
public OnPlayerDisconnect // ao desconectar o variavel retornarб a 0 = false.

usandoduelo 0;
}
public 
OnPlayerSpawn // quando acabar o duelo e o player spawnar no local onde voce colocou, o duelo vai liberar. 
{
usandoduelo 0;
}
if(!
strcmp(cmd"/duelar"true)) // quando o player usar o comando
{
if(
IsPlayerConnected(playerid)) // define que ele so pode usar conectado (se quiser, pode tirar.)
{   
if(
usandoduelo 0// se a variavel for maior que 0 ou seja = 1 ele irб fazer com que nao deixe ngm mais usar
{
SendClientMessage(playerid,COLOR_GRAD3,"Ja esta tendo um duelo, espere terminar!"); // mensagem pra quem quiser usar
return 1;
// resto da sua funзao do duelo
}
}
}
agora em cima desse codigo de quando inicia o duelo.
usandoduelo 1;
Tempo gettime();
//resto da funзao 
espero que ajude, caso falte algo, me lembre..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)