SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 11/12/2014, 05:25 AM   #2951
Bruno13
High-roller
 
Bruno13's Avatar
 
Join Date: May 2013
Location: Caxias do Sul/RS
Posts: 1,436
Reputation: 244
Default Re: Códigos Úteis #1

Quote:
Originally Posted by Dolby View Post
Desculpe-me pela frustração, mas...

ShowPlayerDialog
Tich...juro que li 30 vezes e sempre pulava a parte após o ponto...realmente uma perda extrema de tempo hahaha. Porém a um lado bom sim, alertar quem não le a Wiki por completa que nem eu. Enfim, obrigado por ressaltar essa falta de postura minha.

@EDIT É isto que faz a linguagem ter graça, aprender no braço mesmo hahaha
__________________
Released Hogwarts RP/G
Code:
> Não trabalho mais com venda de sistemas.
> Site: www.bruno13.tk
Bruno13 is offline   Reply With Quote
Old 11/12/2014, 05:02 PM   #2952
PT
Godfather
 
PT's Avatar
 
Join Date: Nov 2012
Location: Europe
Posts: 7,180
Reputation: 803
Default Re: Códigos Úteis #1

Quote:
Originally Posted by Bruno13 View Post
My Function
My discovery


Isto me foi um custo, de tempo e de cagada também, pois foi assim que descobri este "bug", ou talvez esta "salvação"...Não pretendia postar esta "função", mas passei a não pensar apenas em mim mais, apesar de sempre compartilhar e ajudar muitos, mas esta descoberta, era simplesmente única...enfim, irei revelá-la ao THE WORLD, onde com certeza algum sortudo qualquer já deve ter descoberto está "função", não me acho nada por ela, mas a mesma possui um grande significado pessoal, de quando sempre tentei fazer este ato ocorrer, e jamais via que o mesmo estava na ponta do meu nariz...alguns acharão a mesma desnecessária, mas a minha visão não é esta.


Função: HidePlayerDialog(playerid);

Descrição: - Nossa mas como funciona? Simplesmente remove qualquer dialog que esteja em aberto na tela do player. Seu segredo é simplesmente um ID negativo para o dialogid, apenas isto...algo tão simples que nunca vi alguém usar. Realmente pode ser útil, como tempo esgotado para selecionar alguma opção de dailog list, inatividade com dialog aberta...enfim, vai do que necessitar. Descobri também, que para a mesma ser bem sucedida, os campos tem que estar todos preenchidos (exceto o segundo button), nem que seja por quaisquer caracteres, em vista que o mesmo não ira aparecer. Seu style não faz diferença alguma.

Source:
pawn Code:
//Caso queria chama-la tanto como uma função direta ou com um timer...

forward HidePlayerDialog(playerid);
public HidePlayerDialog(playerid) return ShowPlayerDialog(playerid, -1, DIALOG_STYLE_MSGBOX, "@", "@", "@", "@");

Bom pessoal, é isso...simples e útil, grande emoção, descobertas a mil, um bj e um abç.

Boa sorte.

Quote:
Originally Posted by Dolby View Post
Desculpe-me pela frustração, mas...

ShowPlayerDialog
Quote:
Originally Posted by Bruno13 View Post
Tich...juro que li 30 vezes e sempre pulava a parte após o ponto...realmente uma perda extrema de tempo hahaha. Porém a um lado bom sim, alertar quem não le a Wiki por completa que nem eu. Enfim, obrigado por ressaltar essa falta de postura minha.

@EDIT É isto que faz a linguagem ter graça, aprender no braço mesmo hahaha
Alem de estar na Wiki qualquer tipo de processador de dialogs, ate mesmo os que nao sao grande coisa tem isso. Antes de ter sido colocado na Wiki tinham fala disso num topico na board inglesa há uns anos.

Ja agora nao precisa de usar o @.
PT is offline   Reply With Quote
Old 11/12/2014, 07:07 PM   #2953
Bruno13
High-roller
 
Bruno13's Avatar
 
Join Date: May 2013
Location: Caxias do Sul/RS
Posts: 1,436
Reputation: 244
Default Re: Códigos Úteis #1

