Player nгo congela ! ( ShowMenuForPlayer ) -
Skash - 05.08.2013
Depois de tentar, tentar e tentar, novamente estou aqui para pedir a ajuda de vocкs! :X
Й o seguinte, quando eu chego em um certo lugar e digito: "/profs"
Um menu й chamado e o player congela, atй ai tudo bem mas...
Quando eu aperto em algum item da lista, o player й descongelado ! // Esse й o problema
Jб tentei utilizar o TogglePlayerControllable(playerid, 0); e tambйm nгo obtive resultado.
#Comando que chama o Menu;
pawn Код:
if(strcmp("/profs", cmdtext, true) == 0 ||strcmp("/profissoes", cmdtext, true) == 0)
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);
if(PlayerToPoint(1.0, playerid, -2032.9119,-117.4352,1035.1719) || PlayerToPoint(1.0, playerid, 822.6138,1.7779,1004.1797) || PlayerToPoint(1.0, playerid, 1490.7373,1305.7906,1093.2964)||PlayerToPoint(1.0, playerid, -21.8211,-138.4398,1003.5469)||PlayerToPoint(1.0, playerid, 2309.3999,-8.4220,26.7422 )) {
ShowMenuForPlayer(profissoes, playerid);
TogglePlayerControllable(playerid, 0);//-2032.9119,-117.4352,1035.1719
SendClientMessage(playerid, -1, "| INFO | Selecione uma profissгo de acordo com o seu level!");
}
else {
SendClientMessage(playerid, Vermelho,"| ERRO | Vocк nгo estб em uma Agкncia de Empregos.");
}
return 1;
}
#Menu que й chamado;
pawn Код:
if(current == profissoes)
{
switch(row)
{
case 0: // Honestas
{
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(honestas, playerid);
TogglePlayerControllable(playerid, 0);
}
case 1: // Honestas 2
{
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(honestas2, playerid);
TogglePlayerControllable(playerid, 0);
}
case 2: // desonestas
{
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(desonestas, playerid);
TogglePlayerControllable(playerid, 0);
}
case 3: // transporte
{
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(transporte, playerid);
TogglePlayerControllable(playerid, 0);
}
case 4: // policia
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
if(dini_Int(filene(aname),"Punidop") > 0){
SendClientMessage(playerid,Vermelho,"Vocк esta punido e nao pode acessar este menu!");
TogglePlayerControllable(playerid, 1);
HideMenuForPlayer(profissoes, playerid);
return 1;
}
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(policia, playerid);
TogglePlayerControllable(playerid, 0);
}
case 5: // governo
{
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(governo, playerid);
TogglePlayerControllable(playerid, 0);
}
case 6: // exercitoo
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
if(dini_Int(filene(aname),"Punidop") > 0){
SendClientMessage(playerid,Vermelho,"Vocк esta punido e nao pode acessar este menu!");
TogglePlayerControllable(playerid, 1);
HideMenuForPlayer(profissoes, playerid);
return 1;
}
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(exercitoo, playerid);
TogglePlayerControllable(playerid, 0);
}
case 7: // mafiass
{
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(mafiass, playerid);
TogglePlayerControllable(playerid, 0);
}
case 8: // outraas
{
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(outraas, playerid);
TogglePlayerControllable(playerid, 0);
}
case 9: // Cancelar
{
TogglePlayerControllable(playerid, 1);
}
}
}
PS; O player se descongela ao clicar em qualquer item da lista antes de " governo ".
PSІ; Caso precise dos demais cуdigos, sу pedir ! (:
Abraзs!
Re: Player nгo congela ! ( ShowMenuForPlayer ) -
darkxdll - 05.08.2013
Hm... complicado , coloque um timer , tipo quando selecionar o item ai vem um timer e dpois de uns
milissegundos ou segundos vocк congela o player ...
Re: Player nгo congela ! ( ShowMenuForPlayer ) -
Skash - 05.08.2013
Opa, obrigado por responder !
Amigo, poderia me explicar como eu poderia fazer tal coisa ? Nгo sou nada experiente em pawn :X
Abraзs!
Re: Player nгo congela ! ( ShowMenuForPlayer ) -
darkxdll - 06.08.2013
Um exemplo de timer :
PHP код:
SetTimerEx("Congelar",1000,false,"i",playerid);
//Isto aqui irб chamar a funзгo Congelar depois de 1 segundo (1000 milissegundos) .
//funзгo congelar :
stock Congelar(playerid)
{
TogglePlayerControllable(playerid,0);
}
Agora faзa !
Re: Player nгo congela ! ( ShowMenuForPlayer ) -
Skash - 06.08.2013
Nгo sei se fiz exatamente certo mas fiz desse jeito:
pawn Код:
case 0: // Honestas
{
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(honestas, playerid);
SetTimerEx("Congelar",1000,false,"i",playerid);
}
E no final puis:
pawn Код:
stock Congelar(playerid)
{
TogglePlayerControllable(playerid,0);
}
Continua ainda com o erro :/
#Se errei me desculpe.
Abraзs!
Re: Player nгo congela ! ( ShowMenuForPlayer ) -
darkxdll - 06.08.2013
Aumente o tempo , coloque 5 segundos (5000 milissegundos) , se nгo der certo , acho que й bug da 0.3x :/
Re: Player nгo congela ! ( ShowMenuForPlayer ) -
Skash - 06.08.2013
Ainda continua man :/
Mas, eu nгo entendo porque todos items do menu apуs o item Policia ( case: 4 ) funcionam perfeitamente.
Obrigado por tentar ajudar, +Rept!
Abraзs!
Re: Player nгo congela ! ( ShowMenuForPlayer ) -
Skash - 06.08.2013
Up ( mals pelo double post )
Descobri que nessa parte aqui:
pawn Код:
case 5: // governo
{
HideMenuForPlayer(profissoes, playerid);
ShowMenuForPlayer(governo, playerid);
TogglePlayerControllable(playerid, 0);
}
Essa funзгo " ToglePlayerControllable(playerid, 0); nгo ta tendo efeito algum, apagando ou deixando o player continua congelado ( do jeito que eu queria que todos tivesse ).
Alguma ideia galera ?
Abraзs!
@Edit
Resolvido!
O problema estava aqui nesse codigo:
pawn Код:
if(current == habi,chabi)
{
switch(row)
{
case 0: // Spawn Prof
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, sizeof(aname));
format(file, sizeof(file), PASTA_CONTAS, aname);
new grana;
grana = GetPlayerGrana(playerid);
{
if(dini_Int(file,"HTerrestre") == 1){
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк jб possui uma Habilitaзгo Terrestre!");
return 1;
}
if(grana > 109){
GivePlayerGrana(playerid, -110);
SendClientMessage(playerid, Blue, "| INFO | Parabйns, vocк comprou uma Habilitaзгo Terrestre!");
dini_IntSet(file,"HTerrestre", 1);
TogglePlayerControllable(playerid, 1);
} else {
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк nгo tem dinheiro suficiente.");
}
}
}
case 1: // Spawn Prof
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, sizeof(aname));
format(file, sizeof(file), PASTA_CONTAS, aname);
new grana;
grana = GetPlayerGrana(playerid);
{
if(dini_Int(file,"HAerea") == 1){
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк jб possui uma Habilitaзгo Aйrea!");
return 1;
}
if(grana > 309){
GivePlayerGrana(playerid, -310);
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Blue, "| INFO | Parabйns, vocк comprou uma Habilitaзгo Aйrea!");
dini_IntSet(file,"HAerea", 1);
} else {
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк nгo tem dinheiro suficiente.");
}
}
}
case 2: // Spawn Prof
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, sizeof(aname));
format(file, sizeof(file), PASTA_CONTAS, aname);
new grana;
grana = GetPlayerGrana(playerid);
{
if(dini_Int(file,"HNautica") == 1){
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк jб possui uma Habilitaзгo Nбutica!");
return 1;
}
if(grana > 209){
GivePlayerGrana(playerid, -210);
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Blue, "| INFO | Parabйns, vocк comprou uma Habilitaзгo Nбutica!");
dini_IntSet(file,"HNautica", 1);
} else {
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк nгo tem dinheiro suficiente.");
}
}
}
case 3: // Spawn Prof
{
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, sizeof(aname));
format(file, sizeof(file), PASTA_CONTAS, aname);
new grana;
grana = GetPlayerGrana(playerid);
{
if(grana > 999){
GivePlayerGrana(playerid, -1000);
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Blue, "| INFO | Vocк conseguiu Porte de Armas Parabйns! Nгo faзa DM fora da favela.");
dini_IntSet(file,"Porte", 1);
} else {
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк nгo tem dinheiro suficiente.");
}
}
}
case 4: // Cancelar
{
TogglePlayerControllable(playerid, 1);
HideMenuForPlayer(habi, playerid);
}
}
}
return 1;
}
Sу fiz apaga-lo e tudo fico funcionando perfeitamente !
Abraзs! (: