03.10.2015, 05:35
Tenho uma duvida em relaзao a variaveis globais,darei um exemplo:
Dada a variavel:
e o seguinte comando sendo que para criar a festa deve-se convidar ao menos 1 jogador de inicio:
e o seguinte dialog vai para o jogador convidado:
Minha duvida й a seguinte,levando em conta que PARTY_CREATOR й uma variavel global registrando o id do criador da festa se outro jogador usar o mesmo comando ao mesmo tempo ou mesma que ja em tempo diferente,pode ocorrer algum erro ao pegar o id do lider?
Minha opniao: Acho que nгo devido ao fato do comando nгo ser usado exatamente ao mesmo tempo,assim nao registrando uma ID de um outro jogador por ventura.Logo,se um jogador usar o comando,a variavel global PARTY_CREATOR registra o id do lider e logo que o outro jogador utilizar o mesmo comando,ela registra a do outro jogador.Mas mesmo assim ainda fico com duvida,se der um leve atraso no processamento do codigo,nem que seja de 1 segundo e registrar encima do comando do outro.Isso seria mesmo possivel?
OBS: 2 Solicitaзхes de festa й enviada ao mesmo tempo no dialog,se um dos jogadores responder primeiro a variavel global no dialog iria mudar e causaria um erro no lider do grupo.
Teria alguma forma mais segura de fazer esse comando?
Dada a variavel:
Код HTML:
new PARTY_CREATOR;
Код HTML:
CMD:criarfesta(playerid, params[]) { new INVITE_MEMBER_PARTY; if(sscanf(params, "u",INVITE_MEMBER_PARTY)) return SendClientMessage(playerid,-1,"Use: /criarfesta [id do membro]"); PARTY_CREATOR = playerid; ShowPlayerDialog(INVITE_MEMBER_PARTY,DIALOG_PARTY,DIALOG_STYLE_MSGBOX,"CONVITE PARA FESTA","CONVITE PARA FESTA","Aceitar","Recusar"); return true; }
Код HTML:
public party_DialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DIALOG_PARTY: { if(!response) return SendClientMessage(PARTY_CREATOR,-1,"[FESTA] O membro recusou entrar em sua festa!"); SetPlayerTeam(PARTY_CREATOR,1); //Seta o time do jogador lider da festa SetPlayerTeam(playerid,1); //Seta o time do jogador convidado SendClientMessage(PARTY_CREATOR,-1,"[FESTA] A festa foi criada,use: /ajudafesta para ver os comandos de lider."); SendClientMessage(playerid,-1,"[FESTA] Voce entrou em uma festa."); return 1; }
Minha opniao: Acho que nгo devido ao fato do comando nгo ser usado exatamente ao mesmo tempo,assim nao registrando uma ID de um outro jogador por ventura.Logo,se um jogador usar o comando,a variavel global PARTY_CREATOR registra o id do lider e logo que o outro jogador utilizar o mesmo comando,ela registra a do outro jogador.Mas mesmo assim ainda fico com duvida,se der um leve atraso no processamento do codigo,nem que seja de 1 segundo e registrar encima do comando do outro.Isso seria mesmo possivel?
OBS: 2 Solicitaзхes de festa й enviada ao mesmo tempo no dialog,se um dos jogadores responder primeiro a variavel global no dialog iria mudar e causaria um erro no lider do grupo.
Teria alguma forma mais segura de fazer esse comando?