Re: Dъvidas Curtas #1 -
F1N4L - 19.07.2016
Код:
CMD:camera(playerid)
{
SetCameraBehindPlayer(playerid);
return 1;
}
Re: Dъvidas Curtas #1 -
RockstarL - 19.07.2016
Quote:
Originally Posted by F1N4L
Код:
CMD:camera(playerid)
{
SetCameraBehindPlayer(playerid);
return 1;
}
|
Nгo,nгo assim ,
bro.
Digo tipo
pawn Код:
CMD:camera(playerid,params[])
{
InterpolateCameraPos(playerid, 187.600982, -1791.727050, 119.087432, 193.731567, -1789.235473, 118.845245, 5000);
InterpolateCameraLookAt(playerid, 189.006942, -1790.279785, 114.512641, 195.057144, -1788.512817, 114.078620, 5000);
SetCameraBehindPlayer(playerid);
return 1;
}
Da forma que coloquei agora com a funзгo abaixo do Interpolate,o movimento nгo aparece, como faзo para deixa-lo tudo apenas no comando? Assim que o movimento terminar voltar para "CameraBehind"?
Re: Dъvidas Curtas #1 -
F1N4L - 20.07.2016
Quote:
Originally Posted by RockstarL
Nгo,nгo assim , bro.
Digo tipo
pawn Код:
CMD:camera(playerid,params[]) { InterpolateCameraPos(playerid, 187.600982, -1791.727050, 119.087432, 193.731567, -1789.235473, 118.845245, 5000); InterpolateCameraLookAt(playerid, 189.006942, -1790.279785, 114.512641, 195.057144, -1788.512817, 114.078620, 5000); SetCameraBehindPlayer(playerid); return 1; }
Da forma que coloquei agora com a funзгo abaixo do Interpolate,o movimento nгo aparece, como faзo para deixa-lo tudo apenas no comando? Assim que o movimento terminar voltar para "CameraBehind"?
|
Pra comeзar vc nгo estб usando parвmetros, entгo remova.
Outro detalhe й que vc nгo raciocinou no que seu cуdigo estб fazendo, olhe:
InterpolateCameraPos -> primeira aзгo
InterpolateCameraLookAt -> segunda aзгo
SetCameraBehindPlayer -> terceira aзгo
O comando vai executar as trкs funзхes uma apуs a outra seguindo a ordem colocada por vc.
Acredito que criar um timer sem repetiзгo e dentro deste colocar a funзгo SetCameraBehindPlayer, mas claro que deve calcular o tempo necessбrio para execuзгo do movimento da cвmera atй o final.
Re: Dъvidas Curtas #1 -
RockstarL - 20.07.2016
Quote:
Originally Posted by F1N4L
Pra comeзar vc nгo estб usando parвmetros, entгo remova.
Outro detalhe й que vc nгo raciocinou no que seu cуdigo estб fazendo, olhe:
InterpolateCameraPos -> primeira aзгo
InterpolateCameraLookAt -> segunda aзгo
SetCameraBehindPlayer -> terceira aзгo
O comando vai executar as trкs funзхes uma apуs a outra seguindo a ordem colocada por vc.
Acredito que criar um timer sem repetiзгo e dentro deste colocar a funзгo SetCameraBehindPlayer, mas claro que deve calcular o tempo necessбrio para execuзгo do movimento da cвmera atй o final.
|
Й nуzes, brigadгo.
Re: Dъvidas Curtas #1 -
moura98 - 20.07.2016
duvida rapida
porque as vezes quando me dгo rep um quadrado fica azul e nao verde e nao conta nas minhas reputaзхes?
Re: Dъvidas Curtas #1 -
F1N4L - 20.07.2016
Te dei +3 rep. Ta mais feliz agora?
Re: Dъvidas Curtas #1 -
Raphaael - 20.07.2016
Quote:
Originally Posted by F1N4L
Te dei +3 rep. Ta mais feliz agora?
|
Eu tou triste, poderia me dar 3 tbm?
Re: Dъvidas Curtas #1 -
Dayvison_ - 20.07.2016
@moura98 Por que o membro que te deu reputaзгo tem menos de 100 posts.
Respuesta: Dъvidas Curtas #1 -
OverKiller - 21.07.2016
Alguйm poderia fazer o um cуdigo em zcmd o seguinte:
/admins ae aparecia o lista de admins online.
Re: Respuesta: Dъvidas Curtas #1 -
moura98 - 21.07.2016
Quote:
Originally Posted by OverKiller
Alguйm poderia fazer o um cуdigo em zcmd o seguinte:
/admins ae aparecia o lista de admins online.
|
altere as variaveis para a sua.
PHP код:
CMD:admins(playerid, params[])
{
new string[64], name[24];
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][admin] == 1 || PlayerInfo[i][admin] == 2 || PlayerInfo[i][admin] == 3)
{
GetPlayerName(i, name, 24);
format(string, 64, "%s\n", name);
ShowPlayerDialog(playerid, dialog_admins, DIALOG_STYLE_MSGBOX, "{FFA500}Administradores Online: {FFFFFF}", string, "OK","");
}
else
{
ShowPlayerDialog(playerid, dialog_admins, DIALOG_STYLE_MSGBOX, "{FFA500}Administradores Online: {FFFFFF}","{FF0000}Nao tem Administradores Online!{FFFFFF}", "OK","");
}
}
}
return 1;
}
Re: Respuesta: Dъvidas Curtas #1 -
F1N4L - 21.07.2016
Quote:
Originally Posted by moura98
altere as variaveis para a sua.
PHP код:
CMD:admins(playerid, params[])
{
new string[64], name[24];
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][admin] == 1 || PlayerInfo[i][admin] == 2 || PlayerInfo[i][admin] == 3)
{
GetPlayerName(i, name, 24);
format(string, 64, "%s\n", name);
[COLOR="Red"]ShowPlayerDialog(playerid, dialog_admins, DIALOG_STYLE_MSGBOX, "{FFA500}Administradores Online: {FFFFFF}", string, "OK","");[/COLOR]
}
else
{
[COLOR="red"]ShowPlayerDialog(playerid, dialog_admins, DIALOG_STYLE_MSGBOX, "{FFA500}Administradores Online: {FFFFFF}","{FF0000}Nao tem Administradores Online!{FFFFFF}", "OK","");[/COLOR]
}
}
}
return 1;
}
|
Colocar ShowPlayerDialog em loop?
Jб viu o que isso resulta?
Re: Respuesta: Dъvidas Curtas #1 -
moura98 - 21.07.2016
Quote:
Originally Posted by F1N4L
Colocar ShowPlayerDialog em loop?
Jб viu o que isso resulta?
|
nao, estou sem tester para testar meus sistemas, vlw por avisar vou tentar melhorar este comando!
Re: Respuesta: Dъvidas Curtas #1 -
F1N4L - 21.07.2016
Quote:
Originally Posted by moura98
nao, estou sem tester para testar meus sistemas :/
|
Vamos entender a lуgica de um sistema desses:
Код:
CMD:admins(playerid, params[])
{
new
string[400], // responsavel por armazenar os nomes concatenados dos admins
name[24], // responsavel por armazenar o nome dos admins
AdminCount // responsavel por contar os admins online
;
for(new i; i < MAX_PLAYERS; i++) // loop
{
if(IsPlayerConnected(i)) // dб continuidade somente nos que estгo online
{
if(PlayerInfo[i][admin] > 0 && !IsPlayerAdmin(i)) // Verifica se й admin e nгo RCON
{
GetPlayerName(i, name, 24); // geta o nome
strcat(string, "[ADMIN] %s\n", name); // faz a concatenaзгo
++ AdminCount; // Conta os admins online
}
else if(IsPlayerAdmin(i)) // Verifica se й RCON independente se for admin ou nгo.
{
GetPlayerName(i, name, 24); // geta o nome
strcat(string, "[RCON] %s\n", name); // faz a concatenaзгo
++ AdminCount; // Conta os admins online
}
}
}
if(AdminCount > 0) ShowPlayerDialog(playerid, dialog_admins, DIALOG_STYLE_MSGBOX, "{FFA500}Administradores Online: {FFFFFF}", string, "OK",""); // se houver admins on
else ShowPlayerDialog(playerid, dialog_admins, DIALOG_STYLE_MSGBOX, "{FFA500}Administradores Online: {FFFFFF}", "Nгo hб admins online no momento!", "OK",""); // se nгo houver admins on
return 1;
}
Nгo testei, mas tenho 99% de certeza que funciona.
Re: Dъvidas Curtas #1 -
CaioTJF - 22.05.2017
Quote:
Originally Posted by AzulimZW
Fiquei muito tempo sem programar Pawn, cerca de 2 anos. Porйm agora estou voltando e queria saber quais estгo sendo os processadores de comandos mais rбpidos atualmente? (antigamente eu usava o y_cmd)
E qual tб sendo a melhor include de salvamento para banco de dados, mudou alguma coisa na sscanf? Vou criar uma gamemode do 0 e quero saber dos mais atuais.
|
Processador de comando mais rбpido creio que seja Pawn.CMD.
Banco de dados й SQLite ou MySQL.
sscanf mudou pouca coisa.
Depois dб uma olhada nessa GM:
https://sampforum.blast.hk/showthread.php?tid=634087
Utilizei as includes / plugins mais atualizadas.
Re: Dъvidas Curtas #1 -
F1N4L - 29.05.2017
Alguйm jб testou o novo MySQL Workbench? Parece ser bacana!
Fica a dica aн a quem curte novidade e/ou quem gosta de trabalhar com MySQL...
http://www.devmedia.com.br/introduca...orkbench/25939
@OFF
Desculpa, errei o tуpico.
Re: Dъvidas Curtas #1 -
FanonRiouDiou - 16.06.2017
Estou com erro neste cуdigo. A tabela de itens que crio parece estar certa.
Code:
new TabelaItens[][2][64] =
{
{355, "AK-47"}
};
public OnGameModeInit()
{
new Texto[32];
format(Texto,sizeof(Texto),"%i\n%s", TabelaItens[0][0], TabelaItens[0][1]);
Create3DTextLabel(Texto, -1, 0.0, 0.0, 0.0, 25.0, 0 ,0);
CreatePickup(TabelaItens[0][0], 1, 0.0, 0.0, 0.0, 0);
return 1;
}
O problema й o erro na hora de criar o pickup , ele nгo reconhece o "TabelaItens[0][0]" como um ID de arma (Modelo).
Resultando nesse erro.
Code:
error 035: argument type mismatch (argument 1)
Alguйm me indica a correзгo para o erro por favor.
Re: Dъvidas Curtas #1 -
MultiKill - 16.06.2017
Quote:
Originally Posted by FanonRiouDiou
Estou com erro neste cуdigo. A tabela de itens que crio parece estar certa.
Code:
new TabelaItens[][2][64] =
{
{355, "AK-47"}
};
public OnGameModeInit()
{
new Texto[32];
format(Texto,sizeof(Texto),"%i\n%s", TabelaItens[0][0], TabelaItens[0][1]);
Create3DTextLabel(Texto, -1, 0.0, 0.0, 0.0, 25.0, 0 ,0);
CreatePickup(TabelaItens[0][0], 1, 0.0, 0.0, 0.0, 0);
return 1;
}
O problema й o erro na hora de criar o pickup , ele nгo reconhece o "TabelaItens[0][0]" como um ID de arma (Modelo).
Resultando nesse erro.
Code:
error 035: argument type mismatch (argument 1)
Alguйm me indica a correзгo para o erro por favor.
|
PHP Code:
new TabelaItens[][2][64] =
{
{355, "AK-47"}
};
O cуdigo acima vai criar uma array de 3 dimensхes, a primeira dimensгo com 1 cйlulas somente, a segunda com duas dimensхes e a terceira com 64.
Ao criar o seu cуdigo ao acessar o нndice 0 da segunda dimensгo vocк vai encontrar a terceira com 64 cйlulas e nгo somente sу uma como vocк pensou ao fazer este cуdigo.
dforum.png
Resumindo dentro da segunda dimensгo no нndice 0 (TabelaItens[0][0]) existe uma segunda array com 64 cйlulas e isso vai existir em todos o нndices existentes na segunda dimensгo.
Para contornar isso existe os
enumeradores que permitem
"criar" uma array dentro de um нndice.
PHP Code:
enum e{
numero,
string[64]
}
new TabelaItens[][e] =
{
{355, "AK-47"}
};
//Exemplo
printf("%d : %s", TabelaItens[0][numero], TabelaItens[0][string]);
//Saнda: 355 : AK-47
O cуdigo acima nada mais do que cria uma array com 2 dimensхes a primeira com uma cйlula e a segunda com 65 cйlulas, a primeira pertencendo a numero e de 1 a 64 pertencendo a string.
Espero que tenha entendido, mas caso nгo entenda pois minha explicaзгo esta meio confusa brinque com arrays e enumeradores:
PHP Code:
enum e{
numero,
string[64]
}
new TabelaItens[][e] =
{
{355, "AK-47"}
};
new TabelaItens2[][2][64] =
{
{355, "AK-47"}
};
main(){
printf("%d %c%c", TabelaItens[0][e:0], TabelaItens[0][e:1], TabelaItens[0][e:2]);
}
Re: Dъvidas Curtas #1 -
FanonRiouDiou - 16.06.2017
+rep MultiKill
A confusгo era realmente no "esqueleto" da array. Entendi perfeitamente e jб corrigi o problema, obrigado pela explicaзгo detalhada.
Agora tenho outra pequena duvida:
retornar 0 para um jogador Admin em OnPlayerUpdate farб ele ver todos mas ninguйm ver ele?
Isso seria ъtil para o Admin "andar invisivel" pelo mapa no mesmo Virtual World.
Re: Dъvidas Curtas #1 -
ViniBorn - 16.06.2017
Quote:
Originally Posted by FanonRiouDiou
+rep MultiKill
A confusгo era realmente no "esqueleto" da array. Entendi perfeitamente e jб corrigi o problema, obrigado pela explicaзгo detalhada.
Agora tenho outra pequena duvida: retornar 0 para um jogador Admin em OnPlayerUpdate farб ele ver todos mas ninguйm ver ele?
Isso seria ъtil para o Admin "andar invisivel" pelo mapa no mesmo Virtual World.
|
Se bem me lembro, isso vai fazer com que ele fique com status de pausado, mas nгo fica invisнvel.
Re: Dъvidas Curtas #1 -
Kuddy - 16.06.2017
Quote:
Originally Posted by FanonRiouDiou
+rep MultiKill
A confusгo era realmente no "esqueleto" da array. Entendi perfeitamente e jб corrigi o problema, obrigado pela explicaзгo detalhada.
Agora tenho outra pequena duvida: retornar 0 para um jogador Admin em OnPlayerUpdate farб ele ver todos mas ninguйm ver ele?
Isso seria ъtil para o Admin "andar invisivel" pelo mapa no mesmo Virtual World.
|
Sim, jб usei
return 0; para parar de atualizar a posiзгo jogador em um anticheat.