PDA

View Full Version : [Ajuda] Dúvidas Curtas #1


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [35] 36

Sky™
22/01/2018, 11:36 AM
Saudações!

Existe algum método de substituir o GetPlayerName, Em vez de ficar declarando uma new e ficar usando o mesmo?


GetName(playerid) {
static
_PlayerName[MAX_PLAYER_NAME]
;
GetPlayerName(playerid, _PlayerName, MAX_PLAYER_NAME);
return _PlayerName;
}

printf("Hello my name is: %s", GetName(playerid));



Algumas pessoas recorrem também ao uso de uma macro para isso, bem simples também.

Cleyson
22/01/2018, 06:09 PM
Saudações!




GetName(playerid) {
static
_PlayerName[MAX_PLAYER_NAME]
;
GetPlayerName(playerid, _PlayerName, MAX_PLAYER_NAME);
return _PlayerName;
}

printf("Hello my name is: %s", GetName(playerid));



Algumas pessoas recorrem também ao uso de uma macro para isso, bem simples também.

Prefiro criar uma variável global formata-la quando o player se conectar e depois só usar ela xD

F1N4L
22/01/2018, 06:28 PM
Prefiro criar uma variável global formata-la quando o player se conectar e depois só usar ela xD

... ²

TheCrazyy
23/01/2018, 09:38 AM
por que ta dando (467) : warning 213: tag mismatch

(linha 467)ShowPlayerDialog(playerid, DIALOG_SPAWN_CIDADE, DIALOG_STYLE_TABLIST_HEADERS, "Escolha uma Cidade",
"Cidade\tLocal\n\
Los Santos\tAeroporto Los Santos\n\
San Fierro\tAeroporto San Fierro\n\
Las Venturas\tAeroporto Las Venturas",
"Escolher", "Cancelar");

TheCrazyy
23/01/2018, 07:33 PM
Passei o seu código para o meu editor e compilou normalmente.

Apenas tirei a MACRO para ser passada como um valor. (DIALOG_SPAWN_CIDADE)
/* Lembrando, coloquei um valor aleatório, caso for utilizar este valor, editar na callabck OnDialogResponse.
Ex:
public OnDialogResponse(...);
{
if(dialogid == valor) { }
} */

public OnPlayerConnect(playerid)
{
ShowPlayerDialog(playerid, 1515, DIALOG_STYLE_TABLIST_HEADERS, "Escolha uma Cidade",
"Cidade\tLocal\n\
Los Santos\tAeroporto Los Santos\n\
San Fierro\tAeroporto San Fierro\n\
Las Venturas\tAeroporto Las Venturas",
"Escolher", "Cancelar");
return true;
}

Meus Dialogs ficam em uma enum , como faço pra dar certo ? estou usando esse dialog depois que o player logar , então aparece para onde ele spawna.

Marllun
25/01/2018, 01:05 AM
#define DIALOG_SPAWN_CIDADE 5436

public OnPlayerConnect(playerid)
{
ShowPlayerDialog(playerid, DIALOG_SPAWN_CIDADE , DIALOG_STYLE_TABLIST_HEADERS, "Escolha uma Cidade",
"Cidade\tLocal\n\
Los Santos\tAeroporto Los Santos\n\
San Fierro\tAeroporto San Fierro\n\
Las Venturas\tAeroporto Las Venturas",
"Escolher", "Cancelar");
return true;
}

BuDweiSeR
25/01/2018, 03:26 PM
Lí um tutorial em que Strins é mais rapido que format, Se Strins é mais rapido que format por que quase ninguem usa? E o que é EOS?

F1N4L
25/01/2018, 03:42 PM
Lí um tutorial em que Strins é mais rapido que format, Se Strins é mais rapido que format por que quase ninguem usa? E o que é EOS?

Strins adiciona uma string dentro de outra string (aqui (http://wiki.sa-mp.com/wiki/Strins))
Format formata uma string com base em vários parâmetros, diferente de strins.

Strins é basicamente como strcat, porém você adiciona uma string na posição que você quiser, diferente de strcat que apenas adiciona string no final da outra sem escolher a posição.

EOS = End Of String
Também pode ser '\0' (com aspas simples)

BuDweiSeR
26/01/2018, 12:34 PM
new Nome[MAX_PLAYERS][24]; //Variável global


//Na public OnPlayerConnect.

GetPlayerName(playerid,Nome[playerid],24); //Caso tenha um comando de trocar o nome do player coloque isso

//Modo de uso Nome[playerid].


Posso fazer isto com String também? Como seria?

F1N4L
26/01/2018, 03:13 PM
Posso fazer isto com String também? Como seria?

Antes de mais nada, um comparativo.

Exemplo:


//format

new str[19];
new nome[8] = "jubileu";

format(str, sizeof str, "Meu nome é %s", nome);



//strins

new str[19];
new nome[8] = "jubileu";

strcat(str, "Meu nome é ");
strins(str, nome, 11);


A primeira alternativa é mais rápida. Isso porque na segunda você está usando duas funções e ambas estão concatenando.
Quando usado SOMENTE strins acaba por se tornar mais rápido sim, porém pouquíssima coisa.

Há casos e casos e na maior parte destes eu recomendo format. Acredito que perder alguns ms vale mais apena em se tratando de mensagens, isso porque com strins você precisa contar o número de caracteres e posicionar outra string corretamente para não ficar "perdida".

Tanto que você pode notar o exemplo dado na wiki. O exemplo adiciona uma TAG no nome do jogador, é melhor do que formatar!
Como eu disse, para certos casos é sim útil, mas não dá para generalizar.

BuDweiSeR
28/01/2018, 01:28 AM
Como colocar Imagem da Skin do Player na tela de Login?
Exemplo entrei no jogo comprei outra skin ID 230 por exemplo, Daí ao player Logar aparece a skin ID 230, Na tela de Login?

Marllun
28/01/2018, 01:29 AM
http://wiki.sa-mp.com/wiki/TextDrawSetPreviewModel


TextDrawSetPreviewModel(NomeTextDraw, ID_Do_Modelo);

GuilhermeW
29/01/2018, 11:36 AM
Teria como criar uma "whitelist" de caracteres para a senha?
Exemplo: Só permitir que o jogador digite de a a z, caso seja outro caracter, não deixa, eu tentei fazer com strfind mas depois percebi que era ao contrário do que eu queria.

F1N4L
29/01/2018, 11:44 AM
Teria como criar uma "whitelist" de caracteres para a senha?
Exemplo: Só permitir que o jogador digite de a a z, caso seja outro caracter, não deixa, eu tentei fazer com strfind mas depois percebi que era ao contrário do que eu queria.


isLetter(const string[])
{
new bool:is_letter;

for(new i = 0; i < strlen(string); ++ i)
{
switch(string[i])
{
case 'a'..'z', 'A'..'Z': is_letter = true;
default: return false;
}
}
return is_letter;
}

MBJ
29/01/2018, 11:45 AM
Teria como criar uma "whitelist" de caracteres para a senha?
Exemplo: Só permitir que o jogador digite de a a z, caso seja outro caracter, não deixa, eu tentei fazer com strfind mas depois percebi que era ao contrário do que eu queria.

Talvez isso ajude

for(new i; i < strlen(text); i++) {
if(text[i] > 'z' || text[i] < 'a') {
//digitou algo que não é uma letra
}
}

GuilhermeW
29/01/2018, 11:56 AM
Na verdade estou tentando fazer o seguinte:
Criar uma variável que terá todas as letras permitidas. Ex:
new PasswordChars[][] =
{
"a",
"b",
"c"
};
Pois quero definir quais poderiam ser usados nos códigos acima, seria possível?

F1N4L
29/01/2018, 12:39 PM
Na verdade estou tentando fazer o seguinte:
Criar uma variável que terá todas as letras permitidas. Ex:
new PasswordChars[][] =
{
"a",
"b",
"c"
};
Pois quero definir quais poderiam ser usados nos códigos acima, seria possível?

Pequena "gambi" para pegar um caractere:

isValidPChar(const string[])
{
new pass_len = sizeof(PasswordChars);
new bool:is_valid;
new str[2];

for(new i = 0; i < strlen(string); ++ i)
{
is_valid = false;

for(new x = 0; x < pass_len; ++ x)
{
format(str, sizeof str, "%c", string[i]);
if(strcmp(str, PasswordChars[x][0], false) == 0) is_valid = true;
}

if(!is_valid) return false;
}
return true;
}

Sky™
29/01/2018, 03:08 PM
Saudações !

Prefiro criar uma variável global formata-la quando o player se conectar e depois só usar ela xD

Eu uso desta forma, me reservei desta hipótese apenas porque ele perguntou apenas como faria a função que indiquei não a forma melhor recomendada, dei apenas o que ele pediu. :mrgreen:

TheCrazyy
31/01/2018, 02:34 PM
estou fuçando uma gm aki , tem uma func. chamada "RewardPlayer" , alguém pode me dizer pra que serve ? pois não achei ela definida em local algum. (é uma stock , public ou oque?).

Gguiz
31/01/2018, 02:42 PM
estou fuçando uma gm aki , tem uma func. chamada "RewardPlayer" , alguém pode me dizer pra que serve ? pois não achei ela definida em local algum. (é uma stock , public ou oque?).

RewardPlayer é tipo um GivePlayerMoney porém adicionando/retirando tanto dinheiro quanto score.

Ex de uso:


cmd:teste(playerid)
{
SendClientMessage(playerid, -1, "Parabéns, você acaba de ganhar R$ 300 reais e 20 score.");
RewardPlayer(playerid, 300, 20);
return 1;
}

TheCrazyy
31/01/2018, 02:47 PM
RewardPlayer é tipo um GivePlayerMoney porém adicionando/retirando tanto dinheiro quanto score.

Ex de uso:


cmd:teste(playerid)
{
SendClientMessage(playerid, -1, "Parabéns, você acaba de ganhar R$ 300 reais e 20 score.");
RewardPlayer(playerid, 300, 20);
return 1;
}

Mais onde fica definido essas paradas do RewardPlayer?

Cycle
31/01/2018, 02:49 PM
estou fuçando uma gm aki , tem uma func. chamada "RewardPlayer" , alguém pode me dizer pra que serve ? pois não achei ela definida em local algum. (é uma stock , public ou oque?).
RewardPlayer(um comando que seta uma recompensa) é uma função que setará dinheiro e score ao jogador.

Exemplo (Caso não esteja correto, me corrijam, nunca vi essa função, apenas fui pesquisando e analisando):

#include <a_samp>
#include <pawn.cmd>

stock RewardPlayer(playerid, money_qnt, score)
{
GivePlayerMoney(playerid, money_qnt);
SetPlayerScore(playerid, score);
return true;
}

CMD:yeah(playerid)
{
SendClientMessage(playerid, -1, "Recebido 1000 de dinheiro e 50 score.");
RewardPlayer(playerid, 1000, 50);
return true;
}

Gguiz
31/01/2018, 02:50 PM
Mais onde fica definido essas paradas do RewardPlayer?

Em algum lugar do seu gamemode, eu não o conheço, então não posso lhe da essa informação.

Abraços!

TheCrazyy
31/01/2018, 02:52 PM
RewardPlayer(um comando que seta uma recompensa) é uma função que setará dinheiro e score ao jogador.

Exemplo (Caso não esteja correto, me corrijam, nunca vi essa função, apenas fui pesquisando e analisando):

#include <a_samp>
#include <pawn.cmd>

stock RewardPlayer(playerid, money_qnt, score)
{
GivePlayerMoney(playerid, money_qnt);
SetPlayerScore(playerid, score);
return true;
}

CMD:yeah(playerid)
{
SendClientMessage(playerid, -1, "Recebido 1000 de dinheiro e 50 score.");
RewardPlayer(playerid, 1000, 50);
return true;
}


Ah , agora acho que entendi .

Grato!

BuDweiSeR
01/02/2018, 12:40 PM
Bom, Galera estou com uma dúvida, Quando devo usar variavel Static ou sempre posso usa-lá? Lí uns tutoriais e não entendi muito bem seu fucionamento, Quando local não é destruida, Como assim?

Cycle
01/02/2018, 01:05 PM
Bom, Galera estou com uma dúvida, Quando devo usar variavel Static ou sempre posso usa-lá? Lí uns tutoriais e não entendi muito bem seu fucionamento, Quando local não é destruida, Como assim?
A variável "static" só é acessível no script em que foi criada. As variáveis estáticas locais mantém o seu valor.
Ex:
static var = 1;
for(new i = 0; i < var; var++)
{
if(var == 2) return var++;
if(var == 3) return var++;
if(var == 4) return var++;
if(var == 5) break;
printf("O valor de var está posicionado em %d. (var = %d || i = %d)", var, var, i);
}
Mais uma coisa, é que se você criou uma variável "static" na include, não vai ter conflitos com outra variável do mesmo nome em um GM ou FS.

Ex:
/* In GameMode: */

new var[...];

/* In Include: */

static var[...];

SpikeCompiler
01/02/2018, 08:37 PM
Galera, sabem me dizer porque quando crio meu personagem e quando clico nele não funciona mas nada nesse gm? http://forum.sa-mp.com/showthread.php?t=538107

BuDweiSeR
03/02/2018, 11:30 PM
Galera uma dúvida nas Loops, Se uma variavél tem por valor padrão 0 por que nas loops for, Declaram da seguinte maneira:
for(new i = 0; i < 10; i++)//new i = 0 ? Sabendo que o valor dela já é 0.

E Alguém poderia explicar o modo de uso da Loop " foreach ", Como fuciona á mesma? E quando usa-lás?

foreach(new i : Player) //Player seria o mesmo que MAX_PLAYERS?

SammyJ
04/02/2018, 12:43 AM
Galera uma dúvida nas Loops, Se uma variavél tem por valor padrão 0 por que nas loops for, Declaram da seguinte maneira:
for(new i = 0; i < 10; i++)//new i = 0 ? Sabendo que o valor dela já é 0.

E Alguém poderia explicar o modo de uso da Loop " foreach ", Como fuciona á mesma? E quando usa-lás?

foreach(new i : Player) //Player seria o mesmo que MAX_PLAYERS?

No primeiro modo ele percorrerá do 0 ao 9.

No segundo modo ele percorrerá somente os ids online. suponhando que os ids 1, 5, 9, 10 esteja online, o loop só passará pelos ids 1,5,9,10

BuDweiSeR
04/02/2018, 01:45 AM
Obrigado, Tenho outra dúvida.

Como coloco o nome do Player no titulo de uma dialog, Fiz este exemplo mas deu uns Warning:

SendClientMessage(playerid, -1, "Senha Incorreta");
new Horas, Minutos, Segundos, Dia, Mes, Ano;
gettime(Horas, Minutos, Segundos);
getdate(Dia, Mes, Ano);
format(Dialog, sizeof(Dialog),"{FFFFFF}»%02d:%02d:%02d - %02d/%02d/%02d\n\n{00FF00}» Informe sua senha para efetuar o Login:", Horas, Minutos, Segundos, Dia, Mes, Ano);
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, "%s", Dialog, "Logar", "Cancelar", PlayerInfo[playerid][pName]);

Cycle
04/02/2018, 01:57 AM
Obrigado, Tenho outra dúvida.

Como coloco o nome do Player no titulo de uma dialog, Fiz este exemplo mas deu uns Warning:

SendClientMessage(playerid, -1, "Senha Incorreta");
new Horas, Minutos, Segundos, Dia, Mes, Ano;
gettime(Horas, Minutos, Segundos);
getdate(Dia, Mes, Ano);
format(Dialog, sizeof(Dialog),"{FFFFFF}»%02d:%02d:%02d - %02d/%02d/%02d\n\n{00FF00}» Informe sua senha para efetuar o Login:", Horas, Minutos, Segundos, Dia, Mes, Ano);
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, "%s", Dialog, "Logar", "Cancelar", PlayerInfo[playerid][pName]);
Acredito que pra a variável enumerada: "PlayerInfo" já está inserida com a nomenclatura de "pName", já deve estar setada com o valor de nick-name do jogador.

Então, veja se dessa forma funciona:
SendClientMessage(playerid, -1, "Senha Incorreta");
new Horas, Minutos, Segundos, Dia, Mes, Ano, fmt[25];
gettime(Horas, Minutos, Segundos);
getdate(Dia, Mes, Ano);
format(fmt, sizeof(fmt), "%s", PlayerInfo[playerid][pName]);
format(Dialog, sizeof(Dialog),"{FFFFFF}»%02d:%02d:%02d - %02d/%02d/%02d\n\n{00FF00}» Informe sua senha para efetuar o Login:", Horas, Minutos, Segundos, Dia, Mes, Ano);
ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, fmt, Dialog, "Logar", "Cancelar");

SpikeCompiler
04/02/2018, 10:49 AM
DÚVIDA

Alguém pode me ajudar? estou com um problema aqui no meu GameMode, está no salvamento de dados, estou utilizando o MySql, porém sou novo e estou estudando MySql. Oque acontece é que não está salvando 'Gangue' do player.

UPDATE Contas SET Nick='%s', Nivel=%d, Dinheiro=%d, ID=%d WHERE Gangue=%d

RodrigoMSR
04/02/2018, 12:56 PM
UPDATE Contas SET Nick='%s', Nivel=%d, Dinheiro=%d, Gangue=%d WHERE ID=%d

TheCrazyy
04/02/2018, 03:08 PM
Galera estou com uma dúvida , existe um meio de trocar a cor da borda preta da progressbar?

SpikeCompiler
04/02/2018, 03:14 PM
UPDATE Contas SET Nick='%s', Nivel=%d, Dinheiro=%d, Gangue=%d WHERE ID=%d


Vou testar, se der certo...poderia me informar oque eu fiz de errado para não ocorrer novamente? e também quero entender, porque estou estudando MySql.

SammyJ
04/02/2018, 03:49 PM
Galera estou com uma dúvida , existe um meio de trocar a cor da borda preta da progressbar?

Existe, é só mexer na include!

Cleyson
05/02/2018, 09:20 PM
Alguém ai já conseguiu dirigir um trem no samp ? Ou sabem se é possível ?
Eu spawno ele em cima do trilho mas não anda haha..

Jelly23
05/02/2018, 09:26 PM
Alguém ai já conseguiu dirigir um trem no samp ? Ou sabem se é possível ?
Eu spawno ele em cima do trilho mas não anda haha..Funciona sim, e realmente não importa onde você spawna ele, aparece automaticamente nos trilhos mais próximos.

BuDweiSeR
07/02/2018, 12:00 AM
Bom, Fiz um comando na qual você só pode usar CMD de ADMIN se digitar primeiro "/Administrar".
E quando digitar /AdministrarOFF você não poderá usar mas os CMD.

Erro é o seguinte: Digito /Administrar normal uso os CMD e talz, Mas quando digito o /Administraroff da pra mim usar os CMD (Que no caso só poderia digitar se usar o /Administrar primeiro.) normalmente.

Alguém poderia me ajudar?

new bool:ADM;
CMD:administrar(playerid, params[])
{
if(Player[playerid][pAdmin] < 1)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

static string[144];

format(string, sizeof(string), "* * O(A) Administrador(a) {FFFFFF}%s {FDBE00} está disponivel para ajudar.", pName);
SendClientMessageToAll(COR_BEGE, string);

Player[playerid][ADM] = true;
return 1;
}

CMD:administraroff(playerid, params[])
{
if(Player[playerid][pAdmin] < 1)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

if(!Player[playerid][ADM])
return sendErrorMessage(playerid, "Você não está administrando o servidor.");

static string[144];
format(string, sizeof(string),"* * O(A) Administrador(a) {FFFFFF}%s{FDBE00} está indisponivel para ajudar.", pName);
SendClientMessageToAll(COR_BEGE, string);

Player[playerid][ADM] = false;
return 1;
}
CMD:filmar(playerid, params[])
{
if(Player[playerid][pAdmin] < 1)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

static ID;

if(!Player[playerid][ADM])
return sendErrorMessage(playerid, "Você não está administrando o servidor.");

if(sscanf(params, "u", ID))
return sendSyntaxMessage(playerid, "/filmar [ID]");

if(ID == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

if(ID == playerid)
return sendErrorMessage(playerid, "Você não pode assistir à sí mesmo.");


TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, ID);
Player[playerid][filmar] = true;

return 1;
}

Estou usando uma variavel bool não sei se estou á agir corretamente.

Cycle
07/02/2018, 01:34 AM
Você precisa inserir a matriz MAX_PLAYERS, pois o valor deve ser variado de jogador para jogador.
E essa variável em booleano, "ADM", está meio sem sentido.

BuDweiSeR
07/02/2018, 12:59 PM
Alguém ajuda? Quero que ao player reportar seja enviado para os ADMINISTRADORES do servidor, fiz este modelo mas não está funcionando.