Quote:
Originally Posted by PT View Post
Alem de estar na Wiki qualquer tipo de processador de dialogs, ate mesmo os que nao sao grande coisa tem isso. Antes de ter sido colocado na Wiki tinham fala disso num topico na board inglesa há uns anos.

Ja agora nao precisa de usar o @.
Pois é, eu até pesquisei mas não achei, em vista que estava na própria wiki...
__________________
Released Hogwarts RP/G
Code:
> Não trabalho mais com venda de sistemas.
> Site: www.bruno13.tk
Bruno13 is offline   Reply With Quote
Old 11/12/2014, 09:15 PM   #2954
lucas_mdr1235
Gangsta
 
lucas_mdr1235's Avatar
 
Join Date: Jan 2010
Location: Ipatinga - MG
Posts: 746
Reputation: 34
Default Re: Códigos Úteis #1

Quote:
Originally Posted by Pocahontas View Post
Modo eficiente de resetar um enumerador.
pawn Code:
for(new i; Enumerador:i < Enumerador; i++)
    {
        Variavel[playerid][Enumerador:i] = 0;
    }
Exemplo:
pawn Code:
// topo:
enum pInfo
{
    pAdmin,
    ...
};
new PlayerInfo[MAX_PLAYERS][pInfo];

// OnPlayerConnect.
for(new i; pInfo:i < pInfo; i++)
    {
        PlayerInfo[playerid][pInfo:i] = 0;
    }
Isso pode evitar bugs futuros.
Tenso ! ! !

Quote:
Originally Posted by HuSs3n View Post
or try this

pawn Code:
for(new i; PEnum:i < PEnum; i++)
{
            PInfo[playerid][PEnum:i] = 0;
}
http://forum.sa-mp.com/showthread.php?t=438851

Não estou dizendo que ele não tenha pensado igual o nosso outro amigo!
__________________
O impossível e aquilo que ninguém consegue fazer. Até que você faça ! ! !
PlAy ViRtUaL ReAlItY
Minha mãe me disse certa vez que ninguém me amava mais do que DEUS. Eu perguntei a ela se ela enviaria alguém atrás de mim para me ferir, torturar e causar dor eterna se algum dia eu a renegasse. Ela olhou para mim chocada e respondeu:
-Claro que não! Eu disse a ela, bom, já temos uma pessoas que me ama mais do que DEUS.
By: Neal Jordan
Se, numa discussão, um dos muitos que gostariam de saber de tudo, mas se recusam a aprender qualquer coisa, nos pergunta a respeito da continuação da vida após a morte, a resposta mais adequada e mais correta e:"Após a morte você será o que era antes de nascer."
By: Arthur Schopenhauer
lucas_mdr1235 is offline   Reply With Quote
Old 11/12/2014, 10:55 PM   #2955
GWMPT
Gangsta
 
Join Date: Nov 2012
Location: Portugal.
Posts: 987
Reputation: 287
Default Re: Códigos Úteis #1

Muitas pessoas verificam, até várias vezes no código, se o valor de uma variável está entre 2 valores.
Exemplo:
pawn Code:
if(money >= 1 && money <= 9999) { /* codigo */ }
O mais fácil, para fazer esta verificação, é de criar uma função, como por exemplo:
pawn Code:
stock EntreAB(menor, valor, maior) {
    return (valor >= menor && valor <= maior) ? 1 : 0;
}
E usar assim, nos "if's".
pawn Code:
if(EntreAB(1, money, 9999)) {
     GivePlayerMoney(playerid, money);
}
É simples, básico, e se formos a ver, é uma das funções que dá muito jeito para o dia-a-dia de um programador.
Um dos sítios onde ela iria ser bastante utilizada é, por exemplo, nos comandos para dar dinheiro aos jogadores(exemplo: /givecash <playerid> <valor>), e usamos o EntreAB para verificar se o valor introduzido(neste caso, o dinheiro) é válido ou não(exemplo: mínimo de 1, máximo de 9999).
GWMPT is offline   Reply With Quote
Old 11/12/2014, 11:07 PM   #2956
JonathanFeitosa
High-roller
 
