Localizar caixinha - L10motos - 17/10/2023
O que vocês acharam, funcional?
Código PHP: CMD:localizarcaixa(playerid, const params[]) { if(!IsPlayerLogged(playerid)) return 1; new Float:p[3]; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pTimerRobATM] != 0) GetPlayerPos(i, p[0], p[1], p[2]); } } SetPlayerCheckpoint(playerid, p[0], p[1], p[2], 2.0); SCM(playerid, COLOR_GREY, "debug"); return 1; }
RE: Localizar caixinha - pushline - 17/10/2023
Funcionar até funciona... Mas se tiver 50 caixas sendo roubado, ele só vai setar o checkpoint no último player que estiver roubando.
E não se esqueça de desativar o checkpoint ao entrar nele (DisablePlayerCheckpoint).
RE: Localizar caixinha - L10motos - 17/10/2023
(17/10/2023 16:39)pushline Escreveu: Mas se tiver 50 caixas sendo roubado, ele só vai setar o checkpoint no último player que estiver roubando.
Preciso ficar preocupado com isso? Como eu faço pra não sentar para o ultimo player, ser aleatório?
Me ajuda a otimizar, organizar esse codigo?
Código PHP: CMD:localizarcaixa(playerid, const params[]) { if(!IsPlayerLogged(playerid)) return 1; //if(!Police(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Você não é um policial para poder continuar."); //if(OnDuty[playerid] != 1) return SCM(playerid, COLOR_GREY, "Para continuar você precisa bater o seu cartão.");
new Float:p[3], vacancies = 0; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pTimerRobATM] != 0) GetPlayerPos(i, p[0], p[1], p[2]), vacancies++; } }
if(vacancies >= 1) { SetPlayerCheckpoint(playerid, p[0], p[1], p[2], 2.0); SCM(playerid, COLOR_GREY, "debug"); } else SCM(playerid, COLOR_GREY, "Não há roubo de caixas eletrônicos."); return 1; }
RE: Localizar caixinha - pushline - 17/10/2023
Código PHP: CMD:localizarcaixa(playerid, const params[]) { if(!IsPlayerLogged(playerid)) return 1; //if(!Police(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Você não é um policial para poder continuar."); //if(OnDuty[playerid] != 1) return SCM(playerid, COLOR_GREY, "Para continuar você precisa bater o seu cartão.");
new playersStealing = 0, randomPlayer[MAX_PLAYERS]; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && PlayerInfo[i][pTimerRobATM] != 0) { randomPlayer[i] = i; playersStealing++; } }
if(playersStealing > 0) { new targetid; for(new i; sizeof(randomPlayer); i++) { targetid = i; if(targetid == playerid || PlayerInfo[targetid][pTimerRobATM] == 0) continue;
break; }
new x, y, z; GetPlayerPos(targetid, x, y, z);
SetPlayerCheckpoint(playerid, x, y, z, 2.0); SCM(playerid, COLOR_GREY, "debug"); } else SCM(playerid, COLOR_GREY, "Não há roubo de caixas eletrônicos.");
return 1; }
Fiz rapidão, nem sei se funciona direito.
RE: Localizar caixinha - L10motos - 17/10/2023
[quote="pushline" pid="15807" dateline="1697574292"]
Código PHP: COMMAND:entrarorg(playerid, params[]){ if(!IsPlayerLogged(playerid)) return 1;
//if(!Police(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Você não é um policial para poder continuar."); //if(OnDuty[playerid] != 1) return SCM(playerid, COLOR_GREY, "Para continuar você precisa bater o seu cartão.");
new megastring[2000], string[256], cont = 0; format(string, sizeof(string), " \tOrganização:\n"); strcat(megastring, string);
for(new i = 0; i < MAX_PLAYERS; i++){ if(!IsPlayerConnected(i)) return 1;
for(new s = 0; s < sizeof(SBizzInfo); ++s){ if(PlayerToPoint(30.0, i, SBizzInfo[s][sbEntranceX], SBizzInfo[s][sbEntranceY], SBizzInfo[s][sbEntranceZ])){ if(!strcmp("caixa eletrônico", get_sbizz_typename(s), true) && PlayerInfo[i][pTimerRobATM] != 0){
showtheft[playerid][cont] = i; cont++;
new location[MAX_ZONE_NAME]; GetPlayer2DZoneEx(i, location, MAX_ZONE_NAME); format(string, sizeof(string), "%02d - %s\t(%s)\n", i, location, TeamName(gTeam[i])); strcat(megastring, string);
} } } } if(cont == 0) SCM(playerid, COLOR_GREY, "Não há roubo de caixas eletrônicos."); else ShowPlayerDialog(playerid, DIALOG_THEFT, DIALOG_STYLE_TABLIST_HEADERS, "Roubos disponíveis", megastring, "Confirmar", "Fechar"); return 1; //erro aqui }
Quando digito o comando não mostra nada, nada aparece...
RE: Localizar caixinha - leonardos08bt - 17/10/2023
Uma opção:
Caso tenha em uma variável a criação do caixa ( Caixa[...] = CreateObject(...); ):
Código: CMD:localizarcaixa(playerid, const params[]) {
if(!IsPlayerLogged(playerid))
return 1;
new idcx = -1;
if(sscanf(params, "d", idcx)) return SCM(playerid, -1, "/LocalizarCaixa [id]");
if(!IsValidObject(Caixa[idcx]) return SCM(playerid, -1, "Este caixa não existe");
//Verifique se o caixa está sendo roubado..
new Float:p[3];
GetObjectPos(Caixa[idcx], p[0], p[1], p[2]);
SetPlayerCheckpoint(playerid, p[0], p[1], p[2], 2.0);
SCM(playerid, COLOR_GREY, "debug");
return 1;
}
Esse código é o seguinte, o polícial* precisa saber o id do caixa que está sendo roubado, ele digita o ID e a posição do caixa é marcada em seu mapa, isso é apenas uma opção/ideia.
RE: Localizar caixinha - L10motos - 17/10/2023
Vocês foram reputados!
|