CMD:reportar(playerid, params[])
{
static ID, MSG[20], reportName[24];

if(sscanf(params, "us[20]", ID, MSG))
return sendSyntaxMessage(playerid, "/reportar [ID] [MOTIVO]");

if(ID == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

if(strlen(MSG) < 2 || strlen(MSG) > 20)
return sendErrorMessage(playerid, "Use de 4 á 20 caracteres para reportar o motivo.");

GetPlayerName(ID, reportName, sizeof(reportName));

format(String, sizeof(String), "[ REPORT ] O(A) Jogador(a) %s está reportando o jogador(a) %s. ID(%d)", Player[playerid][pName], reportName, ID);
SendClientMessage(Player[playerid][pAdmin], COR_RED, String);

return 1;
}

MultiKill
07/02/2018, 01:26 PM
Alguém ajuda? Quero que ao player reportar seja enviado para os ADMINISTRADORES do servidor, fiz este modelo mas não está funcionando.

CMD:reportar(playerid, params[])
{
static ID, MSG[20], reportName[24];

if(sscanf(params, "us[20]", ID, MSG))
return sendSyntaxMessage(playerid, "/reportar [ID] [MOTIVO]");

if(ID == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

if(strlen(MSG) < 2 || strlen(MSG) > 20)
return sendErrorMessage(playerid, "Use de 4 á 20 caracteres para reportar o motivo.");

GetPlayerName(ID, reportName, sizeof(reportName));

format(String, sizeof(String), "[ REPORT ] O(A) Jogador(a) %s está reportando o jogador(a) %s. ID(%d)", Player[playerid][pName], reportName, ID);
SendClientMessage(Player[playerid][pAdmin], COR_RED, String);

return 1;
}

Utilize um loop (http://forum.sa-mp.com/showthread.php?t=290735) para isso, verifique se é administrador e esta conectado no servidor e envie a mensagem.

Exemplo:

for(new i; i < 5; i++){
if(IsPlayerAdmin(i)){
SendClientMessage(i, -1, "exemplo");
}
}


O loop acima vai rodar de 0 a 4, e vai mandar mensagem para quem entre esses ids estiver logado na RCON.

Sky™
07/02/2018, 01:28 PM
Saudações!

Alguém ajuda? Quero que ao player reportar seja enviado para os ADMINISTRADORES do servidor, fiz este modelo mas não está funcionando.

CMD:reportar(playerid, params[])
{
static ID, MSG[20], reportName[24];

if(sscanf(params, "us[20]", ID, MSG))
return sendSyntaxMessage(playerid, "/reportar [ID] [MOTIVO]");

if(ID == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

if(strlen(MSG) < 2 || strlen(MSG) > 20)
return sendErrorMessage(playerid, "Use de 4 á 20 caracteres para reportar o motivo.");

GetPlayerName(ID, reportName, sizeof(reportName));

format(String, sizeof(String), "[ REPORT ] O(A) Jogador(a) %s está reportando o jogador(a) %s. ID(%d)", Player[playerid][pName], reportName, ID);
SendClientMessage(Player[playerid][pAdmin], COR_RED, String);

return 1;
}


Observando seu código dá para notar que você pediu um parâmetro como motivo e não utilizou o mesmo.
refiz o seu código.

Eu particularmente não gosto de variaveis com nomes MAIÚSCULO aconselho sempre a inicialização dos nomes das variáveis com letras minusculas e quando houver alguma especie de sobrenome 'nomeSobrenome' .

Quanto a variavel reportname, eu fiz uso da mesma variável que getou o nome do player que fez o report, não há necessidade de realizar um get novamente.

Dei uso a variável MSG e a renomeei para reason 'razão' pelo qual está reportando outro jogador ..

E para envio da mensagem, fiz a criação de uma função para enviar mensagem a jogadores com a variavel 'admin' que você usou incorretamente no SendClientMessage ..



CMD:reportar(playerid, params[]){
static
id,
reason[20],
str[129]
;

if(sscanf(params, "us[20]", id, reason))
return sendSyntaxMessage(playerid, "/reportar [ID] [MOTIVO]");

if(id == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

if(strlen(reason) < 2 || strlen(reason) > 20)
return sendErrorMessage(playerid, "Use de 4 á 20 caracteres para reportar o motivo.");


format(str, sizeof(str), "[ REPORT ] O(A) Jogador(a) %s está reportando o jogador(a) %s(%d) Motivo: %s", Player[playerid][pName], Player[id][pName], id, reason);
SendAdminMessage(str);

return true;
}

SendAdminMessage(string[]){
for(new i=0; i<= GetPlayerPoolSize(); i++){
if(Player[i][pAdmin]){
SendClientMessage(i, COR_RED, string);
}
}
}


O Código acima não foi compilado, teste e corrija-me se estiver errado.

BuDweiSeR
07/02/2018, 01:48 PM
Funcionou perfeitamente, Obrigado Sky e Multikill, Agora estou com outra duvida.

Fiz um comando de /Admin, para mostrar a listagem de administradores ON, mas eu queria que só mostrasse os ADMINSTRADORES que estão trabalhando ("/Administrar"). Como faço isso?

Fiz este modelos mas mostrar todos os admins setados.

CMD:admins(playerid, params[])
{
static str[124];

foreach(new i : Player)
{
if(Player[i][pAdmin])
{
SendClientMessage(playerid, COR_GREEN, "~> Administradores(as) Conectados:");
format(str, sizeof(str), "{00FF00}»» {FFFFFF}%s - {00FF00}Dísponivel.", Player[playerid][pName]);
SendClientMessage(playerid, -1, str);
}
}
return 1;
}

Cycle
07/02/2018, 03:43 PM
Usuário, é o seguinte.

O erro disso tudo, é referente ao começo, a criação da variável foi incorreta.

O correto, seria armazenar o valor em um enumerador, e não como você fez.
enum info { ... };

new Player[MAX_PLAYERS][info];

A criação do enumerador, está correta, mas a utilização não.

Você não pode criar uma variável e indexar dentro da matriz do enumerador, sendo que a variável não está dentro do enumerador.
E foi o que você fez.

O Correto seria dessa forma, como exemplo:
enum Informations {
bool:ADM, /* Essa variante, será responsável pelo uso de comandos, o tal '/administrar' como você diz. */
pAdmin /* Essa é a variante do cargo de administrador */
};
new Player[MAX_PLAYERS][Informations];

CMD:administrar(playerid){
if(Player[playerid][ADM]) return SendClientMessage(playerid, -1, "Você já está com a função de uso de comandos para administrador ativada.");
SendClientMessage(playerid, -1, "Agora você pode usar os comandos de administrador, pois está com a função para uso de comandos ativada.");
Player[playerid][ADM] = true;
return true;
}

CMD:administraroff(playerid){
if(!Player[playerid][ADM]) return SendClientMessage(playerid, -1, "Você não pode desativar as funções, sendo que já está desativada.");
SendClientMessage(playerid, -1, "Agora você não pode mais usar os comandos, pois está com a função desativada.");
Player[playerid][ADM] = false;
return true;
}


Agora, partindo para a função: "/admins", é da seguinte forma (Lembrando, leve em consideração e corrija a sua função do enumerador, que foi construída de forma incorreta):
CMD:admins(playerid)
{
static str[124];
foreach(new i : Player)
{
if(Player[i][pAdmin] > 1)
{
if(Player[i][ADM])
{
SendClientMessage(playerid, COR_GREEN, "~> Administradores(as) Conectados:");
format(str, sizeof(str), "{00FF00}»» {FFFFFF}%s - {00FF00}Dísponivel.", Player[playerid][pName]);
SendClientMessage(playerid, -1, str);
}
}
}
return true;
}

Caso não esteja correto, mande o seu enumerador de funções e a variável que carrega o enumerador, para me certificar.

BuDweiSeR
07/02/2018, 03:57 PM
new ADM[MAX_PLAYERS];
CMD:administrar(playerid, params[])
{
if(Player[playerid][pAdmin] < 1)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

static string[144];

format(string, sizeof(string), "* * O(A) Administrador(a) {FFFFFF}%s{1874CD} está disponivel para ajudar.", Player[playerid][pName]);
sendClientMessageToAllEx(COR_ADMIN, string);

ADM[playerid] = 1;
return 1;
}

CMD:administraroff(playerid, params[])
{
if(Player[playerid][pAdmin] < 1)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

if(!ADM[playerid])
return sendErrorMessage(playerid, "Você não está administrando o servidor.");

static string[144];
format(string, sizeof(string),"* * O(A) Administrador(a) {FFFFFF}%s{1874CD} está indisponivel para ajudar.", Player[playerid][pName]);
sendClientMessageToAllEx(COR_ADMIN, string);

ADM[playerid] = 0;
return 1;
}
CMD:admins(playerid, params[])
{
static str[124];

foreach(new i : Player)
{
if(Player[i][pAdmin])
{
SendClientMessage(playerid, COR_GREEN, "~> Administradores(as) Conectados:");
format(str, sizeof(str), "{00FF00}»» {FFFFFF}%s - {00FF00}Dísponivel.", Player[playerid][pName]);
SendClientMessage(playerid, -1, str);
}
}
return 1;
}

O /Administrar e /Administraroff está fucionando perfeitamente.

Cycle
07/02/2018, 04:02 PM
Já que deseja permanecer da forma que está, desorganizado, então vamos lá.

CMD:admins(playerid, params[])
{
static str[124];

foreach(new i : Player)
{
if(Player[i][pAdmin])
{
if(ADM[i] == 1)
{
SendClientMessage(playerid, COR_GREEN, "~> Administradores(as) Conectados:");
format(str, sizeof(str), "{00FF00}»» {FFFFFF}%s - {00FF00}Dísponivel.", Player[playerid][pName]);
SendClientMessage(playerid, -1, str);
}
}
}
return 1;
}

F1N4L
07/02/2018, 04:04 PM
Player[playerid][pName]
:D

BuDweiSeR
07/02/2018, 04:11 PM
Player[playerid][pName]
:D

pAdmin está numa Enum *-*

Cleyson
07/02/2018, 07:12 PM
Pessoal, uma dúvida, mais por curiosidade..
Tava olhando alguns Gamemodes aqui e me deparei com um .amx com tamanho de 40 mb com apenas 30k de linhas.
Ai fiquei curioso e fui olhar alguns GFs, por incrível que pareça antigo, ultrapassado e com 70k de linhas tem o tamanho de 5 mb.

Oque sera que pesa no tamanho do .amx ?

renatog
07/02/2018, 07:53 PM
Pessoal, uma dúvida, mais por curiosidade..
Tava olhando alguns Gamemodes aqui e me deparei com um .amx com tamanho de 40 mb com apenas 30k de linhas.
Ai fiquei curioso e fui olhar alguns GFs, por incrível que pareça antigo, ultrapassado e com 70k de linhas tem o tamanho de 5 mb.

Oque sera que pesa no tamanho do .amx ?

Arrays gigantes.

Cleyson
07/02/2018, 08:26 PM
Arrays gigantes.

Então tamanho não quer dizer peso, não afeta ingame né?

Cycle
07/02/2018, 09:00 PM
-----------------------------------------------------------------------------
@Off
-----------------------------------------------------------------------------

Fugindo um pouco do contexto de SA:MP, gostaria que alguns de vocês pudessem sanar uma dúvida que eu tenho em relação à rede.

Meu tio tem uma internet de 5MB, da Oi Velox. Mas, eu tenho uma dúvida um pouco curiosa, a velocidade de download que o pico bate, é até 512kb/s, porque não bate no mínimo 1.000kb/s(1MB)?

Porque, se a velocidade é de 5MB, deveria ter no mínimo uma parte da contratação do pacote sendo utilizada, mas porque o pico máximo de utilização é de apenas 512kb/s?

Alguns dizem que é por conta da localização da internet e etc...
Mas, eu acredito que isso não tem nada em parentesco com o problema, isso não é algo que ocorre somente com o meu tio, mas sim comigo, pois vejo constantemente quando baixo algo grande, acontece o mesmo, independente de horário, não altera o problema, de madrugada, ocorre a mesma situação.

Gguiz
07/02/2018, 09:09 PM
-----------------------------------------------------------------------------
@Off
-----------------------------------------------------------------------------

Fugindo um pouco do contexto de SA:MP, gostaria que alguns de vocês pudessem sanar uma dúvida que eu tenho em relação à rede.

Meu tio tem uma internet de 5MB, da Oi Velox. Mas, eu tenho uma dúvida um pouco curiosa, a velocidade de download que o pico bate, é até 512kb/s, porque não bate no mínimo 1.000kb/s(1MB)?

Porque, se a velocidade é de 5MB, deveria ter no mínimo uma parte da contratação do pacote sendo utilizada, mas porque o pico máximo de utilização é de apenas 512kb/s?

Alguns dizem que é por conta da localização da internet e etc...
Mas, eu acredito que isso não tem nada em parentesco com o problema, isso não é algo que ocorre somente com o meu tio, mas sim comigo, pois vejo constantemente quando baixo algo grande, acontece o mesmo, independente de horário, não altera o problema, de madrugada, ocorre a mesma situação.

Pagamos por um serviço de péssima qualidade que fornece 20% a menos do pacote.

renatog
07/02/2018, 10:13 PM
-----------------------------------------------------------------------------
@Off
-----------------------------------------------------------------------------

Fugindo um pouco do contexto de SA:MP, gostaria que alguns de vocês pudessem sanar uma dúvida que eu tenho em relação à rede.

Meu tio tem uma internet de 5MB, da Oi Velox. Mas, eu tenho uma dúvida um pouco curiosa, a velocidade de download que o pico bate, é até 512kb/s, porque não bate no mínimo 1.000kb/s(1MB)?

Porque, se a velocidade é de 5MB, deveria ter no mínimo uma parte da contratação do pacote sendo utilizada, mas porque o pico máximo de utilização é de apenas 512kb/s?

Alguns dizem que é por conta da localização da internet e etc...
Mas, eu acredito que isso não tem nada em parentesco com o problema, isso não é algo que ocorre somente com o meu tio, mas sim comigo, pois vejo constantemente quando baixo algo grande, acontece o mesmo, independente de horário, não altera o problema, de madrugada, ocorre a mesma situação.

Você tem que ter noção que está contratando 5 Megabits de internet, que daria uma velocidade de download de 625 kb/s.

Cleyson
07/02/2018, 10:20 PM
-----------------------------------------------------------------------------
@Off
-----------------------------------------------------------------------------

Fugindo um pouco do contexto de SA:MP, gostaria que alguns de vocês pudessem sanar uma dúvida que eu tenho em relação à rede.

Meu tio tem uma internet de 5MB, da Oi Velox. Mas, eu tenho uma dúvida um pouco curiosa, a velocidade de download que o pico bate, é até 512kb/s, porque não bate no mínimo 1.000kb/s(1MB)?

Porque, se a velocidade é de 5MB, deveria ter no mínimo uma parte da contratação do pacote sendo utilizada, mas porque o pico máximo de utilização é de apenas 512kb/s?

Alguns dizem que é por conta da localização da internet e etc...
Mas, eu acredito que isso não tem nada em parentesco com o problema, isso não é algo que ocorre somente com o meu tio, mas sim comigo, pois vejo constantemente quando baixo algo grande, acontece o mesmo, independente de horário, não altera o problema, de madrugada, ocorre a mesma situação.

Acho que você se enganou um pouco.

Para 5 mb a velocidade de download está correta de 512 kb/s.
Quando você se referiu 1.000kb/s seria uma internet de 10 mb.

A minha aqui em casa é de 30 mb, ela baixa em media 2,6 mb/s.

Cycle
07/02/2018, 11:03 PM
E vocês não acham isso errado?

JohnBlack
07/02/2018, 11:08 PM
Varia de provedor para provedor.
Mas a internet à cabo sempre será a melhor opção para quem quer uma velocidade alta de internet.
Um provedor de internet X (que não me lembro o nome) prometia até 10% de velocidade da internet por via wi-fi e 80% por via ethernet e realmente cumpria.

Locky_
08/02/2018, 01:15 AM
-----------------------------------------------------------------------------
@Off
-----------------------------------------------------------------------------

Fugindo um pouco do contexto de SA:MP, gostaria que alguns de vocês pudessem sanar uma dúvida que eu tenho em relação à rede.

Meu tio tem uma internet de 5MB, da Oi Velox. Mas, eu tenho uma dúvida um pouco curiosa, a velocidade de download que o pico bate, é até 512kb/s, porque não bate no mínimo 1.000kb/s(1MB)?

Porque, se a velocidade é de 5MB, deveria ter no mínimo uma parte da contratação do pacote sendo utilizada, mas porque o pico máximo de utilização é de apenas 512kb/s?

Alguns dizem que é por conta da localização da internet e etc...
Mas, eu acredito que isso não tem nada em parentesco com o problema, isso não é algo que ocorre somente com o meu tio, mas sim comigo, pois vejo constantemente quando baixo algo grande, acontece o mesmo, independente de horário, não altera o problema, de madrugada, ocorre a mesma situação.

Acho que você se enganou um pouco.

Para 5 mb a velocidade de download está correta de 512 kb/s.
Quando você se referiu 1.000kb/s seria uma internet de 10 mb.

A minha aqui em casa é de 30 mb, ela baixa em media 2,6 mb/s.

E vocês não acham isso errado?

Varia de provedor para provedor.
Mas a internet à cabo sempre será a melhor opção para quem quer uma velocidade alta de internet.
Um provedor de internet X (que não me lembro o nome) prometia até 10% de velocidade da internet por via wi-fi e 80% por via ethernet e realmente cumpria.

Acredito que exista uma confunsão entre unidade de medidas em alguns argumentos. É válido que, os provedores existam perdas de pacotes e que não são poucas. Mas, vocês confundem MB com MBPS.

Mb = Mega Byte | Mbps = Mega bit por segundo
KB/s = Kilo Bytes por segundo
MB/s = Mega Bytes por segundo

Quando colocamos 8 bits juntos, obtemos 1 byte.


1 Mbps = 128 KB/s
5 Mbps = 625 KB/s
10 Mbps = 1,2 MB/s
20 Mbps = 2,4 MB/s
30 Mbps = 3,6 MB/s


Cálculo Mbps x Taxa de Transferência (exemplo):
5 Mbps / 8 = 0,625 MB/s ou 625 KB/s
10 Mbps / 8 = 1,25 MB/s

Outros fóruns/sites falando sobre o mesmo assunto:
https://www.clubedohardware.com.br/forums/topic/356196-calculo-de-mbps-para-mbs/
https://www.tecmundo.com.br/banda-larga/32749-megabit-x-megabyte-qual-a-real-velocidade-da-minha-conexao-.htm

Resumindo:
Sua internet é de 5 Mbps, logo a velocidade máxima de downloads é de 625kb/s.

--
Sendo Velox, muitos motivos podem ocorrer para que sua velocidade de downloads não seja a máxima:


Filtro de linha impróprio ou incorreto (ou velho);
Configuração no modem/roteador (talvez precisando de atualização);
Central de sua região com link saturado (alta demanda);
Sinal ADSL/VDSL abaixo de padrões.


Tenho 20 mbps da Velox em minha residência, em alguns horários recebo 22mbps. Não é sempre que varia, e sempre busco manter o padrão do meu modem/roteador em dia. Mas, tenho grande perda de pacotes dentro do provedor em alguns horários.

renatog
08/02/2018, 01:38 AM
Na verdade:
Mb = Megabit
MB = Megabyte

FerrariL
09/02/2018, 02:07 PM
E ai galera,bem minha dúvida é a seguinte,como eu criaria um checkpoint na traseira do veiculo do player ?
Eu procurei mas não achei nada que solucionasse minha dúvida.

MBJ
09/02/2018, 02:15 PM
E ai galera,bem minha dúvida é a seguinte,como eu criaria um checkpoint na traseira do veiculo do player ?
Eu procurei mas não achei nada que solucionasse minha dúvida.

GetVehicleModelInfo (http://wiki.sa-mp.com/wiki/GetVehicleModelInfo)

FerrariL
09/02/2018, 03:52 PM
Obrigado MBJ,mas não consegui fazer o que pretendia...Alguém poderia passar uma base ? de quando o player sair do veiculo criar um checkpoint atrás do carro ? no meu caso o checkpoint ta sendo criado em lugares diferentes do mapa,Já to de dor de cabeça com isso rsrs.

MBJ
09/02/2018, 04:33 PM
Obrigado MBJ,mas não consegui fazer o que pretendia...Alguém poderia passar uma base ? de quando o player sair do veiculo criar um checkpoint atrás do carro ? no meu caso o checkpoint ta sendo criado em lugares diferentes do mapa,Já to de dor de cabeça com isso rsrs.

public OnPlayerExitVehicle(playerid, vehicleid) {
new RearBumper[3];
GetVehicleModelInfo(veh, VEHICLE_MODEL_INFO_REAR_BUMPER_Z, RearBumper[0], RearBumper[1], RearBumper[2]);
SetPlayerCheckpoint(playerid, RearBumper[0], RearBumper[1], RearBumper[2], 10);
return true;
}
Não testei pois estou sem GTA, mas isso criará um checkpoint no para-choque traseiro do veiculo, talvez seja necessário colocar o checkpoint um pouco atras, mas a base é essa

FerrariL
09/02/2018, 04:52 PM
Eu já tinha feito dessa forma,o checkpoint é criado em outro lugar do mapa,menos atrás do veiculo.

MultiKill
10/02/2018, 12:22 AM
Eu já tinha feito dessa forma,o checkpoint é criado em outro lugar do mapa,menos atrás do veiculo.

Utilize as funções GetVehiclePos (http://wiki.sa-mp.com/wiki/GetVehiclePos) e GetVehicleZAngle (http://wiki.sa-mp.com/wiki/GetVehicleZAngle) para pegar a coordenada e o ângulo atual do veículo. E utilize as funções floatsin (http://wiki.sa-mp.com/wiki/Floatsin) e floatcos (http://wiki.sa-mp.com/wiki/Floatcos) para obter o seno e cosseno.


new Float: vpos[4];

const Float: distancia = -4.0;

GetVehiclePos(vehicleid, vpos[0], vpos[1], vpos[2]);
GetVehicleZAngle(vehicleid, vpos[3]);

vpos[0] += distancia * floatsin(-vpos[3], degrees);
vpos[1] += distancia * floatcos(-vpos[3], degrees);

SetPlayerCheckpoint(playerid, vpos[0], vpos[1], vpos[2], 2.0);

FerrariL
10/02/2018, 11:43 AM
Funcionou,obrigado Multikill e Mbj.

Felpz
11/02/2018, 05:28 PM
Galera eu tive verificando um pouco de como funciona a função "GetPlayerColor" para jogador "playerid", e cheguei a conclusão de não intender quase nada. Pra que server isto ? ">>> 8", fica situado na maneira correta.

GetPlayerColor(playerid) >>> 8);

Jelly23
11/02/2018, 05:40 PM
Galera eu tive verificando um pouco de como funciona a função "GetPlayerColor" para jogador "playerid", e cheguei a conclusão de não intender quase nada. Pra que server isto ? ">>> 8", fica situado na maneira correta.

GetPlayerColor(playerid) >>> 8);

Remove o atributo alpha (opacidade da cor) fazendo um deslocamento de bits para a direita (bitwise right shift), assim permite você ter a cor embutida em mensagens por exemplo. Ex:


new msg[44];
format(msg, sizeof(msg), "{FFFFFF}Cor Branca | {%06x}Cor do jogador", GetPlayerColor(playerid) >>> 8);
SendClientMessage(playerid, -1, msg);

Felpz
11/02/2018, 06:57 PM
Remove o atributo alpha (opacidade da cor) fazendo um deslocamento de bits para a direita (bitwise right shift), assim permite você ter a cor embutida em mensagens por exemplo. Ex:


new msg[44];
format(msg, sizeof(msg), "{FFFFFF}Cor Branca | {%06x}Cor do jogador", GetPlayerColor(playerid) >>> 8);
SendClientMessage(playerid, -1, msg);


Aaah, deixou claro!, Obrigado... <3

BuDweiSeR
12/02/2018, 11:41 AM
Algúem tem a GM Universo GTA ou Outro GM que possua um sistema de casa bom, Para estudos? Ou alguma base de sistema de casa?

FerrariL
12/02/2018, 12:59 PM
Algúem tem a GM Universo GTA ou Outro GM que possua um sistema de casa bom, Para estudos? Ou alguma base de sistema de casa?
Tem essa base: http://forum.sa-mp.com/showthread.php?t=566052

GuilhermeW
12/02/2018, 10:23 PM
Existe alguma plataforma que possibilite que dois programadores possam mexer no mesmo gamemode ao mesmo tempo sem ter que ficar juntando códigos depois? Tipo ao mesmo tempo como se os dois estivessem ligados a um servidor em tempo real...

DelK
12/02/2018, 10:45 PM
Existe alguma plataforma que possibilite que dois programadores possam mexer no mesmo gamemode ao mesmo tempo sem ter que ficar juntando códigos depois? Tipo ao mesmo tempo como se os dois estivessem ligados a um servidor em tempo real...
https://github.com/

MBJ
13/02/2018, 12:08 AM
Existe alguma plataforma que possibilite que dois programadores possam mexer no mesmo gamemode ao mesmo tempo sem ter que ficar juntando códigos depois? Tipo ao mesmo tempo como se os dois estivessem ligados a um servidor em tempo real...

c9.io, codeanywhere

FerrariL
13/02/2018, 10:59 PM
Galera estou com uma dúvida.Estou fazendo alguns testes com um sistema,e quando o player entra no veiculo ele trava.Não sei se é o gta dele ou o script que está mal programado.Já fiz o teste com um gamemode sem nada,eu acho que não é o gamemode e sim o gta dele,o que vocês acham que pode ser ?

Marllun
14/02/2018, 05:30 AM
É o gta san andreas dele, faz isso deleta a pasta data e coloque essa no lugar.

Data (http://www.mediafire.com/file/mok9ymsye98irl9/Backup+Pasta+Data+-+GSA+%5Bkingmodssa%5D.rar)

BuDweiSeR
17/02/2018, 08:59 AM
Alguém poderia me ajudar nesses sistema de Flood:
Nota: Não foi criado por mim.
É o seguinte, Quando repito a mensagem já me cala de uma vez, e não aparece a mensagem de " Não repita a mensagem ou será calado ". Depois de ser calado o Anti Flood não funfa mais, simplesmente da pra mim floodar normalmente.
#include <a_samp>

forward Flood(playerid);
forward Flood2(playerid);

new AFlood[MAX_PLAYERS],nMsg[MAX_PLAYERS][128],Mute[MAX_PLAYERS];

public Flood(playerid) AFlood[playerid] = 0;
public Flood2(playerid){Mute[playerid] = 0, AFlood[playerid] = 0;SendClientMessage(playerid, 0xFF0000, "( ANTI - FLOOD ) Você já pode usar o chat novamente..");}

public OnFilterScriptInit(){print("Anti - Flood Carregado");return 1;}

public OnFilterScriptExit(){print("Anti - Flood Descarregado");return 1;}

public OnPlayerConnect(playerid){Mute[playerid] = 0,AFlood[playerid] = 0;return 1;}

public OnPlayerText(playerid, text[])
{
if(strlen(text) == strlen(nMsg[playerid]) && !strcmp(nMsg[playerid], text, false)){SendClientMessage(playerid, -1, "( ANTI - FLOOD ) Não repita a mesma mensagem!");return 0;}
if(Mute[playerid] == 1) return SendClientMessage(playerid, 0xFF0000AA, "( ANTI - FLOOD ) Você não pode digitar no chat enquanto estiver mutado..");
AFlood[playerid]++;
if(AFlood[playerid] == 2) SetTimerEx("Flood", 2500, 0 , "i" , playerid);
else if(AFlood[playerid] == 3) return SendClientMessage(playerid, 0xFF0000 , "( ANTI - FLOOD ) Não faça flood ou você pode ser mutado.."), 0;
else if(AFlood[playerid] == 4)
{
SendClientMessage(playerid, 0xFF0000AA, "( ANTI - FLOOD ) Você foi mutado por 30 Segundos.");
Mute[playerid] = 1;
SetTimerEx("Flood2", 30000 , 0 , "i", playerid);
return 0;
}
return 0;
}

Tá desorganizado pra porra.

TheCrazyy
17/02/2018, 06:14 PM
galera como faço uma comparação para ver se o parâmetro digitado está correto?
Ex:

/comando [parametro] se ele digitar diferente de 4 a 10 , manda uma msg pra ele.

se ele digitar o um numero correto o comando é executado.

desde já, abraços.

GRiMMREAPER
17/02/2018, 06:34 PM
galera como faço uma comparação para ver se o parâmetro digitado está correto?
Ex:

/comando [parametro] se ele digitar diferente de 4 a 10 , manda uma msg pra ele.

se ele digitar o um numero correto o comando é executado.

desde já, abraços.

Utilize sscanf.

TheCrazyy
17/02/2018, 07:06 PM
Utilize sscanf.

Exemplo?

Felpz
17/02/2018, 10:09 PM
Galera eu desenvolvi um login/registro testei com meus amigos e saiu bem legal da maneira q eu imaginava, porém eles falaram que da pra ver eles se setando no login/registro. Dai eu queria saber, é possível criar um Loop repetitivo ? de uma outra maneira, sem usar time?, pois a maneira que pensei foi em criar um time pra chamar esse Loop no login...

GRiMMREAPER
18/02/2018, 07:34 AM
Exemplo?

http://forum.sa-mp.com/showthread.php?t=314196

TheCrazyy
20/02/2018, 11:30 AM
É possível pegar o nome do playerid , e colocar em duas strings ?

Ex:NoMe_PlAyEr

transforma a %s

em : %s %s > NoMe_ e a outra PlAyEr

abrçs!

Sky™
20/02/2018, 12:04 PM
Saudações !


É possível pegar o nome do playerid , e colocar em duas strings ?

Ex:NoMe_PlAyEr

transforma a %s

em : %s %s > NoMe_ e a outra PlAyEr

abrçs!

Sim é possível, basta apenas manipular a string de entrada e fazer todo o processo necessário ..
Recomendo que leia o tópico do Rjj sobre strings e faça o que você está precisando ..

http://forum.sa-mp.com/showthread.php?t=344000

Abç!

BuDweiSeR
20/02/2018, 03:36 PM
CMD:setarma(playerid, params[])
{
if(Player[playerid][pAdmin] | Player[playerid][pGM] < 1)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

static arma, municao;

if(id == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

if(sscanf(params, "udd", id, arma, municao))
return sendSyntaxMessage(playerid, "/setarma [ID] [ ID da Arma] [ Munição ]");

if( 1 < arma > 48)
return sendSyntaxMessage(playerid, "ID 1 à 48");

GivePlayerWeapon(id, arma, municao);

format(String, sizeof(String),"| ADMIN | O(A) Staffer {FFFFFF}%s{1874CD} lhe deu arma ID: %d", Player[playerid][pName], arma);
SendClientMessage(id, COR_ADMIN, String);
return 1;
}

Porque alguns ID's das arma não seta?

Sky™
20/02/2018, 04:05 PM
Saudações!




if(id == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

if(sscanf(params, "udd", id, arma, municao))
return sendSyntaxMessage(playerid, "/setarma [ID] [ ID da Arma] [ Munição ]");




a verificação do parâmetro ID não pode ocorrer antes do sscanf o passar como parâmetro válido ..

Altere a formulação das variáveis: "arma", "municao", de "static" para "new".

Lembre-se da explicação que te dei à algumas páginas atrás, variável static local, mantém o seu valor.
Se você setou no comando o valor 48, não poderá mais alterar.

N é necessário, visando que o sscanf sempre irá formatar todo o conteúdo da variável sendo ela estática ou não.
uma espécie de EOS antes da formatação de dados.



CMD:setarma(playerid, params[])
{
if(Player[playerid][pAdmin] | Player[playerid][pGM] < 1)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

static arma, municao, id, str[129];

if(sscanf(params, "udd", id, arma, municao)) return sendSyntaxMessage(playerid, "/setarma [ID] [ ID da Arma] [ Munição ]");
if(id == INVALID_PLAYER_ID) return sendErrorMessage(playerid, MSG_PLAYER_OFF);
if( 1 < arma > 48) return sendSyntaxMessage(playerid, "ID 1 à 48");

GivePlayerWeapon(id, arma, municao);

format(str, sizeof(str),"| ADMIN | O(A) Staffer {FFFFFF}%s{1874CD} lhe deu arma ID: %d", Player[playerid][pName], arma);
SendClientMessage(id, COR_ADMIN, str);

format(str, sizeof(str),"| Admin-Command | Você deu uma arma id: %i ao player {FFFFFF}%s{1874CD}", Player[id][pName], arma);
SendClientMessage(id, COR_ADMIN, str);
return true;
}


Caso este não funcione, ou apresente o mesmo erro, verifique os ids de weapons válidos, ou faça um debug no código.

BuDweiSeR
20/02/2018, 11:54 PM
CMD:setarma(playerid, params[])
{
if(Player[playerid][pAdmin] | Player[playerid][pGM] < 1)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

static arma, municao;

if(sscanf(params, "udd", id, arma, municao))
return sendSyntaxMessage(playerid, "/setarma [ID] [ ID da Arma] [ Munição ]");

if(id == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

if( 1 < arma > 46)
return sendSyntaxMessage(playerid, "ID 1 à 46");

GivePlayerWeapon(id, arma, municao);

format(String, sizeof(String),"| ADMIN | O(A) Staffer {FFFFFF}%s{1874CD} lhe deu arma ID: %d", Player[playerid][pName], arma);
SendClientMessage(id, COR_ADMIN, String);
return 1;
}

Bom, o código apresentou o mesmo erro, Lí alguns tutoriais de como realizar o Debug ( Não sei se fiz corretamente), Mais foram printados corretamente sem nenhum problema, e outra, Não sei se é válido o que eu fiz, Mas declarei as variáveis String e id como global, Pois muitos CMD's que criei é necessário criar a String e ID é correto fazer o que eu fiz?

Alguém poderia ajudar?

Marllun
21/02/2018, 12:04 AM
CMD:setarma(playerid, params[])
{
if(Player[playerid][pAdmin] | Player[playerid][pGM] < 1) return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

static arma, municao,ide,string[128]; //só para testes (:

if(sscanf(params, "udd", ide, arma, municao)) return sendSyntaxMessage(playerid, "/setarma [ID] [ ID da Arma] [ Munição ]");

if(ide == INVALID_PLAYER_ID) return sendErrorMessage(playerid, MSG_PLAYER_OFF);
if(municao == 0) return SendClientMessage(playerid, -1, "erro");
if( 1 < arma > 46) return sendSyntaxMessage(playerid, "ID 1 à 46");

GivePlayerWeapon(ide, arma, municao);

printf("GivePlayerWeapon(%d,%d,%d);",ide,arma,municao);
format(string, sizeof(string),"| ADMIN | O(A) Staffer {FFFFFF}%s{1874CD} lhe deu arma ID: %d", Player[playerid][pName], arma);
SendClientMessage(id, COR_ADMIN, string);
return 1;
}
tenta de novo.

BuDweiSeR
21/02/2018, 12:24 AM
Obrigado funcionou perfeitamente. Quanto as variáveis declaradas GLOBALMENTE à algum problema quanto á isso?

Marllun
21/02/2018, 12:26 AM
Não, porém pode ter alguns conflitos ao usa-la muitas vezes, mas pode usar.

Sky™
21/02/2018, 11:16 AM
Saudações!

Obrigado funcionou perfeitamente. Quanto as variáveis declaradas GLOBALMENTE à algum problema quanto á isso?

O erro do seu código estava exatamente nos conflitos gerados por variáveis globais, o código do membro acima apenas alterou o nome de 'id' para 'ede' entre outras pequenas mudanças irrelevantes, também a verificação da variável munição que também era preciso e deixamos escapar, enfim. Eu não recomendo alocar globalmente nada em relação a comandos, para isso se faz uso de variáveis estáticas..

BuDweiSeR
21/02/2018, 11:47 AM
Então o bom seria usar as locais estáticas? Póis são muito os CMD's que precisam de ID's e String ao invés de criar uma local em cada comando decidi criar uma global, Aí criei apenas uma vez e usei elas em todos os CMD's.

Sky™
21/02/2018, 12:27 PM
Póis são muito os CMD's que precisam de ID's e String ao invés de criar uma local em cada comando decidi criar uma global
Exatamente este o problema, são muitos, e com muitos players digitando isso a todo momento, imagine ..


Então o bom seria usar as locais estáticas? Póis são muito os CMD's que precisam de ID's e String ao invés de criar uma local em cada comando decidi criar uma global, Aí criei apenas uma vez e usei elas em todos os CMD's.


Não é difícil de entender imagina seu servidor com 50 pessoas, todas digitando comandos a todo momento, rsrs ..

caso o comando tenha apenas um parâmetro nem é preciso fazer uso de variável, apenas manipular o próprio 'params[]', caso contrário, sim, é necessário sempre utilizar uma variável local ..

BuDweiSeR
21/02/2018, 12:58 PM
Entendi, Obrigado!

BuDweiSeR
22/02/2018, 01:43 AM
Galera!

Como utilizo o operador ' ? ' li alguns tutoriais á respeito mas não entendi muito bem seu funcionamento, Alguém poderia me explica? Como utilizo o mesmo nesse código abaixo por exemplo:
if(Emprego == 0) {profissao = "Desempregado";}
if(Emprego == 1) {profissao = "Vendedor de spawn";}
if(Emprego == 2) {profissao = "Vendedor de carro";}
if(Emprego == 3) {profissao = "Barman";}
if(Emprego == 4) {profissao = "Guarda costas";}
if(Emprego == 5) {profissao = "Motorisat particular";}
if(Emprego == 6) {profissao = "Estudante";}
if(Emprego == 7) {profissao = "Estagiario";}
if(Emprego == 8) {profissao = "Pescador";}

Gguiz
22/02/2018, 03:42 AM
Galera!

Como utilizo o operador ' ? ' li alguns tutoriais á respeito mas não entendi muito bem seu funcionamento, Alguém poderia me explica? Como utilizo o mesmo nesse código abaixo por exemplo:
if(Emprego == 0) {profissao = "Desempregado";}
if(Emprego == 1) {profissao = "Vendedor de spawn";}
if(Emprego == 2) {profissao = "Vendedor de carro";}
if(Emprego == 3) {profissao = "Barman";}
if(Emprego == 4) {profissao = "Guarda costas";}
if(Emprego == 5) {profissao = "Motorisat particular";}
if(Emprego == 6) {profissao = "Estudante";}
if(Emprego == 7) {profissao = "Estagiario";}
if(Emprego == 8) {profissao = "Pescador";}

Os operadores ternários tem funções para dizer se o mesmo é verdadeiro ou falso.
Exemplo:

new var;

public OnFilterScriptInit()
{
printf("|A variável é %s", var ? ("Verdadeiro") : ("Falso"));
return true;
}

Suponha que o "?" tem som de "é" e ":" tem som de "ou", agora releia o código.


Ao meu ver não precisaria usar a Operação Ternária no seu código. A não ser que você queira dizer se o player está desempregado ou não desempregado.


Obs: A explicação pode ter ficado meio vasta, pois estou aprofundando meus conhecimentos nos operadores ternários.

Abraços!

Sky™
22/02/2018, 10:16 AM
Saudações!

Galera!

Como utilizo o operador ' ? ' li alguns tutoriais á respeito mas não entendi muito bem seu funcionamento, Alguém poderia me explica? Como utilizo o mesmo nesse código abaixo por exemplo:
if(Emprego == 0) {profissao = "Desempregado";}
if(Emprego == 1) {profissao = "Vendedor de spawn";}
if(Emprego == 2) {profissao = "Vendedor de carro";}
if(Emprego == 3) {profissao = "Barman";}
if(Emprego == 4) {profissao = "Guarda costas";}
if(Emprego == 5) {profissao = "Motorisat particular";}
if(Emprego == 6) {profissao = "Estudante";}
if(Emprego == 7) {profissao = "Estagiario";}
if(Emprego == 8) {profissao = "Pescador";}



Como o amigo citou acima, não tem porque utilizar operação ternária em seu código, eu faria uso de um "swtich" para dar uma aparência melhor a isso.



switch(Emprego){
case 1: profissao = "Vendedor de spawn";
case 2: profissao = "Vendedor de carro";
case 3: profissao = "Barman";
case 4: profissao = "Guarda costas";
case 5: profissao = "Motorisat particular";
case 6: profissao = "Estudante";
case 7: profissao = "Estagiario";
case 8: profissao = "Pescador";
default: profissao = "Desempregado";
}

vulgo
23/02/2018, 04:51 PM
Boa Tarde, Comunidade alguem sabe me dizer se a aba internet ainda está "gratuita" liberada ao público? meu servidor não está aparecendo na listagem da aba internet..

HostName: Brazil Death Match Ultimate Gang War
Address: 192.95.8.249:7777
Players: - / 75
Ping: 110
Mode: Brasil UGW 8.3b
Language: Brasil

Sky™
23/02/2018, 05:36 PM
Boa Tarde, Comunidade alguem sabe me dizer se a aba internet ainda está "gratuita" liberada ao público? meu servidor não está aparecendo na listagem da aba internet..


Na versão 0.3.7 R2 sim.

B4dSh33p
25/02/2018, 04:29 AM
Alguém sabe como bloquear o RPC GiveTakeDamage (115) com Pawn.RakNet?

Jelly23
25/02/2018, 05:49 AM
Alguém sabe como bloquear o RPC GiveTakeDamage (115) com Pawn.RakNet?
Retornando 0 na callback OnIncomingRPC, e ainda é inútil, pois isso só vai impedir a notificação de dano de ser enviada (OnPlayerGive/TakeDamage), e não o dano.

vulgo
26/02/2018, 02:13 PM
Pessoal alguem sabe dizer se tem mais algumas configurações para o servidor aparecer na listagem internet no server.cfg esta announce 1

SpikeCompiler
03/03/2018, 11:52 AM
Bom dia galera, alguém pode me ajudar nesse pequeno erro aqui? no arquivo era para salvar assim:

Etnia = Caucasiano

Porém fica salvando em números, por exemplo:

Etnia = 48

Aqui está o código:

format(PlayerInfo[playerid][Etnia], 40, "Caucasiano");

RogerCosta
03/03/2018, 12:24 PM
Na versão 0.3.7 R2 sim.
Na 0.3DL, também.

PT
03/03/2018, 01:31 PM
Bom dia galera, alguém pode me ajudar nesse pequeno erro aqui? no arquivo era para salvar assim:

Etnia = Caucasiano

Porém fica salvando em números, por exemplo:

Etnia = 48

Aqui está o código:

format(PlayerInfo[playerid][Etnia], 40, "Caucasiano");


Etnia está declarado como string?

SpikeCompiler
03/03/2018, 02:30 PM
Etnia está declarado como string?

No enum pInfo está assim 'Etnia[40] sem vírgula porque é a última

humildadeforever
04/03/2018, 04:20 AM
No enum pInfo está assim 'Etnia[40] sem vírgula porque é a última

Manda o code do salvamento.

SpikeCompiler
04/03/2018, 09:26 AM
Manda o code do salvamento.

Eu resolvi já! no registro estava salvando em DOF2_SetInt, e no salvamento também! eu consegui mudar agora, +REP para todos que tentou me ajudar!

@EDIT:

Pode me ajudar neste aqui agora? está dando erro nesse código:

PlayerInfo[playerid][Olhos] = DOF2_GetString(StringContas, "Etnia");

error 047: array sizes do not match, or destination array is too small

humildadeforever
04/03/2018, 11:48 AM
Eu resolvi já! no registro estava salvando em DOF2_SetInt, e no salvamento também! eu consegui mudar agora, +REP para todos que tentou me ajudar!

@EDIT:

Pode me ajudar neste aqui agora? está dando erro nesse código:

PlayerInfo[playerid][Olhos] = DOF2_GetString(StringContas, "Etnia");

error 047: array sizes do not match, or destination array is too small

Como você declarou 'Olhos'?


format(PlayerInfo[playerid][Olhos], 20, "%s", DOF2_GetString(StringContas,"Etnia"));

FStralioti
04/03/2018, 09:05 PM
Estou retornando agora para o samp, pois falaram que tem ótimas novidades, dei uma procurada e não achei nada, alguém pode me enviar um tópico sobre ou até mesmo me explicar quais as novidades.

RogerCosta
04/03/2018, 09:19 PM
Estou retornando agora para o samp, pois falaram que tem ótimas novidades, dei uma procurada e não achei nada, alguém pode me enviar um tópico sobre ou até mesmo me explicar quais as novidades.
http://forum.sa-mp.com/showthread.php?t=648633
http://forum.sa-mp.com/showthread.php?t=644105

B4dSh33p
06/03/2018, 09:33 PM
é possível criar um tempo de diminuição para sair da cadeia usando gettime();? se sim como eu poderia fazer isso?

SpikeCompiler
06/03/2018, 09:42 PM
é possível criar um tempo de diminuição para sair da cadeia usando gettime();? se sim como eu poderia fazer isso?

Sim mas...sabe que não faria sentido né? a diferença seria..o player cumpriria seu tempo de cadeia mesmo estando offline.

TheCrazyy
06/03/2018, 10:13 PM
galera alguém poderia me dar uma dica de como faço pra ter uma contagem quando o player está trabalhando e sai do caminhão, ai começa a contar...

Cycle
07/03/2018, 12:48 AM
galera alguém poderia me dar uma dica de como faço pra ter uma contagem quando o player está trabalhando e sai do caminhão, ai começa a contar...
Pode-se utilizar gettime (wiki.sa-mp.com/wiki/Gettime) ou um timer (wiki.sa-mp.com/wiki/SetTimerEx).

JohnBlack
07/03/2018, 01:13 AM
galera alguém poderia me dar uma dica de como faço pra ter uma contagem quando o player está trabalhando e sai do caminhão, ai começa a contar...

Se você for utilizar uma contagem regressiva recomendo fortemente que use um timer.

SetTimerEx (http://wiki.sa-mp.com/wiki/SetTimerEx)

BuDweiSeR
08/03/2018, 12:35 PM
Está correto o que fiz?

if(hora >= 12 && hora <= 17)
if(12 >= hora <= 17)

if(getpVip == 1 || getAdmin == 1 || getMod == 1)
if(getpVip || getAdmin || getMod == 1)

GuilhermeW
09/03/2018, 12:04 PM
switch(hora)
{
case: 12..17:
{
//Funções aqui.
}
default:
{
//Caso não for nenhum case escrito acima.
}
}

Tem como fazer dessa forma, o swith funciona apenas com números se eu não me engano, tipo em caso de tu fazer muitos ifs para uma variável numérica, acho que é melhor usar switch.

F1N4L
09/03/2018, 12:12 PM
Está correto o que fiz?

if(hora >= 12 && hora <= 17)
if(12 >= hora <= 17)

if(getpVip == 1 || getAdmin == 1 || getMod == 1)
if(getpVip || getAdmin || getMod == 1)


if(hora >= 12 && hora <= 17) // Entre 12 e 17

if(12 <= hora <= 17) // Entre 12 e 17

if(getpVip || getAdmin || getMod) // Maior que 0

if(!getpVip || !getAdmin || !getMod) // Menor ou igual a 0



switch(hora)
{
case: 12..17:
{
//Funções aqui.
}
default:
{
//Caso não for nenhum case escrito acima.
}
}

Tem como fazer dessa forma, o swith funciona apenas com números se eu não me engano, tipo em caso de tu fazer muitos ifs para uma variável numérica, acho que é melhor usar switch.

Letras também.

TheCrazyy
11/03/2018, 06:16 AM
Existe algum meio de colocar uma imagem que não seja do samp , no server?

SpikeCompiler
11/03/2018, 09:49 AM
Existe algum meio de colocar uma imagem que não seja do samp , no server?

Sim, apenas na versão 0.3.DL ou 0.3.8, porém muitos servidores que estão na 0.3.8 já estão transferindo para 0.3.DL.

Tutorial: http://forum.sa-mp.com/showthread.php?t=650869

PT
11/03/2018, 09:50 AM
Existe umas includes que usam objetos e texturas para isso

Procura no fórum Inglês

Uma vez até a foto do paul walker colocaram

SpikeCompiler
11/03/2018, 09:51 AM
Existe umas includes que usam objetos e texturas para isso

Procura no fórum Inglês

Uma vez até a foto do paul walker colocaram

Essas imagens texturizadas da para fazer bastante coisa mesmo.

TheCrazyy
11/03/2018, 03:42 PM
Existe umas includes que usam objetos e texturas para isso

Procura no fórum Inglês

Uma vez até a foto do paul walker colocaram

Eu estava tentando utilizar esses objetos com textura , só que a qualidade não é das melhores. kk

PT
11/03/2018, 10:26 PM
Você acha que vai ter gráficos num jogo de 2004 como de um jogo de 2018?

Essas includes do jeito que processa a imagem até fica bem bom

BuDweiSeR
13/03/2018, 01:59 AM
Galera!

Estou criando um comando de /permissaonick e /autorizarnick. Ao player digitar /permissaonick é enviada para a Staff do servidor e quando o admin digitar /autorizarnick mostrar a Dialog ao player para realizar a troca de nick.

Minha dúvida é a seguinte, Como mostro a Dialog ao player assim que eu autorizar a troca de nick?

Sky™
13/03/2018, 11:24 AM
Saudações!


Galera!

Estou criando um comando de /permissaonick e /autorizarnick. Ao player digitar /permissaonick é enviada para a Staff do servidor e quando o admin digitar /autorizarnick mostrar a Dialog ao player para realizar a troca de nick.

Minha dúvida é a seguinte, Como mostro a Dialog ao player assim que eu autorizar a troca de nick?

o administrador poderia usar como parametro o id do jogador /autorizarnick [id]

BuDweiSeR
13/03/2018, 01:04 PM
Veja como fiz...

CMD:permissaonick(playerid, params[])
{
static str[128];

sendInfoMessage(playerid, "Solicitação enviada à Staff do servidor. Aguarde a aprovação ou reprovação da mesma.");

format(str, sizeof(str), "*** O(A) Jogador(a) %s está pedindo permissão para alterar seu nick.", Player[playerid][pName]);
SendAdminMasterMessage(str);

if(permissaonick[playerid] == true)
{
sendAdminAction(playerid, "O(A) Admin liberou você para alterar seu nick.");
ShowPlayerDialog(playerid, P_NICK, DIALOG_STYLE_INPUT, "{00FA9A}Nick Name - San Andreas City", "\n {00FF00}»» \
{FFFFFF}Digite seu nick:\n \n {FF0000}Obs: Ao alterar seu nick você poderá realizar nova troca só após 30 Dias. ", "Alterar", "Cancelar");
}
return 1;
}

CMD:autorizarnick(playerid, params[])
{
if(Player[playerid][pAdmin] < 3)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

static id;

if(sscanf(params, "u", id))
return sendSyntaxMessage(playerid, "/autorizarnick [ID]");

if(id == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

permissaonick[id] = true;

sendAdminAction(playerid, "Alteração de nick permitida ID: %s", Player[id][pName]);
return 1;
}

FerrariL
13/03/2018, 01:04 PM
Galera!

Estou criando um comando de /permissaonick e /autorizarnick. Ao player digitar /permissaonick é enviada para a Staff do servidor e quando o admin digitar /autorizarnick mostrar a Dialog ao player para realizar a troca de nick.

Minha dúvida é a seguinte, Como mostro a Dialog ao player assim que eu autorizar a troca de nick?
__________________
CMD:autorizarnick(playerid, params[])
{
new id;
if(sscanf(params, "d",id)) return SendClientMessage(playerid,-1,"Use: /autorizarnick [id]");
ShowPlayerDialog(id, ID_DIALOG, DIALOG_STYLE_INPUT, "Troca de Nick", "Digite o nick desejado", "Aceitar", "Cancelar");
return true;
} Edite com o id da sua dialog e o tipo de dialog que você deseja,link dos tipos : http://wiki.sa-mp.com/wiki/Dialog_Styles

Bem usando seu código ficaria :
CMD:permissaonick(playerid, params[])
{
static str[128];

sendInfoMessage(playerid, "Solicitação enviada à Staff do servidor. Aguarde a aprovação ou reprovação da mesma.");

format(str, sizeof(str), "*** O(A) Jogador(a) %s está pedindo permissão para alterar seu nick.", Player[playerid][pName]);
SendAdminMasterMessage(str);
return 1;
}

CMD:autorizarnick(playerid, params[])
{
if(Player[playerid][pAdmin] < 3)
return sendErrorMessage(playerid, MSG_CMD_WITHOUT_PERMISSION);

static id;

if(sscanf(params, "u", id))
return sendSyntaxMessage(playerid, "/autorizarnick [ID]");

if(id == INVALID_PLAYER_ID)
return sendErrorMessage(playerid, MSG_PLAYER_OFF);

permissaonick[id] = true;

ShowPlayerDialog(id, P_NICK, DIALOG_STYLE_INPUT, "{00FA9A}Nick Name - San Andreas City", "\n {00FF00}»» \
{FFFFFF}Digite seu nick:\n \n {FF0000}Obs: Ao alterar seu nick você poderá realizar nova troca só após 30 Dias. ", "Alterar", "Cancelar");

sendAdminAction(playerid, "Alteração de nick permitida ID: %s", Player[id][pName]);
return 1;
}

BuDweiSeR
13/03/2018, 01:54 PM
Muito obrigado é coisa simples...

Agora estou com outra dúvida como atualizo o nick do player na tabela MySQL.

Modelo que fiz:
if(dialogid == P_NICK)
{

if(response)
{
new StringNick[24], Str[90];

if(3 < strlen(inputtext) > 24)
return sendErrorMessage(playerid, "Use entre 3 à 24 Caracteres");

SetPlayerName(playerid, StringNick);
sendInfoMessage(playerid, "Você alterou seu nick para %s.", StringNick);

format(Str, sizeof(Str), "| NICK | %s alterou seu nick para %s.", Player[playerid][pName], StringNick);
SendClientMessageToAll(COR_YELLOW , Str);

format(Query, sizeof(Query), "UPDATE `players` SET `Name` = '%s' WHERE `players`", StringNick);
mysql_tquery(MySQL_Connection, Query);
}
else {
sendServerMessage(playerid, "Você cancelou a alteração de nick.");
}

return true;
}

DelK
13/03/2018, 02:26 PM
Muito obrigado é coisa simples...

Agora estou com outra dúvida como atualizo o nick do player na tabela MySQL.

Modelo que fiz:
if(dialogid == P_NICK)
{

if(response)
{
new StringNick[24], Str[90];

if(3 < strlen(inputtext) > 24)
return sendErrorMessage(playerid, "Use entre 3 à 24 Caracteres");

SetPlayerName(playerid, StringNick);
sendInfoMessage(playerid, "Você alterou seu nick para %s.", StringNick);

format(Str, sizeof(Str), "| NICK | %s alterou seu nick para %s.", Player[playerid][pName], StringNick);
SendClientMessageToAll(COR_YELLOW , Str);

format(Query, sizeof(Query), "UPDATE `players` SET `Name` = '%s' WHERE `players`", StringNick);
mysql_tquery(MySQL_Connection, Query);
}
else {
sendServerMessage(playerid, "Você cancelou a alteração de nick.");
}

return true;
}
mysql_format(MySQL_Connection, Query, sizeof(Query), "UPDATE `players` SET `Name`='%s' WHERE `Name`='%s' LIMIT 1;", StringNick, Player[playerid][pName]));

F1N4L
13/03/2018, 02:28 PM
Tenta...


if(dialogid == P_NICK)
{

if(response)
{
new NewNick[MAX_PLAYER_NAME], Str[90];

if(3 <= strlen(inputtext) <= 24)
return sendErrorMessage(playerid, "Use entre 3 à 24 Caracteres");

SetPlayerName(playerid, NewNick);

sendInfoMessage(playerid, "Você alterou seu nick para %s.", NewNick);

format(Str, sizeof(Str), "| NICK | %s alterou seu nick para %s.", Player[playerid][pName], NewNick);
SendClientMessageToAll(COR_YELLOW , Str);

format(Query, sizeof(Query), "UPDATE `players` SET `Name` = '%s' WHERE `Name` = '%s'", NewNick, Player[playerid][pName]);
mysql_tquery(MySQL_Connection, Query);
}
else {
sendServerMessage(playerid, "Você cancelou a alteração de nick.");
}

return true;
}

Dayvison_
13/03/2018, 07:45 PM
Pessoas, estou utilizando o plugin Discord Connector, porém percebi que os acentos ficam bugados quando é enviado ao servidor e quando é para enviar ao Discord, nem chega aparecer. O "é" por exemplo, fica como "É", alguém saberia arrumar isso?

https://github.com/maddinat0r/samp-discord-connector/issues/27

Izaque1998
14/03/2018, 01:13 PM
dcmd_exe(playerid)
{
new number = 100, porcentagem 50;
#define Resultado (porcentagem * number) / 100)

printf("%f%%",(Resultado);
GivePlayerMoney(playerid, Resultado);

//como posso pegar esse resto, no caso 50%
return 1;
}

Dayvison_
14/03/2018, 02:01 PM
alguem sabe uma forma de pegar o resto da porcentagem
exe;

dcmd_exe(playerid)
{
new number = 100, porcentagem 50;
#define Resultado (porcentagem * number) / 100)

printf("%f%%",(Resultado);
GivePlayerMoney(playerid, Resultado);

//como posso pegar esse resto, no caso 50%
return 1;
}


Total = 1000
Porcentagem = 20
Valor = (Total / 100) * Porcentagem
Resto = Total - ((Total / 100) * Porcentagem)

Izaque1998
14/03/2018, 02:09 PM
Total = 1000
Porcentagem = 20
Valor = (Total / 100) * Porcentagem
Resto = Total - ((Total / 100) * Porcentagem)


muito obrigado funciona ~

uardo12
15/03/2018, 09:15 PM
Eu o publico aqui porque aparentemente a seção espanhola o fechou. Bem, eu vou para o meu assunto:
Bom, eu gostaria de saber como usar a variável Settimer para executar o comando / tempo, ou seja, esperar o tempo para que a parte do messagelS apareça, mas começar a contagem depois de entrar no checkpoint. Espero que você me entenda
public OnPlayerEnterCheckpoint(playerid)
{
if(PUERTAE[playerid])
{
ApplyAnimation(playerid,"CASINO","Slot_Plyr",4,1,1,1,0,1000,1);
SendClientMessage(playerid,COLOR_VERDE,"Has entregado el pasaje al recepcionista,Por favor espere hasta que llamen para subirse al bus");
SetTimer("messageLS", 1000, false);
DisablePlayerCheckpoint(playerid);
PUERTAE[playerid] = false;


}
if(PUERTAC[playerid])
{
ApplyAnimation(playerid,"CASINO","Slot_Plyr",4,1,1,1,0,1000,1);
SendClientMessage(playerid,COLOR_VERDE,"Has entregado el pasaje al recepcionista,Por favor espere hasta que llamen para subirse al bus");
SetTimer("EntregandoPasaje", 3000, false);
DisablePlayerCheckpoint(playerid);
PUERTAC[playerid] = false;
}
return 1;
}
public messageLS(playerid)
{
if(!ENTRAR[playerid])
{
PlayAudioStreamForPlayer(playerid,"https://dl.dropbox.com/s/160sllpah3dul9l/Sonido%20aviso%20planta%20tono-%20Efecto%20de%20sonido.mp3");
SendClientMessage(playerid,COLOR_VERDE,"Tu bus esta apunto de partir por favor acercate a la puerta de abordaje E");
ENTRAR[ playerid ] = true;
}
return 1;
}

IgorLuiz
16/03/2018, 06:42 AM
Pessoal tava revisando meu gamemod e me deparei com o AntiDeAMX, esse método de proteção ainda funciona ? admito que estou desatualizado sobre.

Sky™
17/03/2018, 02:00 PM
Saudações!


Sim, serve apenas para impedir uma possível engenharia reversa para a descompilação do game mode.

apesar de nunca ter visto um de-compiler funcional.

Felpz
19/03/2018, 06:46 PM
Alguém poderia me explicar quê utilidade tem "INVALID_PLAYER_ID", pois estou tentando desenvolver um sistema de spec "/tv" e não sei pra que serve a função acima... ???

@TOPIC
Não consegui encontrar nenhum tutorial relacionado. :(

F1N4L
19/03/2018, 08:11 PM
Alguém poderia me explicar quê utilidade tem "INVALID_PLAYER_ID", pois estou tentando desenvolver um sistema de spec "/tv" e não sei pra que serve a função acima... ???

@TOPIC
Não consegui encontrar nenhum tutorial relacionado. :(

Um ID inválido corresponde ao número 65535. Não tem nada de mais...
#define INVALID_PLAYER_ID 65535

Usando IsPlayerConnected é a mesma coisa, porém essa função retorna 0 ou 1.

IgorLuiz
20/03/2018, 02:41 AM
Qual melhor o plugin pra carregamento de mapas, fallout's object streamer ou streamer plugin do Incognito? :confused:

renatog
20/03/2018, 03:24 AM
Qual melhor o plugin pra carregamento de mapas, fallout's object streamer ou streamer plugin do Incognito? :confused:

Sem sombra de dúvida o streamer plugin do Incognito, pois é atualizado até hoje.
https://github.com/samp-incognito/samp-streamer-plugin

BuDweiSeR
22/03/2018, 12:37 AM
Galera!

O que uso para salvar tudo do Player, Tipo estou usando o MySQL para salvar Senha, Dinheiro, Level e Talz.
Mais são muitas coisas que tem que salvar, Tipo última posição, Casa, Dinheiro, Empresa, Utilitarios, Morte, Skill na favela, Skin, veículos próprio e isso deixa à tabela MySQL muito grande o que posso fazer?

Alguém poderia me dar uma dica?

renatog
22/03/2018, 01:56 AM
Galera!

O que uso para salvar tudo do Player, Tipo estou usando o MySQL para salvar Senha, Dinheiro, Level e Talz.
Mais são muitas coisas que tem que salvar, Tipo última posição, Casa, Dinheiro, Empresa, Utilitarios, Morte, Skill na favela, Skin, veículos próprio e isso deixa à tabela MySQL muito grande o que posso fazer?

Alguém poderia me dar uma dica?

Não tem problema ter uma coluna volumosa, é pra isso que você está utilizando MySQL. Há situações que você pode relacionar um certo dado numa tabela X com os dados de uma conta de um jogador Y.
Exemplo:
Zezinho_157 é o dono da casa 10 do seu servidor. Você salvou na tabela de casas que o dono da casa 10 é o Zezinho_157, então você não precisa salvar na conta dele que sua casa é a de id 10.
Quando ele logar você procura na tabela de casas se alguma delas está marcada como sendo propriedade do Zezinho_157 (seja por nome ou por id de conta) e seta o id 10 na célula de casa da array dele (no servidor, que não tem nada a ver com o banco de dados).
É isso o que você pode fazer pra diminuir a quantidade de informação duplicada no seu banco de dados e "enxugá-lo", mas realmente não tem problema ter uma tabela volumosa e também não tem problema ter muitas tabelas.
Lembre-se: muitas empresas que guardam um grande volume de dados usaram ou ainda usam MySQL, como ******, ********, ******* etc. Não se preocupe muito com o tamanho.

ThiagoScottish
23/03/2018, 06:25 PM
Estou com uma pequena duvida, então acho que aqui é o lugar certo

Aqui estou carregando os scores do player certo?, minha duvida é, como faço pra carregar senhas / frases / strings com cache_get_field? :confused:

APlayerData[playerid][PlayerScore] = cache_get_field_content_int(0, "Score");

Adiiti
23/03/2018, 06:36 PM
Qual a versão do seu MySQL ?

ThiagoScottish
23/03/2018, 06:48 PM
Qual a versão do seu MySQL ?

Estou usando o R39-3

F1N4L
23/03/2018, 06:56 PM
Estou com uma pequena duvida, então acho que aqui é o lugar certo

Aqui estou carregando os scores do player certo?, minha duvida é, como faço pra carregar senhas / frases / strings com cache_get_field? :confused:

APlayerData[playerid][PlayerScore] = cache_get_field_content_int(0, "Score");

Sim.
Versão R-33 à R-39-6 usa-se assim.
A partir de R-40 o valor é passado por referência.

Mais detalhes: http://wiki.sa-mp.com/wiki/MySQL/R33

ThiagoScottish
23/03/2018, 07:07 PM
Obrigado por responder F1N4L, estou ciente como se usa, para carregar numeros inteiros como dinheiro / score, uso o cache_get_field_content_int, mas e para carregar senhas / frases ??

F1N4L
23/03/2018, 07:08 PM
Obrigado por responder F1N4L, estou ciente como se usa, para carregar numeros inteiros como dinheiro / score, uso o cache_get_field_content_int, mas e para carregar senhas / frases ??

cache_get_field_content

ThiagoScottish
23/03/2018, 10:12 PM
cache_get_field_content

Então eu deveria usar assim ?

APlayerData[playerid][Frase] = cache_get_field_content(0, "Frase");

Recebi um aviso :confused:

warning 202: number of arguments does not match definition

Adiiti
24/03/2018, 03:09 PM
O método de uso é este

cache_get_field_content(0, "Frase", APlayerData[playerid][Frase], mysql, /*MAX_STRING_FRASE*/);

Em mysql coloque a variável da conexão do seu MySQL e em MAX_STRING_FRASE coloque o sizeof da sua string

[BOPE]Seu._.Madruga
25/03/2018, 02:18 PM
Uma pergunta como que eu faço para um actor entrar de G em um veículo é possível?

BrunoBM23
25/03/2018, 02:45 PM
Seu._.Madruga;4006392']Uma pergunta como que eu faço para um actor entrar de G em um veículo é possível?
Não é possível.

Actors e NPCs não são a mesma coisa (mesmo que o termo NPC, que significa Non Playable Character, seja aplicavel à actors). Eles não usam slots do servidor e não podem ser tratados de tal maneira.

Como diz no próprio wiki: Actors foram projetados para ficar apenas em algum lugar, por exemplo, lojistas e caixas etc... Eles podem realizar animações (uma vez ou como em um loop)

Logo, você não pode coloca-los em um veículo, e nem mesmo fazer com que eles andem (mesmo isso sendo possível com animações, porém, não sincronizaria com jogadores fora da zona mínima de stream-in e o mesmo aconteceria se você sair e voltar para a zona, pois o actor apareceria na posição original).

ThiagoScottish
28/03/2018, 02:52 AM
Eu preciso deletar o cache sempre que fizer uma consulta ??

F1N4L
28/03/2018, 01:17 PM
Eu preciso deletar o cache sempre que fizer uma consulta ??

Sim!

renatog
28/03/2018, 04:14 PM
Eu preciso deletar o cache sempre que fizer uma consulta ??

Você não precisa explicitamente deletar o cache usando threaded queries (mysql_tquery ou mysql_pquery), pois o cache é deletado automaticamente.
Se você está usando a query normal que é executada no mesmo processo principal do servidor e está fazendo esta pergunta é melhor você ler alguns tutoriais e a wiki do plugin.

F1N4L
28/03/2018, 08:53 PM
Alguém sabe me informar se o plugin "socket" necessita de alguma dependência?
Ele simplesmente não carrega.
To usando windows 10.

PilateGR
29/03/2018, 03:28 PM
Amigos, queria saber ser existe algum site disponibilizando emails validos, apenas emails brasileiros! Por exemplo: @gmail.com, @hotmail.com, @outlook.com, etc... Pois estou a desenvolver um sistema de registro com emails validos.

F1N4L
29/03/2018, 05:01 PM
Amigos, queria saber ser existe algum site disponibilizando emails validos, apenas emails brasileiros! Por exemplo: @gmail.com, @hotmail.com, @outlook.com, etc... Pois estou a desenvolver um sistema de registro com emails validos.

Neste caso, para evitar problemas e bugs com relação à validação do email, recomendo que utilize alguma API para VALIDAÇÃO do email, ou seja, retorna informações sobre:
*Email temporário;
*Email válido;
*Email não válido.

PilateGR
30/03/2018, 12:48 AM
Neste caso, para evitar problemas e bugs com relação à validação do email, recomendo que utilize alguma API para VALIDAÇÃO do email, ou seja, retorna informações sobre:
*Email temporário;
*Email válido;
*Email não válido.

Certo, Obrigado !

Cleyson
30/03/2018, 01:31 PM
Estou com um problema, os objetos criados com a streamer não estão carregando. Somente os objetos, o restante como pickups, icones, 3dtext estão normais.

O plugin e inc estão atualizados e carregam normalmente, os visual studio também.
Mas no game o objeto não aparece.

Alguém que ja passou por isso tem a solução ?

SammyJ
30/03/2018, 05:09 PM
Estou com um problema, os objetos criados com a streamer não estão carregando. Somente os objetos, o restante como pickups, icones, 3dtext estão normais.

O plugin e inc estão atualizados e carregam normalmente, os visual studio também.
Mas no game o objeto não aparece.

Alguém que ja passou por isso tem a solução ?


Tem muitos objetos ?

Cleyson
30/03/2018, 06:14 PM
Tem muitos objetos ?

Já resolvi amigo, não sei se isso é um bug do streamer, mas se atingir o limite de criar objetos nativos,
não cria nenhum outro com streamer.

Acabei por descobrir isso com testes. Fica aqui a solução para quem algum dia tiver o mesmo problema.

ThiagoScottish
05/04/2018, 02:43 AM
Tem alguma forma de fazer com que o servidor desligue caso o a conexão mysql não seja bem sucedida ?

renatog
05/04/2018, 03:04 AM
Tem alguma forma de fazer com que o servidor desligue caso o a conexão mysql não seja bem sucedida ?

MySQL R40+:
A função mysql_connect retorna o id do handle da conexão. Caso ela seja mal sucedida ela retornará MYSQL_INVALID_HANDLE (MySQL:0), então é só você verificar se o handle é inválido +/- assim:

new MySQL:handle;
handle = mysql_connect(...);

if (handle == MYSQL_INVALID_HANDLE)
SendRconCommand("exit");

ThiagoScottish
05/04/2018, 03:07 AM
MySQL R40+:
A função mysql_connect retorna o id do handle da conexão. Caso ela seja mal sucedida ela retornará MYSQL_INVALID_HANDLE (MySQL:0), então é só você verificar se o handle é inválido +/- assim:

new MySQL:handle;
handle = mysql_connect(...);

if (handle == MYSQL_INVALID_HANDLE)
SendRconCommand("exit");


Obrigado!

ThiagoScottish
07/04/2018, 02:22 AM
Peguei esse FS gringo que mostra os dias da semana, porem ta um 1 dia adiantado, hoje é sexta e ta mostrando sábado, alguém sabe como resolver ?

#include <a_samp>
#define FILTERSCRIPT

new Text:Clock; new Text:WeekDayg;

forward GetWeekdayNum(d,m,y);
forward settime();
forward weatherchange();

public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" [FS]Weekday Clock - by Jonesy ");
print("--------------------------------------\n");

WeekDayg = TextDrawCreate(502.000000,11.000000,"----");
TextDrawAlignment(WeekDayg,0);
TextDrawBackgroundColor(WeekDayg,0x000000ff);
TextDrawFont(WeekDayg,3);
TextDrawLetterSize(WeekDayg,0.700000,1.000000);
TextDrawColor(WeekDayg,0xffff00cc);
TextDrawSetOutline(WeekDayg,1);
TextDrawSetProportional(WeekDayg,1);
TextDrawSetShadow(WeekDayg,10);

Clock = TextDrawCreate(547.0, 24.0, "--:--");
TextDrawLetterSize(Clock, 0.6, 1.8);
TextDrawFont(Clock, 3);
TextDrawSetOutline(Clock, 2);

SetTimer("settime",1000,true);
SetTimer("weatherchange",10800000,true);
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

public OnPlayerSpawn(playerid)
{
//TextDrawShowForPlayer(playerid, Clock);
TextDrawShowForPlayer(playerid, WeekDayg);
SendClientMessage(playerid, 0xFF9900AA, "[FS]Weekday Clock - by Jonesy");
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
TextDrawHideForPlayer(playerid, Clock);
TextDrawHideForPlayer(playerid, WeekDayg);
return 1;
}

public weatherchange(){
SetWeather(random(18));
}

public settime(){
new hour,minute,second;
new string[256];
gettime(hour,minute,second);
if (minute <= 9){format(string,25,"%d:0%d",hour,minute);}
else {format(string,25,"%d:%d",hour,minute);}
TextDrawSetString(Clock,string);
SetWorldTime(hour);
new day, month, year;
new weekday;
getdate(day, month, year);
weekday = GetWeekdayNum(day, month, year);
if(weekday == 1){TextDrawSetString(WeekDayg,"Segunda");}
if(weekday == 2){TextDrawSetString(WeekDayg,"Terça");}
if(weekday == 3){TextDrawSetString(WeekDayg,"Quarta");}
if(weekday == 4){TextDrawSetString(WeekDayg,"Quinta");}
if(weekday == 5){TextDrawSetString(WeekDayg,"Sexta");}
if(weekday == 6){TextDrawSetString(WeekDayg,"Sabado");}
if(weekday == 7){TextDrawSetString(WeekDayg,"Domingo");}
return 1;
}

public GetWeekdayNum(d,m,y)
{
m-=2;
if(m<=0)
{
y--;
m+=12;
}
new cen = y/100;
y=getrem(y,100);
new w = d + ((13*m-1)/5) + y + (y/4) + (cen/4) - 2*cen;
w=getrem(w,7);
if (w==0) w=7;
return w-1;
}

getrem(a,b)
{
new div = a/b;
new left = a-b*div;
return left;
}

[BOPE]Seu._.Madruga
16/04/2018, 02:15 AM
Qual include que está pessoa utilizou para deixar o botão da dialog com este fundo ?

http://i.imgur.com/deFVPtZ.png

Dayvison_
16/04/2018, 02:27 AM
Isso e uma alteração no sampgui do cliente

F1N4L
18/04/2018, 04:17 PM
Alguém saberia me informar sobre qual o tempo de resposta que o servidor leva para entender que o jogador saiu do server finalizando o processo do gta sa?

RodrigoMSR
18/04/2018, 05:03 PM
Alguém saberia me informar sobre qual o tempo de resposta que o servidor leva para entender que o jogador saiu do server finalizando o processo do gta sa?
O mesmo definido por playertimeout no server.cfg (por padrão, 10 segundos).

F1N4L
18/04/2018, 05:04 PM
O mesmo definido por playertimeout no server.cfg (por padrão, 10 segundos).

Muito obrigado!

ipsLuan
18/04/2018, 06:42 PM
É possível pegar o nome do playerid , e colocar em duas strings ?

Ex:NoMe_PlAyEr

transforma a %s

em : %s %s > NoMe_ e a outra PlAyEr

abrçs!

stock pegarNome(playerid)
{
new namestring[2][MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
split(name, namestring, '_');
return namestring[0];
}

stock pegarSobrenome(playerid)
{
new namestring[2][MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
split(name, namestring, '_');
return namestring[1];
}

uliano
18/04/2018, 09:21 PM
Queria Por staff na frente do meu nome, staff, ajudante e etc.. pra por no OnPlayerText queria fazer isso
Obs: para setar admin é assim:
/setadmin [id] 0-5

NelsonC
19/04/2018, 03:20 PM
Queria Por staff na frente do meu nome, staff, ajudante e etc.. pra por no OnPlayerText queria fazer isso
Obs: para setar admin é assim:
/setadmin [id] 0-5

http://forum.sa-mp.com/showthread.php?t=652113

F1N4L
19/04/2018, 06:59 PM
Só para reforçar:

Alguém sabe me informar por que não está carregando o plugin socket?
https://i.imgur.com/CguaPQw.png

@EDIT

É windows e sim, o plugin está na pasta "plugins"....

@EDIT²

Resolvido.

Dependências: http://forum.sa-mp.com/showpost.php?p=3669681&postcount=15

Minerva
22/04/2018, 05:23 PM
Opa,

Alguem tem ideia de como eu posso deletar uma linha específica com a funçao file do pawn?

Por ex:

/deletarlinha [nome que tem linha]

@Resolvido

uliano
27/04/2018, 05:37 PM
Alguem que possa me ajudar, eu mudo o local de spawn civil do player até ai certo, so que quando ele morre inves d ir pro hopital mias proximo, ele vai pro local de spawn, sabem como resolver ?

Felpz
28/04/2018, 05:21 PM
Galera vocês possui alguma 'Formatação de moeda (R$)', em números reais 'Ponto, e Virgula' que possa compartilhar? Pois consegui um mais a formação é por virgula e ou posso muda-los para ponto, mais seria melhor ponto, e virgula igual ao real brasileiro...

/* R$100,00 / R$1.000,00 */

FormatMoeda(Numero, const Texto[] = ".")
{
new Var[16];
format(Var, sizeof(Var), "%d", Numero);
for(new X = strlen(Var) - 3; X > 0; X -= 3) strins(Var, Texto, X);
return Var;
}

RodrigoMSR
28/04/2018, 05:43 PM
Galera vocês possui alguma 'Formatação de moeda (R$)', em números reais 'Ponto, e Virgula' que possa compartilhar? Pois consegui um mais a formação é por virgula e ou posso muda-los para ponto, mais seria melhor ponto, e virgula igual ao real brasileiro...

/* R$100,00 / R$1.000,00 */

FormatMoeda(Numero, const Texto[] = ".")
{
new Var[16];
format(Var, sizeof(Var), "%d", Numero);
for(new X = strlen(Var) - 3; X > 0; X -= 3) strins(Var, Texto, X);
return Var;
}

FormatMoeda(Numero, const Texto[] = ".")
{
new Var[20];
format(Var, sizeof(Var), "%d", Numero);
for(new X = strlen(Var) - 3; X > 0; X -= 3) strins(Var, Texto, X);
format(Var, sizeof(Var), "R$%s,00", Var);
return Var;
}

Felpz
28/04/2018, 05:55 PM
FormatMoeda(Numero, const Texto[] = ".")
{
new Var[20];
format(Var, sizeof(Var), "%d", Numero);
for(new X = strlen(Var) - 3; X > 0; X -= 3) strins(Var, Texto, X);
format(Var, sizeof(Var), "R$%s,00", Var);
return Var;
}


Nuss senhora, perfeito como eu queria. valeu Rodrigo!!! <3

Rhayziin
30/04/2018, 02:09 AM
Alguém por favor me recomenda algum tutorial (ou base muito boa) sobre inventários (drop item)... quero fazer um sistema de inventário complexo (kit médico, tipos de balas de armas e etc).

Cauezin
30/04/2018, 04:53 AM
Alguém por favor me recomenda algum tutorial (ou base muito boa) sobre inventários (drop item)... quero fazer um sistema de inventário complexo (kit médico, tipos de balas de armas e etc).

http://forum.sa-mp.com/showthread.php?t=626829

É de DayZ, mas você pode tentar tirar alguma coisa dai.

FerrariL
30/04/2018, 01:50 PM
Alguém por favor me recomenda algum tutorial (ou base muito boa) sobre inventários (drop item)... quero fazer um sistema de inventário complexo (kit médico, tipos de balas de armas e etc). Tem este filterscript do Caio. Link : http://forum.sa-mp.com/showthread.php?t=600346

F1N4L
02/05/2018, 01:52 PM
Há algum lugar em que eu possa pegar nomes de pastas/extensões/arquivos suspeitos no diretório do SAMP?
Tenho apenas o básico...

SaDaN
02/05/2018, 05:17 PM
Gostaria de saber se tem algum limite de itens nas tabelas SQLite, exemplo, a tabela pode ter apenas "id, nome, senha, admin" ou pode ter quantas variáveis eu quiser?

arakuta
02/05/2018, 05:31 PM
Gostaria de saber se tem algum limite de itens nas tabelas SQLite, exemplo, a tabela pode ter apenas "id, nome, senha, admin" ou pode ter quantas variáveis eu quiser?

https://www.sqlite.org/limits.html

SaDaN
02/05/2018, 11:02 PM
Obrigado

uliano
06/05/2018, 02:31 PM
C:\pawno\include\progress.inc(63) : warning 219: local variable "x" shadows a variable at a preceding level
C:\pawno\include\progress.inc(63) : warning 219: local variable "y" shadows a variable at a preceding level
C:\Server de teste\filterscripts\exemplo.pwn(87) : warning 217: loose indentation
C:\Server de teste\filterscripts\exemplo.pwn(88) : error 012: invalid function call, not a valid address
C:\Server de teste\filterscripts\exemplo.pwn(88) : warning 215: expression has no effect
C:\Server de teste\filterscripts\exemplo.pwn(88) : warning 215: expression has no effect
C:\Server de teste\filterscripts\exemplo.pwn(88) : warning 215: expression has no effect
C:\Server de teste\filterscripts\exemplo.pwn(88) : warning 215: expression has no effect
C:\Server de teste\filterscripts\exemplo.pwn(88) : warning 215: expression has no effect
C:\Server de teste\filterscripts\exemplo.pwn(88) : error 001: expected token: ";", but found ")"
C:\Server de teste\filterscripts\exemplo.pwn(88) : error 029: invalid expression, assumed zero
C:\Server de teste\filterscripts\exemplo.pwn(88) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.


Tentando Criar uns actor no meu fs, e nao ta indo ta dando erro.
Linhas
{
Ajudante = CreateActor(214, 1299.0295, -1862.9023, 13.5628, 177.9491);
GetActorPos(Ajudante, x, y, z);
ApplyActorAnimation(Ajudante, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0);
return 0;
}
{
Soldado = CreateActor(287, 1293.2678, -1862.7346, 13.5628, 183.3974);
GetActorPos(Soldado, x, y, z);
ApplyActorAnimation(Soldado, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0);
return 0;
}

Obs: Mandei os 2 actors ja, vai se não tem erro..

Izaque1998
06/05/2018, 05:27 PM
eu não sei porque você pegou a posiçao dos actors mas para numeros se deve usar float, você deve ter criado as variaveis x,y,z da maneira errada tente assim


new Float:x, Float:y, Float:z;
Ajudante = CreateActor(214, 1299.0295, -1862.9023, 13.5628, 177.9491);
GetActorPos(Ajudante, x, y, z);
ApplyActorAnimation(Ajudante, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0);

Soldado = CreateActor(287, 1293.2678, -1862.7346, 13.5628, 183.3974);
GetActorPos(Soldado, x, y, z);
ApplyActorAnimation(Soldado, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0);

Minerva
07/05/2018, 01:15 PM
Opa, eae raphese

Teria como uma stock ou função retornar mais de 1 valor? tipo 15.. 20 valores armazenados em variáveis dentro da própria função...

FerrariL
07/05/2018, 01:17 PM
Opa, eae raphese

Teria como uma stock ou função retornar mais de 1 valor? tipo 15.. 20 valores armazenados em variáveis claro? Passe os parâmetros por referência.

F1N4L
07/05/2018, 02:23 PM
Opa, eae raphese

Teria como uma stock ou função retornar mais de 1 valor? tipo 15.. 20 valores armazenados em variáveis dentro da própria função...

Como dito por @FerrariL, você pode passar por referência.

Um breve exemplo para passar arrays:


// -- Usando a função
new param_string[2][100], param_int[2];
MyFunction(param_string, param_int);

// -- Função
stock MyFunction(param_string[][100], param_int[])
{
strcat(param_string[0], "mensagem 1");
strcat(param_string[1], "mensagem 2");

param_int[0] = 100;
param_int[1] = 200;

return true;
}


No exemplo acima você trabalha com arrays de duas matrizes/índices.

arakuta
07/05/2018, 02:25 PM
Você pode passar um vetor ou matriz também...



#include <a_samp>

main()
{

print("Sistema iniciado");

new vector[4];

vector = ReturnVector();

printf("[0] = %d | [1] = %d | [2] = %d | [3] = %d",vector[0],vector[1],vector[2],vector[3]);

new matrix[2][2];

matrix = ReturnMatrix();

printf("%d | %d | %d | %d",matrix[0][0],matrix[0][1],matrix[1][0],matrix[1][1]);


}

stock ReturnVector()
{

static _x[4];

_x[0] = 7879;
_x[1] = 452;
_x[2] = 456;
_x[3] = 845452;

return _x;
}

stock ReturnMatrix()
{
static _xy[2][2];

_xy[0][0] = 100; _xy[0][1] = 3045;
_xy[1][0] = 480; _xy[1][1] = 50440;

return _xy;
}

public OnGameModeInit()
{

return 1;
}

Minerva
07/05/2018, 03:26 PM
Obrigado a todos XD

@edit Resolvido!

uliano
07/05/2018, 11:24 PM
Ola, quero remover o Chat Global do meu server, Aliais, Nao me venha com isso ai

public OnGameModeInit ( )
{
LimitGlobalChatRadius ( 200,0 ) ;
return 1 ;
}

Isso nao Funciona, Ja diminui até pra 15,0 e mudou em nada..

Minha OnPlayerText Ta ai

public OnPlayerText(playerid, text[])
{
new string[256];
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);

if(PlayerInfo[playerid][Logged] == 0)
{
SendClientMessage(playerid, Vermelho, "Logue-se antes.");
return 0;
}

if(Mute[playerid] == 1)
{
SendClientMessage(playerid, Vermelho, "|_ ANTI-FLOOD _| Você não pode falar enquanto está mudo!");
return 0;
}

if(NaFaculdade[playerid] == 1)
{
Conversa[playerid] = Conversa[playerid]++;
if(Conversa[playerid] == 3)
{
minutos[playerid] = 0;
NaFaculdade[playerid] = 0;
SpawnPlayer(playerid);
SendClientMessage(playerid, Vermelho, "Você conversou muito e foi expulso da biblioteca!");
}
format(string, sizeof(string), "Você está conversando. Você recebeu um aviso, agora você está com %d/3 aviso(s).", Conversa[playerid]);
SendClientMessage(playerid, Aviso, string);
return 0;
}

if(!(pAdmin[playerid] >= 1))
{
for(new p = 0; p < sizeof Palavroes; p++)
{
new fp = strfind(text, Palavroes[p], true);
while(fp != -1)
{
for(new i = 0; i < strlen(Palavroes[p]); i++)
{
text[fp + i] = '_';
}
fp = strfind(text, Palavroes[p], true);
}
}

if(VBIsIP(text))
{
SendClientMessage(playerid, Amarelo, "|_ ANTI-SPAM _| Você não pode fazer spam no servidor.");
return 0;
}
}

if(GetTickCount() > FloodTimer[playerid])
{
FloodAlert[playerid] = 0;
}

FloodTimer[playerid] = GetTickCount() +TimerFlood;
FloodAlert[playerid]++;

if(FloodAlert[playerid] > 1 && FloodAlert[playerid] < AlertFlood-1)
{
format(string, sizeof(string), "|_ ANTI-FLOOD _| Você tem %d/%d avisos.", FloodAlert[playerid], AlertFlood);
SendClientMessage(playerid, Amarelo, string);
}
else if(FloodAlert[playerid] == AlertFlood-1)
{
format(string, sizeof(string), "|_ ANTI-FLOOD _| Você tem %d/%d avisos. Mais um e você será kickado.", FloodAlert[playerid], AlertFlood);
SendClientMessage(playerid, Amarelo, string);
}
else if(FloodAlert[playerid] == AlertFlood)
{
format(string, sizeof(string), "O(A) jogador(a) %s foi kickado(a) por UltraBot. Motivo: Flood Chat", PlayerName(playerid));
SendClientMessageToAll(Amarelo, string);
KickLog(string);
Kick(playerid);
return 0;
}

if(InCall[playerid] == 1)
{
format(str3, 128, " [Celular] %s (%d): %s", GetName(playerid), playerid, text);
SendClientMessage(gc, BLUEWHITE, str3);
format(str3, 128, " [Celular] %s (%d): %s", GetName(playerid), playerid, text);
SendClientMessage(sender, BLUEWHITE, str3);
return 0;
}

if(dini_Int(file, "Entrevista") == 1)
{
format(string,sizeof(string), "[»] O entrevistado %s responde: %s", aname, text);
SendPlayerMessageToAll(playerid, string);
return 0;
}

if(dini_Int(file, "Entrevista") == 2)
{
format(string,sizeof(string), "[»] O reporter %s pergunta: %s", aname, text);
SendPlayerMessageToAll(playerid, string);
return 0;
}

//TAG Staff
if(pAdmin[playerid] == 5){
format(string, sizeof(string), "%s{FFFFFF}[{328E0A}Staff{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}

//TAG ADM
if(pAdmin[playerid] == 4){
format(string, sizeof(string), "%s{FFFFFF}[{d21b1b}Adm-Geral{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}

//TAG Mod
if(pAdmin[playerid] == 3){
format(string, sizeof(string), "%s{FFFFFF}[{008bce}Adm{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}
//TAG Sub-Adm
if(pAdmin[playerid] == 2){
format(string, sizeof(string), "%s{FFFFFF}[{FF8C00}Mod{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}

//TAG Ajudante
if(pAdmin[playerid] == 1){
format(string, sizeof(string), "%s{FFFFFF}[{FFFF00}Ajudante{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}
//TAG VIP
if(vip[playerid] == 1){
format(string, sizeof(string), "%s{FFFFFF}[{FF00FF}VIP{FFFFFF}] [%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}

//FIMMMMMMMMMMMMMMMMM

if(Chatlb == 1)
{
format(string, sizeof(string), "[ID: %d] %s", playerid, text);
SendPlayerMessageToAll(playerid, string);
}
else
{
ChatProximo(playerid, text);
}
return 0;
}

Gguiz
08/05/2018, 05:43 AM
Ola, quero remover o Chat Global do meu server, Aliais, Nao me venha com isso ai

public OnGameModeInit ( )
{
LimitGlobalChatRadius ( 200,0 ) ;
return 1 ;
}

Isso nao Funciona, Ja diminui até pra 15,0 e mudou em nada..

Minha OnPlayerText Ta ai

public OnPlayerText(playerid, text[])
{
new string[256];
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
format(file, sizeof(file), PASTA_CONTAS, aname);

if(PlayerInfo[playerid][Logged] == 0)
{
SendClientMessage(playerid, Vermelho, "Logue-se antes.");
return 0;
}

if(Mute[playerid] == 1)
{
SendClientMessage(playerid, Vermelho, "|_ ANTI-FLOOD _| Você não pode falar enquanto está mudo!");
return 0;
}

if(NaFaculdade[playerid] == 1)
{
Conversa[playerid] = Conversa[playerid]++;
if(Conversa[playerid] == 3)
{
minutos[playerid] = 0;
NaFaculdade[playerid] = 0;
SpawnPlayer(playerid);
SendClientMessage(playerid, Vermelho, "Você conversou muito e foi expulso da biblioteca!");
}
format(string, sizeof(string), "Você está conversando. Você recebeu um aviso, agora você está com %d/3 aviso(s).", Conversa[playerid]);
SendClientMessage(playerid, Aviso, string);
return 0;
}

if(!(pAdmin[playerid] >= 1))
{
for(new p = 0; p < sizeof Palavroes; p++)
{
new fp = strfind(text, Palavroes[p], true);
while(fp != -1)
{
for(new i = 0; i < strlen(Palavroes[p]); i++)
{
text[fp + i] = '_';
}
fp = strfind(text, Palavroes[p], true);
}
}

if(VBIsIP(text))
{
SendClientMessage(playerid, Amarelo, "|_ ANTI-SPAM _| Você não pode fazer spam no servidor.");
return 0;
}
}

if(GetTickCount() > FloodTimer[playerid])
{
FloodAlert[playerid] = 0;
}

FloodTimer[playerid] = GetTickCount() +TimerFlood;
FloodAlert[playerid]++;

if(FloodAlert[playerid] > 1 && FloodAlert[playerid] < AlertFlood-1)
{
format(string, sizeof(string), "|_ ANTI-FLOOD _| Você tem %d/%d avisos.", FloodAlert[playerid], AlertFlood);
SendClientMessage(playerid, Amarelo, string);
}
else if(FloodAlert[playerid] == AlertFlood-1)
{
format(string, sizeof(string), "|_ ANTI-FLOOD _| Você tem %d/%d avisos. Mais um e você será kickado.", FloodAlert[playerid], AlertFlood);
SendClientMessage(playerid, Amarelo, string);
}
else if(FloodAlert[playerid] == AlertFlood)
{
format(string, sizeof(string), "O(A) jogador(a) %s foi kickado(a) por UltraBot. Motivo: Flood Chat", PlayerName(playerid));
SendClientMessageToAll(Amarelo, string);
KickLog(string);
Kick(playerid);
return 0;
}

if(InCall[playerid] == 1)
{
format(str3, 128, " [Celular] %s (%d): %s", GetName(playerid), playerid, text);
SendClientMessage(gc, BLUEWHITE, str3);
format(str3, 128, " [Celular] %s (%d): %s", GetName(playerid), playerid, text);
SendClientMessage(sender, BLUEWHITE, str3);
return 0;
}

if(dini_Int(file, "Entrevista") == 1)
{
format(string,sizeof(string), "[»] O entrevistado %s responde: %s", aname, text);
SendPlayerMessageToAll(playerid, string);
return 0;
}

if(dini_Int(file, "Entrevista") == 2)
{
format(string,sizeof(string), "[»] O reporter %s pergunta: %s", aname, text);
SendPlayerMessageToAll(playerid, string);
return 0;
}

//TAG Staff
if(pAdmin[playerid] == 5){
format(string, sizeof(string), "%s{FFFFFF}[{328E0A}Staff{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}

//TAG ADM
if(pAdmin[playerid] == 4){
format(string, sizeof(string), "%s{FFFFFF}[{d21b1b}Adm-Geral{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}

//TAG Mod
if(pAdmin[playerid] == 3){
format(string, sizeof(string), "%s{FFFFFF}[{008bce}Adm{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}
//TAG Sub-Adm
if(pAdmin[playerid] == 2){
format(string, sizeof(string), "%s{FFFFFF}[{FF8C00}Mod{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}

//TAG Ajudante
if(pAdmin[playerid] == 1){
format(string, sizeof(string), "%s{FFFFFF}[{FFFF00}Ajudante{FFFFFF}][%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}
//TAG VIP
if(vip[playerid] == 1){
format(string, sizeof(string), "%s{FFFFFF}[{FF00FF}VIP{FFFFFF}] [%d]{FFFFFF}: %s", (playerid), playerid, text);
SendPlayerMessageToAll(playerid, string, GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid), GetPlayerColor(playerid));
return false;
}

//FIMMMMMMMMMMMMMMMMM

if(Chatlb == 1)
{
format(string, sizeof(string), "[ID: %d] %s", playerid, text);
SendPlayerMessageToAll(playerid, string);
}
else
{
ChatProximo(playerid, text);
}
return 0;
}

Para desativar o chat global, você terá que fazer uma condicional, assim destinando para quem ou qual irá receber a mensagem. Segue o exemplo abaixo:

new admin;

if(admin[playerid] == 1)
{
//função
}

Fazendo isso apenas as pessoas com o valor setado da variável 'admin = 1' irão ver as mensagens.

Ermanhaut
08/05/2018, 01:11 PM
Usa isso...


stock SendMessageToAllInRange(playerid, message[], range = 15.0){
new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z);
for(new i; i < MAX_PLAYERS; i++){
if(IsPlayerInRangeOfPoint(i, range, X, Y, Z)) SendClientMessage(i, -1, message);
}
}

public OnPlayerText(playerid, text[]){
new string[256], playerName[24];
GetPlayerName(playerid, playerName, 24);
format(string, sizeof string, "%s diz: %s", playerName, text);
SendMessageToAllInRange(playerid, string);
return 0;
}

Gguiz
09/05/2018, 01:54 AM
Usa isso...


stock SendMessageToAllInRange(playerid, message[], range = 15.0){
new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z);
for(new i; i < MAX_PLAYERS; i++){
if(IsPlayerInRangeOfPoint(i, range, X, Y, Z)) SendClientMessage(i, -1, message);
}
}

public OnPlayerText(playerid, text[]){
new string[256], playerName[24];
GetPlayerName(playerid, playerName, 24);
format(string, sizeof string, "%s diz: %s", playerName, text);
SendMessageToAllInRange(playerid, string);
return 0;
}


Isso apenas irá diminuir o range do chat global, não desativa completamente.

arakuta
09/05/2018, 11:17 AM
Isso apenas irá diminuir o ranger do chat global, não desativa completamente.

Se diminuir a range já não é mais chat global

Cleyson
09/05/2018, 05:43 PM
Alguém sabe se existe alguma animação de se sentar em cadeira ?

uliano
09/05/2018, 06:21 PM
Alguém sabe se existe alguma animação de se sentar em cadeira ?

Procure no ******* por "Gm Los Crakudos" la tem o q vc precisa, aproveite e estude ela, garanto que ela tem tudo q voce precisa, na Gm procure por /animes ou /sentar.

uliano
10/05/2018, 12:58 AM
Ola, tou tentando Novamente Criar um Actor, Dessa vez estou usando partir da WIKI e ta dando erros, Olha só

C:\Server de teste\gamemodes\juliano.pwn(2255) : error 017: undefined symbol "CreateActor"
C:\Server de teste\gamemodes\juliano.pwn(2256) : error 017: undefined symbol "ApplyActorAnimation"
C:\Server de teste\gamemodes\juliano.pwn(2257) : error 017: undefined symbol "SetActorPos"

Linhas...
ActorCJ = CreateActor(287, 1292.8953, -1862.9617, 13.5628, 0.0);
ApplyActorAnimation(ActorCJ, "DEALER", "shop_pay", 4.1, 0, 0, 0, 0, 0);
SetActorPos(ActorCJ, 1292.8953,-1862.9617,13.5628);
return 1;
}

Ja criei a new ActorCJ La no topo da Gm..

Izaque1998
10/05/2018, 01:20 AM
certifique-se que as includes samp estejam atualizadas para 0.3.7 e que você colocou "a_actor" na sua pasta de includes.

uliano
10/05/2018, 01:53 AM
certifique-se que as includes samp estejam atualizadas para 0.3.7 e que você colocou "a_actor" na sua pasta de includes.

Solução: #include a_actor

Pow, nem na WIKI fala disso '-'

uliano
12/05/2018, 11:43 AM
Me passem os links de criar tela de login em text Draw pfv
Me falem como eu mudo de Scon para Rcon
Me falem if(IsPlayerAdmin(playerid))
Isso ai Vai ser o Admin rcon ?
Me mandem Links de aplicativos para criar mapas no samp, Menos MTA, porque no meu PC não funciona

Agradeço ;)

FerrariL
12/05/2018, 04:12 PM
Login em TextDraw: http://forum.sa-mp.com/showthread.php?t=550312
IsPlayerAdmin verifica quem está logado na rcon.
Editor de mapa: http://forum.sa-mp.com/showthread.php?t=282801

uliano
12/05/2018, 08:35 PM
Pow, ajudou bastante, mais queria aprender a fazer tela de login..

DarkBr
12/05/2018, 09:09 PM
É possível criar um argumento, onde ele pudesse ser uma string, ou um flutuador, ou um bolean ou um inteiro?

Exemplo bem errado:
stock function(blabla[] blabla float:blabla bool:blabla, outra função..) {

//alguma coisa..
return 1;
}

adaptação

public OnPlayerConnect(playerid) {

new aname[23], Float:PlayerX;
GetPlayerName(playerid, aname, 23);
function(aname, ...); //string

GetPlayerPos(playerid, PlayerX, ...);
function(PlayerX, ...); //float

function(playerid, ...); //inteiro
}

Não sei se vocês entenderam, mas.. Eu queria saber se é possível criar uma função assim, com um argumento, onde ele pudesse ser alterado para outros parâmetros.

Dayvison_
12/05/2018, 09:18 PM
É possivel, tem como dar um exemplo real de uso e o que vai fazer a função?

DarkBr
12/05/2018, 09:26 PM
Ahh não sei como explicar, Eu queria poder obter os dados, seja lá float, string ou inteiro, partindo de um argumento da função.

Minerva
12/05/2018, 09:46 PM
Bom não sei se vai ajudar mas, se você voltar um pouco nas paginas eu tive a mesma duvida:

http://forum.sa-mp.com/showthread.php?t=120278&page=872

Ermanhaut
12/05/2018, 10:24 PM
Você pode fazer o argumento ser uma string inicialmente e então detectar se há pontos no meio dos números (float), se são só números (integer) ou se é a palavra true ou false, se não ela é uma string mesmo...


public MyFunction(playerid, parameter[]){

new bool:Bool, Float:FNumber, INumber;
if(!strcmp(parameter, "true")) Bool = true;
else if(!strcmp(parameter, "false")) Bool = false;
else if(strfind(parameter, ".") != -1) FNumber = floatstr(parameter);
else if(IsNumeric(parameter)) Number = strval(parameter);
else{
// ...
}

}

IsNumeric(const string[]){
for (new i = 0, j = strlen(string); i < j; i++){
if (string[i] > '9' || string[i] < '0') return 0;
}
return 1;
}


Me corrijam se eu estiver errado ou melhorem este código porque eu sou péssimo em otimização.

DarkBr
12/05/2018, 10:57 PM
Você pode fazer o argumento ser uma string inicialmente e então detectar se há pontos no meio dos números (float), se são só números (integer) ou se é a palavra true ou false, se não ela é uma string mesmo...


public MyFunction(playerid, parameter[]){

new bool:Bool, Float:FNumber, INumber;
if(!strcmp(parameter, "true")) Bool = true;
else if(!strcmp(parameter, "false")) Bool = false;
else if(strfind(parameter, ".") != -1) FNumber = floatstr(parameter);
else if(IsNumeric(parameter)) Number = strval(parameter);
else{
// ...
}

}

IsNumeric(const string[]){
for (new i = 0, j = strlen(string); i < j; i++){
if (string[i] > '9' || string[i] < '0') return 0;
}
return 1;
}


Me corrijam se eu estiver errado ou melhorem este código porque eu sou péssimo em otimização.


Eu tenho funções semelhantes:
//float/int/negativo
asnumber(const string[]) {

new lenght=strlen(string);
for(new i=0; i <lenght; i++)
{
switch(string[i])
{
case '.', '-', '0'..'9': continue;
default: return 0;
}
}
return 1;
}



Só queria mesmo era tentar criar um ARGUMENTO, e ele pode optar qualquer tipo de parâmetro, teria como! Porém teri que usar uma função infinita '{Float,_}:...', não iria dar muito certo no meu caso. Mas obg ai!

Dayvison_
13/05/2018, 12:21 PM
Eu estava esperando sua resposta para te dizer que o unico jeito é usando os três pontos, para obter os argumentos o método mais fácil seria usar a include pointers.

@edit getarg tambem funciona, porem só para inteiros/flutuantes você deverá achar uma função para obter strings.

@edit2 você também deveria ultilizar de um macro para facilitar na obtenção de tags, por que a partir do momento que se passam valores para a função que contém ... As tags sao perdidas

renatog
13/05/2018, 01:33 PM
É possível criar um argumento, onde ele pudesse ser uma string, ou um flutuador, ou um bolean ou um inteiro?

Exemplo bem errado:
stock function(blabla[] blabla float:blabla bool:blabla, outra função..) {

//alguma coisa..
return 1;
}

adaptação

public OnPlayerConnect(playerid) {

new aname[23], Float:PlayerX;
GetPlayerName(playerid, aname, 23);
function(aname, ...); //string

GetPlayerPos(playerid, PlayerX, ...);
function(PlayerX, ...); //float

function(playerid, ...); //inteiro
}

Não sei se vocês entenderam, mas.. Eu queria saber se é possível criar uma função assim, com um argumento, onde ele pudesse ser alterado para outros parâmetros.

Você pode usar parâmetros opcionais passados por referência, assim:

enum e_data {
Float:myFloat,
myArr[10],
myInt
}
new playerData[5][e_data];

GetSomeData(playerid, &Float:dataFloat = 0.0, &dataInt = -1, dataArr[] = "", size = sizeof(dataArr))
{
dataFloat = playerData[playerid][myFloat];
dataInt = playerData[playerid][myInt];
strcat(dataArr, playerData[playerid][myArr], size);
}

main() {
new Float:value;
GetSomeData(0, .dataFloat = value);
printf("%f", value);

playerData[0][myFloat] = 10.0;
strcat(playerData[0][myArr], "Olá!", 10);

new str[10];
GetSomeData(0, .dataFloat = value, .dataArr = str);
printf("%f, %s", value, str);
}


Assim você consegue obter valores de variáveis pré definidas dentro da função. O uso é limitado, mas funciona.

DarkBr
13/05/2018, 02:18 PM
Eu estava esperando sua resposta para te dizer que o unico jeito é usando os três pontos, para obter os argumentos o método mais fácil seria usar a include pointers.

@edit getarg tambem funciona, porem só para inteiros/flutuantes você deverá achar uma função para obter strings.

@edit2 você também deveria ultilizar de um macro para facilitar na obtenção de tags, por que a partir do momento que se passam valores para a função que contém ... As tags sao perdidas

Eu estava esperando sua resposta para te dizer que o unico jeito é usando os três pontos, para obter os argumentos o método mais fácil seria usar a include pointers.

@edit getarg tambem funciona, porem só para inteiros/flutuantes você deverá achar uma função para obter strings.

@edit2 você também deveria ultilizar de um macro para facilitar na obtenção de tags, por que a partir do momento que se passam valores para a função que contém ... As tags sao perdidas

Obrigado!

uliano
13/05/2018, 03:19 PM
Como crio uma progressbar? Me ensinem pfv
Progres eu digo de fome sede e sono kk, vlw ai

1sbedx
13/05/2018, 04:18 PM
Como crio uma progressbar? Me ensinem pfv
Progres eu digo de fome sede e sono kk, vlw ai

http://forum.sa-mp.com/showthread.php?t=537468
Tutorial no ******* (http://*******/2KlIhyP)

Cleyson
13/05/2018, 09:27 PM
Pessoal, algo bizarro mas devo perguntar.

Criei um pickup de saída do interior da DPLS,
quando vou pra dentro do interior o pickup simplesmente explode '-'

tantos anos no samp e nunca vi isso. Oque poderia ser ?
Caso não fiquei muito claro eu upo um vídeo.

DarkBr
13/05/2018, 09:56 PM
Pessoal, algo bizarro mas devo perguntar.

Criei um pickup de saída do interior da DPLS,
quando vou pra dentro do interior o pickup simplesmente explode '-'

tantos anos no samp e nunca vi isso. Oque poderia ser ?
Caso não fiquei muito claro eu upo um vídeo.

Pode mostrar? nunca vi algo assim.

Cleyson
13/05/2018, 10:05 PM
Pode mostrar? nunca vi algo assim.

https://*********/zE1Kk-DRybg

Desculpe a qualidade, filmei com o celular.

RodrigoMSR
13/05/2018, 11:12 PM
http://wiki.sa-mp.com/wiki/Pickup_Types

Veja o tipo 11 e 12, isso junto com o Streamer pode ser a causa. Ou algum bug interno do servidor.

DarkBr
14/05/2018, 02:42 AM
https://*********/zE1Kk-DRybg

Desculpe a qualidade, filmei com o celular.

Nossa kkkk

Cleyson
14/05/2018, 06:40 PM
http://wiki.sa-mp.com/wiki/Pickup_Types

Veja o tipo 11 e 12, isso junto com o Streamer pode ser a causa. Ou algum bug interno do servidor.

Realmente era isso. Não lembrava dos Types. Obrigado.

uliano
19/05/2018, 04:14 PM
Como Crio Um Status Do tipo desse, Nao quero esse, Quero criar o meu, So que da msm forma que ele criou o dele, o que usou? o que ele estudou? Me passem pfv, Fico No Aguardo...

https://i.imgur.com/DbAnkeL.png

Quero saber o que ele usou para fazer o dele, tbm quero fazer o Meu :v

Ermanhaut
19/05/2018, 04:36 PM
Ele utilizou Progress Bars (http://forum.sa-mp.com/showthread.php?t=537468).

uliano
19/05/2018, 04:42 PM
Ele utilizou Progress Bars (http://forum.sa-mp.com/showthread.php?t=537468).

@edit
Algun Tutorial De Como Usar ?

iSukrYlh0s
19/05/2018, 11:14 PM
@edit
Algun Tutorial De Como Usar ?

http://forum.sa-mp.com/showthread.php?t=428964

uliano
19/05/2018, 11:44 PM
http://forum.sa-mp.com/showthread.php?t=428964

Não leu nada neh?, o tutorial não tem nada ver com a include '-', e não tem nada ver com a print que mandei, nada se encaixa com nada, Alguém tem um TUTORIAL DE COMO USAR A INCLUDE, E FAZER UM SISTEMA DE SEDE IGUAL O DA PRINT AI ?, DESDE JÁ AGRADEÇO.

iSukrYlh0s
20/05/2018, 12:53 AM
Não leu nada neh?, o tutorial não tem nada ver com a include '-', e não tem nada ver com a print que mandei, nada se encaixa com nada, Alguém tem um TUTORIAL DE COMO USAR A INCLUDE, E FAZER UM SISTEMA DE SEDE IGUAL O DA PRINT AI ?, DESDE JÁ AGRADEÇO.

nesse link que eu mandei pra você o cara mostra em vídeo como fazer essa barra de progresso que você quer começa pela pela barra de progresso depois vai vendo os sistemas desses que já tem aqui

PT
20/05/2018, 09:49 PM
Cara não adianta vir pedir o trabalho feito que ninguém fará a papa toda para vc se quiser estude para conseguir os seus objetivos e mais a mais respeite quem tenta lhe ajudar porque ninguém é obrigado a ajudar

uliano
20/05/2018, 10:20 PM
Cara não adianta vir pedir o trabalho feito que ninguém fará a papa toda para vc se quiser estude para conseguir os seus objetivos e mais a mais respeite quem tenta lhe ajudar porque ninguém é obrigado a ajudar

Sem querer falar nada, Mais eu nao pedi pronto, pedi um TUTORIAL, ent Cala sua BOCA pfv :v
A não ser que tu me de um tutorial de como usar o include, pq eu nao sou o Kalcor, fica ai na sua, vlw obg

Eleonum
20/05/2018, 11:37 PM
Pessoal gostaria de saber se algo uma include algum code pode impedir que o CreateVehicle Funcione... meu gamemode não cria nenhum carro pelo createvehicle e eu gostaria de saber o porque já que não consigo achar a fonte do problema gostaria de saber se alguém já passou por algo parecido ??

RodrigoMSR
20/05/2018, 11:42 PM
Pessoal gostaria de saber se algo uma include algum code pode impedir que o CreateVehicle Funcione... meu gamemode não cria nenhum carro pelo createvehicle e eu gostaria de saber o porque já que não consigo achar a fonte do problema gostaria de saber se alguém já passou por algo parecido ??
Veículos também podem ser criados por AddStaticVehicle e AddStaticVehicleEx.

Eleonum
20/05/2018, 11:45 PM
Veículos também podem ser criados por AddStaticVehicle e AddStaticVehicleEx.
sim mas AddStaticVehicle são apenas na OnGamemodeInit os CreateVehicle aos qual me refiro fazem parte de sistemas como concessionárias, jogadores criarem veículos e etc...

uliano
21/05/2018, 12:46 AM
Ola Meu code ai, ta fazendo o Pawn parar de funcionar, Não sei porque

if(dialogid == menuprof)
{
if(response == 1)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid, Baixa, DIALOG_STYLE_TABLIST_HEADERS, "{38b170}Honestas {00FF00}( Level / Salario )", "Mendigo - 0 / $1300\nEmpregada Doméstica - 1 / {1a8622}$320{FFFFFF}\nPedreiro - 1 / {1a8622}$750{FFFFFF}\nGari - 2 / {1a8622}$856{FFFFFF}\nLixeiro - 3 / {1a8622}$450{FFFFFF}\nTemac - 450 / {1a8622}$1500{FFFFFF}\nCorreios - 5 / {1a8622}$1000{FFFFFF}\nEstudante - 0 / {1a8622}$500{FFFFFF}\nFlanelinha - 0 / {1a8622}$200{FFFFFF}\nCantor - 8 / {1a8622}$1450{FFFFFF}\nPoeta - 6 / {1a8622}$950{FFFFFF}\nVoltar", "OK", "Cancelar");
}
if(listitem == 1)
{
ShowPlayerDialog(playerid, Honestas, DIALOG_STYLE_TABLIST_HEADERS, "{8bcffa}Honestas 2 {00FF00}( Level / Salario )", "Motorista Particular - 0 / $300\nJornalista - 20 / {1a8622}$1400{FFFFFF}\nFotógrafo - 21 / {1a8622}$1140{FFFFFF}\nReporter - 21 / {1a8622}$1400{FFFFFF}\nAncora - 24 / {1a8622}$1400{FFFFFF}\nMeteorologista - 29 / {1a8622}$1140{FFFFFF}\nMecânico - 5 / {1a8622}$1700{FFFFFF}\nRapper - 99 / {1a8622}$1000{FFFFFF}\nVendedor de Skins - 40 / {1a8622}$1200{FFFFFF}\nVendedor de Carros - Admin\nFrentista - 35 / {1a8622}$1000{FFFFFF}\nVoltar", "OK", "Cancelar");
}
if(listitem == 2)
{
ShowPlayerDialog(playerid, Honestas2, DIALOG_STYLE_TABLIST_HEADERS, "{847c7f}Honestas 3 {00FF00}( Level / Salario )", "Taxista - 2 / $2000\nParamédico - 10 / {1a8622}$999{FFFFFF}\nAposentado - 500 / {1a8622}$5000{FFFFFF}\nAdvogado - 30 / {1a8622}$1000{FFFFFF}\nGuarda Costas - 0 / {1a8622}$300{FFFFFF}\nCorredor de Rua - 50 / {1a8622}$500{FFFFFF}\nPromoter - 20 / {1a8622}$600{FFFFFF}\nBibliotecário - 60 / {1a8622}$650{FFFFFF}\nvice/presidente - 9999 / {1a8622}$150000{FFFFFF}\nPrefeito - 4999 / {1a8622}$200000{FFFFFF}\nPresidente - 9990 / {1a8622}$300000{FFFFFF}\nVoltar", "OK", "Cancelar");
}
if(listitem == 3)
{
ShowPlayerDialog(playerid, Desonestas, DIALOG_STYLE_TABLIST_HEADERS, "{840000}Desonestas {00FF00}( Level / Salario )", "Traficante de Armas - 40 / $350\nAssasino - 15 / {1a8622}$800{FFFFFF}\nTerrorista - 60 / {1a8622}$1700{FFFFFF}\nSequestrador - 90 / {1a8622}$900{FFFFFF}\nAssasino Profissional - 25 / {1a8622}$800{FFFFFF}\nProstituta - 5 / {1a8622}$500{FFFFFF}\nAssaltante - 50 / {1a8622}$500{FFFFFF}\nTraficante - 10 / {1a8622}$350{FFFFFF}\nMáfia - 1000 / {1a8622}$15000{FFFFFF}\nYakuza - 3000 / {1a8622}$52500{FFFFFF}\nVoltar", "OK", "Cancelar");
}
if(listitem == 4)
{
ShowPlayerDialog(playerid, Governo, DIALOG_STYLE_TABLIST_HEADERS, "{211b88}Públicas {00FF00}( Level / Salario )", "Guarda - 60/ 28/ $1200\nPolícia Rodoviária - 120 / {1a8622}$1600{FFFFFF}\nPolícia Militar - 180 / {1a8622}$1600{FFFFFF}\nPolícia Civil - 180 / {1a8622}$2000{FFFFFF}\nPolícia Federal - 200 / {1a8622}$2200{FFFFFF}\nDelegado - 400 / {1a8622}$5000{FFFFFF}\nBope - 220 / {1a8622}$7000{FFFFFF}\nSWAT - 220 / {1a8622}$7000{FFFFFF}\nEspião - 3000 / {1a8622}$13000{FFFFFF}\nBombeiro\nFBI - 180 / {1a8622}$5000{FFFFFF}\nInterpol - 350 / {1a8622}$5000{FFFFFF}\nVoltar", "OK", "Cancelar");
}
if(listitem == 5)
{
ShowPlayerDialog(playerid, industriais, DIALOG_STYLE_TABLIST_HEADERS, "{218ffd}Funcionários Industriais {00FF00}( level / Salario )", "Maquinista - 200 / $3000\nVoltar", "OK", "Cancelar");
}
if(listitem == 6)
{
ShowPlayerDialog(playerid, organizadores, DIALOG_STYLE_TABLIST_HEADERS, "{847c7f}Organizadores {00FF00}( Level / Salario )", "Professor - 5000 / $40000\nEmpregador - 5000 / {1a8622}$6200{FFFFFF}\nMarines - 3000 / {1a8622}$12000{FFFFFF}\nDrifter King - 4000 / {1a8622}$12000{FFFFFF}\nAtirador Elite - 1000 / {1a8622}$8500{FFFFFF}\nNinja - 2000 / {1a8622}$8000{FFFFFF}\nVoltar", "OK", "Cancelar");
}
}
}
Me Ajudem Pfv, Eu compilo e para de funcionar, mais só tentando por a cor verde na frente do Salário :v

Minerva
21/05/2018, 01:27 AM
Você esqueceu alguma chave, use um tabulador de codigo...

http://tabulador.medianewsonline.com/

ps: coloca tudo que foi mudado recentemente

NelsonC
21/05/2018, 12:21 PM
Tente

if(dialogid == menuprof)
{
if(response)
{
switch(listitem)
{
case 0: {
ShowPlayerDialog(playerid, Baixa, DIALOG_STYLE_TABLIST_HEADERS, "{38b170}Honestas {00FF00}( Level / Salario )", "Mendigo - 0 / $1300\nEmpregada Doméstica - 1 / {1a8622}$320{FFFFFF}\nPedreiro - 1 / {1a8622}$750{FFFFFF}\nGari - 2 / {1a8622}$856{FFFFFF}\nLixeiro - 3 / {1a8622}$450{FFFFFF}\nTemac - 450 / {1a8622}$1500{FFFFFF}\nCorreios - 5 / {1a8622}$1000{FFFFFF}\nEstudante - 0 / {1a8622}$500{FFFFFF}\nFlanelinha - 0 / {1a8622}$200{FFFFFF}\nCantor - 8 / {1a8622}$1450{FFFFFF}\nPoeta - 6 / {1a8622}$950{FFFFFF}\nVoltar", "OK", "Cancelar");
}

case 1: {
ShowPlayerDialog(playerid, Honestas, DIALOG_STYLE_TABLIST_HEADERS, "{8bcffa}Honestas 2 {00FF00}( Level / Salario )", "Motorista Particular - 0 / $300\nJornalista - 20 / {1a8622}$1400{FFFFFF}\nFotógrafo - 21 / {1a8622}$1140{FFFFFF}\nReporter - 21 / {1a8622}$1400{FFFFFF}\nAncora - 24 / {1a8622}$1400{FFFFFF}\nMeteorologista - 29 / {1a8622}$1140{FFFFFF}\nMecânico - 5 / {1a8622}$1700{FFFFFF}\nRapper - 99 / {1a8622}$1000{FFFFFF}\nVendedor de Skins - 40 / {1a8622}$1200{FFFFFF}\nVendedor de Carros - Admin\nFrentista - 35 / {1a8622}$1000{FFFFFF}\nVoltar", "OK", "Cancelar");
}

case 2: {
ShowPlayerDialog(playerid, Honestas2, DIALOG_STYLE_TABLIST_HEADERS, "{847c7f}Honestas 3 {00FF00}( Level / Salario )", "Taxista - 2 / $2000\nParamédico - 10 / {1a8622}$999{FFFFFF}\nAposentado - 500 / {1a8622}$5000{FFFFFF}\nAdvogado - 30 / {1a8622}$1000{FFFFFF}\nGuarda Costas - 0 / {1a8622}$300{FFFFFF}\nCorredor de Rua - 50 / {1a8622}$500{FFFFFF}\nPromoter - 20 / {1a8622}$600{FFFFFF}\nBibliotecário - 60 / {1a8622}$650{FFFFFF}\nvice/presidente - 9999 / {1a8622}$150000{FFFFFF}\nPrefeito - 4999 / {1a8622}$200000{FFFFFF}\nPresidente - 9990 / {1a8622}$300000{FFFFFF}\nVoltar", "OK", "Cancelar");
}

case 3: {
ShowPlayerDialog(playerid, Desonestas, DIALOG_STYLE_TABLIST_HEADERS, "{840000}Desonestas {00FF00}( Level / Salario )", "Traficante de Armas - 40 / $350\nAssasino - 15 / {1a8622}$800{FFFFFF}\nTerrorista - 60 / {1a8622}$1700{FFFFFF}\nSequestrador - 90 / {1a8622}$900{FFFFFF}\nAssasino Profissional - 25 / {1a8622}$800{FFFFFF}\nProstituta - 5 / {1a8622}$500{FFFFFF}\nAssaltante - 50 / {1a8622}$500{FFFFFF}\nTraficante - 10 / {1a8622}$350{FFFFFF}\nMáfia - 1000 / {1a8622}$15000{FFFFFF}\nYakuza - 3000 / {1a8622}$52500{FFFFFF}\nVoltar", "OK", "Cancelar");
}

case 4: {
ShowPlayerDialog(playerid, Governo, DIALOG_STYLE_TABLIST_HEADERS, "{211b88}Públicas {00FF00}( Level / Salario )", "Guarda - 60/ 28/ $1200\nPolícia Rodoviária - 120 / {1a8622}$1600{FFFFFF}\nPolícia Militar - 180 / {1a8622}$1600{FFFFFF}\nPolícia Civil - 180 / {1a8622}$2000{FFFFFF}\nPolícia Federal - 200 / {1a8622}$2200{FFFFFF}\nDelegado - 400 / {1a8622}$5000{FFFFFF}\nBope - 220 / {1a8622}$7000{FFFFFF}\nSWAT - 220 / {1a8622}$7000{FFFFFF}\nEspião - 3000 / {1a8622}$13000{FFFFFF}\nBombeiro\nFBI - 180 / {1a8622}$5000{FFFFFF}\nInterpol - 350 / {1a8622}$5000{FFFFFF}\nVoltar", "OK", "Cancelar");
}

case 5: {
ShowPlayerDialog(playerid, industriais, DIALOG_STYLE_TABLIST_HEADERS, "{218ffd}Funcionários Industriais {00FF00}( level / Salario )", "Maquinista - 200 / $3000\nVoltar", "OK", "Cancelar");
}

case 6: {
ShowPlayerDialog(playerid, organizadores, DIALOG_STYLE_TABLIST_HEADERS, "{847c7f}Organizadores {00FF00}( Level / Salario )", "Professor - 5000 / $40000\nEmpregador - 5000 / {1a8622}$6200{FFFFFF}\nMarines - 3000 / {1a8622}$12000{FFFFFF}\nDrifter King - 4000 / {1a8622}$12000{FFFFFF}\nAtirador Elite - 1000 / {1a8622}$8500{FFFFFF}\nNinja - 2000 / {1a8622}$8000{FFFFFF}\nVoltar", "OK", "Cancelar");
}
}
}
}

iSukrYlh0s
21/05/2018, 01:04 PM
Sem querer falar nada, Mais eu nao pedi pronto, pedi um TUTORIAL, ent Cala sua BOCA pfv :v
A não ser que tu me de um tutorial de como usar o include, pq eu nao sou o Kalcor, fica ai na sua, vlw obg

a única coisa que tem aqui são os tutoriais da compuphase no github tudo em inglês no minhateca você acha uns livros de linguagem c e logica de programação pra estudar o site teve o domínio congelado semana passada por causa de uma ação judicial por causa dos livros da saraiva pra entrar lá agora tem que mudar o dns do navegador

uliano
21/05/2018, 04:25 PM
Você esqueceu alguma chave, use um tabulador de codigo...

http://tabulador.medianewsonline.com/

ps: coloca tudo que foi mudado recentemente

Isso Ai Nao funciona, Não muda nada'-'

1sbedx
21/05/2018, 04:36 PM
http://forum.sa-mp.com/showthread.php?p=2768123

uliano
21/05/2018, 04:48 PM
http://forum.sa-mp.com/showthread.php?p=2768123

Isso ai Funcionou '-', Vlw em

Eleonum
21/05/2018, 05:53 PM
Pessoal gostaria de saber se algo uma include algum code pode impedir que o CreateVehicle Funcione... meu gamemode não cria nenhum carro pelo createvehicle e eu gostaria de saber o porque já que não consigo achar a fonte do problema gostaria de saber se alguém já passou por algo parecido ??

Alguém pode me ajudar ?:confused:

iSukrYlh0s
21/05/2018, 08:50 PM
Alguém pode me ajudar ?:confused:

sem o código do sistema não tem como

uliano
22/05/2018, 07:17 PM
Voces Poderiam me passar o programa de criar Objetos, Para iniciante que quer fazer mapas, Obg:)

iSukrYlh0s
22/05/2018, 07:23 PM
Voces Poderiam me passar o programa de criar Objetos, Para iniciante que quer fazer mapas, Obg:)

http://forum.sa-mp.com/showthread.php?t=282801