Join Date: Jan 2011
Location: Manaus/AM
Posts: 2,761
Reputation: 351
Default Re: Códigos Úteis #1

Quote:
Originally Posted by GWMPT View Post
Muitas pessoas verificam, até várias vezes no código, se o valor de uma variável está entre 2 valores.
Exemplo:
pawn Code:
if(money >= 1 && money <= 9999) { /* codigo */ }
O mais fácil, para fazer esta verificação, é de criar uma função, como por exemplo:
pawn Code:
stock EntreAB(menor, valor, maior) {
    return (valor >= menor && valor <= maior) ? 1 : 0;
}
E usar assim, nos "if's".
pawn Code:
if(EntreAB(1, money, 9999)) {
     GivePlayerMoney(playerid, money);
}
É simples, básico, e se formos a ver, é uma das funções que dá muito jeito para o dia-a-dia de um programador.
Um dos sítios onde ela iria ser bastante utilizada é, por exemplo, nos comandos para dar dinheiro aos jogadores(exemplo: /givecash <playerid> <valor>), e usamos o EntreAB para verificar se o valor introduzido(neste caso, o dinheiro) é válido ou não(exemplo: mínimo de 1, máximo de 9999).
Transforma esse Stock para #define, ficaria melhor em diversos aspectos :P
__________________
Desenvolvedor Full Stack
Instagram: jonathanfeitosajfs
JonathanFeitosa is offline   Reply With Quote
Old 11/12/2014, 11:13 PM   #2957
GWMPT
Gangsta
 
Join Date: Nov 2012
Location: Portugal.
Posts: 987
Reputation: 287
Default Re: Códigos Úteis #1

Quote:
Originally Posted by JonathanFeitosa View Post
Transforma esse Stock para #define, ficaria melhor em diversos aspectos :P
Não trabalho já à algum tempo com as macros do PAWN, e estou a perder o jeito de como trabalhar com o "preprocessor" do PAWN...

Mas em define, se não estou em erro, deverá ficar alguma coisa assim:
pawn Code:
#define EntreAB(%0,%1,%2)    (%1 >= %0 && %1 <= %2)
Como disse, estou a perder o jeito...
GWMPT is offline   Reply With Quote
Old 12/12/2014, 03:12 AM   #2958
Bruno13
High-roller
 
Bruno13's Avatar
 
Join Date: May 2013
Location: Caxias do Sul/RS
Posts: 1,436
Reputation: 244
Default Re: Códigos Úteis #1

Quote:
Originally Posted by GWMPT View Post
Muitas pessoas verificam, até várias vezes no código, se o valor de uma variável está entre 2 valores.
Exemplo:
pawn Code:
if(money >= 1 && money <= 9999) { /* codigo */ }
O mais fácil, para fazer esta verificação, é de criar uma função, como por exemplo:
pawn Code:
stock EntreAB(menor, valor, maior) {
    return (valor >= menor && valor <= maior) ? 1 : 0;
}
E usar assim, nos "if's".
pawn Code:
if(EntreAB(1, money, 9999)) {
     GivePlayerMoney(playerid, money);
}
É simples, básico, e se formos a ver, é uma das funções que dá muito jeito para o dia-a-dia de um programador.
Um dos sítios onde ela iria ser bastante utilizada é, por exemplo, nos comandos para dar dinheiro aos jogadores(exemplo: /givecash <playerid> <valor>), e usamos o EntreAB para verificar se o valor introduzido(neste caso, o dinheiro) é válido ou não(exemplo: mínimo de 1, máximo de 9999).
Realmente pode facilitar o uso, porém não vejo tanta necessidade, em vista posso usar desta maneira, com uma resposta bem mais rápida:
pawn Code:
if(1 >= money <= 9999) { /* codigo */ }
__________________
Released Hogwarts RP/G
Code:
> Não trabalho mais com venda de sistemas.
> Site: www.bruno13.tk
Bruno13 is offline   Reply With Quote
Old 19/12/2014, 10:20 PM   #2959
paulotuto
Big Clucker
 
paulotuto's Avatar
 
Join Date: Oct 2014
Posts: 145
Reputation: 0
Wink Re: Códigos Úteis #1

COMANDO /salario APENAS PARA ADMIN SO COLOCAR SUA VARIAVEL

pawn Code:
if (strcmp("/salario", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0xFFB400FF, "[BpL] Todos player onlines receberam salário do mes ");
        GivePlayerMoney(playerid, 5000);
        new rand = random(sizeof(Cachorro));
        new string[128];
        format(string, sizeof(string),"[BpL] Todos player onlines receberam salário do mes ", Cachorro[rand]);
        SendClientMessage(playerid, 0xFFB400FF,string);
        return 1;
    }
    return 0;
 }

COMANDO /resetmoney PARA RESETAR O MONEY DO PLAYER SÓ COLOCAR SUA VARIAVEL DE ADMIN

pawn Code:
CMD:resetmoney(playerid,params[]) {
       ResetPlayerMoney(playerid);
       new id=strval(params);
       if(!strlen(params) || !IsNumeric(params)) {
       SendClientMessage(playerid,0xFFB400FF,"|INFO| /resetmoney [playerid]");
    }
       else if(!IsPlayerConnected(id))
    {
        return SendClientMessage(playerid,0xFFB400FF,"Esse player não é um ativo");
    }
    else if(IsPlayerConnected(id)){

        printf("ID: %d",id);
    }
    return 0;
}

TAMO JUNTO
__________________

TS3: bpl.bbhost.com.br
Skype: paulo43626
paulotuto is offline   Reply With Quote
Old 19/12/2014, 10:39 PM   #2960
MultiKill
High-roller
 
Join Date: Apr 2014
Posts: 1,687
Reputation: 111
Default Re: Códigos Úteis #1

Quote:
Originally Posted by paulotuto View Post
COMANDO /salario APENAS PARA ADMIN SO COLOCAR SUA VARIAVEL

pawn Code:
if (strcmp("/salario", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0xFFB400FF, "[BpL] Todos player onlines receberam salário do mes ");
        GivePlayerMoney(playerid, 5000);
        new rand = random(sizeof(Cachorro));
        new string[128];
        format(string, sizeof(string),"[BpL] Todos player onlines receberam salário do mes ", Cachorro[rand]);
        SendClientMessage(playerid, 0xFFB400FF,string);
        return 1;
    }
    return 0;
 }

COMANDO /resetmoney PARA RESETAR O MONEY DO PLAYER SÓ COLOCAR SUA VARIAVEL DE ADMIN

pawn Code:
CMD:resetmoney(playerid,params[]) {
       ResetPlayerMoney(playerid);
       new id=strval(params);
       if(!strlen(params) || !IsNumeric(params)) {
       SendClientMessage(playerid,0xFFB400FF,"|INFO| /resetmoney [playerid]");
    }
       else if(!IsPlayerConnected(id))
    {
        return SendClientMessage(playerid,0xFFB400FF,"Esse player não é um ativo");
    }
    else if(IsPlayerConnected(id)){

        printf("ID: %d",id);
    }
    return 0;
}

TAMO JUNTO
pawn Code:
format(string, sizeof(string),"[BpL] Todos player onlines receberam salário do mes ", Cachorro[rand]);
SendClientMessage(playerid, 0xFFB400FF,string);
Se alguém copiar e colar vai dar erro por faltar a array Cachorro, e ainda que o comando não precisa da string, e a unica coisa que eu percebi que o comado faz sem a array é enviar uma mensagem ao servidor e dar 5 mil ao jogador que usar o comando. Eu acho que está faltando algumas coisa nesse comando.

O segundo comando não reseta o dinheiro do jogador escolhido mas reseta do jogador que executou o comando. E se você digita o comando e coloca um id válido ele só vai enviar uma mensagem ao console.
MultiKill is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[FilterScript] Menus Úteis [SKIN|CARROS|ARMAS] SlashPT Lançamentos/Releases 25 02/05/2014 03:56 PM
[Include] [INC]Várias e Uteis Funções andmeida10 Lançamentos/Releases 28 14/12/2012 01:49 PM
[PEDIDO] Codigos Hashtag Português/Portuguese 7 16/11/2011 10:09 PM


All times are GMT. The time now is 05:18 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.