SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 07/10/2015, 02:50 PM   #21
rjjj
Huge Clucker
 
rjjj's Avatar
 
Join Date: Jan 2014
Location: Acre, Brasil
Posts: 261
Reputation: 204
Default Re: Duvida Sobre Callbacks/Stocks

Para as suas dúvidas, minhas respostas são estas:



1 - Qualquer função só é executada se a mesma for chamada de algum código interno ou externo. As callbacks padrões do SA-MP (OnPlayerConnect, OnPlayerSpawn, entre outras) só aparentam ser diferentes porque são chamadas de códigos externos (no caso, de dentro do samp-server.exe), sendo que essa possibilidade é inerente a funções públicas (declaradas com public). Essa estrutura do SA-MP Pawn constitui um paradigma de programação orientado a eventos.




2 - Se entre variáveis automáticas (locais declaradas com new) e variáveis estáticas (globais e locais declaradas com static) existisse uma relação que caracterizasse que um tipo é superior a outro, o tipo inferior não existiria na linguagem. Para cada situação, o programador deve decidir qual categoria de variável é a mais apropriada .



É verdade que variáveis estáticas permanecem carregadas na memória enquanto o GM ou FS estiver sendo processado, o que reduz a otimização em memória. Porém, nos dias de hoje os computadores possuem memórias principais muito maiores do que no passado, ficando a otimização em memória em segundo plano quando comparada com a velocidade de execução.



Ao preferir criar uma grande variável array como temporária em vez de estática, o desempenho de memória em geral é aumentado, mas a velocidade de execução é reduzida no código em que a array é criada (e consequentemente em todos os outros códigos do GM ou FS, pois o SA-MP Pawn é single-threaded). Além disso, esse costume aumenta a probabilidade de ocorrer um erro em tempo de execução denominado stack overflow, sendo que o uso de #pragma dynamic para contornar isso, assim como o de #pragma tabsize 0, apenas esconde más práticas de programação.



Especificamente, para manipular grandes strings crie uma grande variável array global e a utilize para todas as funções. É bem mais rápido acessar uma grande variável que está sempre na memória do que frequentemente criar uma nova para depois poder usá-la .




3 - Entre os dois primeiros códigos, a diferença é apenas em questão de organização e por isso muito subjetiva. Já nos dois últimos códigos, o melhor é declarar uma única variável array multidimensional:



PHP Code:
new bool:test[6][MAX_PLAYERS]; 



Espero ter ajudado .
__________________


rjjj is offline   Reply With Quote
Old 07/10/2015, 05:52 PM   #22
Coringa_Vilao
High-roller
 
Coringa_Vilao's Avatar
 
Join Date: Sep 2012
Location: Brasil
Posts: 1,113
Reputation: 8
Thumbs up Re: Duvida Sobre Callbacks/Stocks

Resolvido !
__________________
[Projeto] Project Cloud [ZombieXP] | NEW MOD !
http://forum.sa-mp.com/showthread.php?p=3713519



Last edited by Coringa_Vilao; 07/11/2015 at 04:36 AM.
Coringa_Vilao is offline   Reply With Quote
Old 07/10/2015, 10:11 PM   #23
rjjj
Huge Clucker
 
rjjj's Avatar
 
Join Date: Jan 2014
Location: Acre, Brasil
Posts: 261
Reputation: 204
Default Re: Duvida Sobre Callbacks/Stocks

Não há problema nenhum em declarar várias variáveis em uma única linha. Para o compilador, isso resulta no mesmo que fazer em linhas separadas as declarações de cada dado .



Quanto à enumeração de constantes, ela é, quando acompanhada de uma variável array, apenas uma forma de qualificar os índices da array para o programador. Em outras palavras, ela facilita o controle de uma array multidimensional, mas em termos de otimização os dois métodos são praticamente equivalentes.



Espero ter ajudado .
__________________


rjjj is offline   Reply With Quote
Old 08/10/2015, 11:20 AM   #24
Coringa_Vilao
High-roller
 
Coringa_Vilao's Avatar
 
Join Date: Sep 2012
Location: Brasil
Posts: 1,113
Reputation: 8
Default Re: Duvida Sobre Callbacks/Stocks

Resolvido !
__________________
[Projeto] Project Cloud [ZombieXP] | NEW MOD !
http://forum.sa-mp.com/showthread.php?p=3713519



Last edited by Coringa_Vilao; 07/11/2015 at 04:36 AM.
Coringa_Vilao is offline   Reply With Quote
Old 09/10/2015, 03:34 AM   #25
Coringa_Vilao
High-roller
 
Coringa_Vilao's Avatar
 
Join Date: Sep 2012
Location: Brasil
Posts: 1,113
Reputation: 8
Default Re: Duvida Sobre Callbacks/Stocks

Resolvido !
__________________
[Projeto] Project Cloud [ZombieXP] | NEW MOD !
http://forum.sa-mp.com/showthread.php?p=3713519



Last edited by Coringa_Vilao; 07/11/2015 at 04:36 AM.
Coringa_Vilao is offline   Reply With Quote
Old 10/10/2015, 02:19 PM   #26
Kamper
Guest
 
Posts: n/a
Default Re: Duvida Sobre Callbacks/Stocks

Quote:
Originally Posted by Coringa_Vilao View Post
Desculpe o Double,

mais 2 perguntas rapidas...

quando for fazer uma variavel = string... queria saber porque em muitos GameMode colocam
PHP Code:
"new Str[valor]" 
é a mesma coisa que criar
PHP Code:
"new string[valor]" 
======

e outra ... poderia me passar um tutorial de Foreach ? to pensando em trocar todos os "for(new" do meu servidor por Foreach , é aconselhavel? vi topicos que ele é mais rapido e tal ... , só que não achei nenhum Tutorial em Portugues ... será q tem como você me passar ?

======

e queria saber sobre new e static qual é o mais aconselhavel a usar ? localmente ou globalmente ? poque Li Li os tutoriais e ainda não entendi , sei q a static é mais rapida e tal , só que a static muda de valor quando é chamada novamente um negocio assim que entendi ? será q tem como me explicar ?
Cara esse tópico está quase como uma wiki. Não faz sentido nenhum essas suas perguntas repetidas sendo que tudo que você perguntou, e até mais ainda, foi esclarecido aqui. Agora basta ler e saber interpretar. Não tem como explicar mais que isso só se fomos na sua casa e te dar aulas particulares.
  Reply With Quote
Old 12/10/2015, 04:38 PM   #27
Coringa_Vilao
High-roller
 
Coringa_Vilao's Avatar
 
Join Date: Sep 2012
Location: Brasil
Posts: 1,113
Reputation: 8
Default Re: Duvida Sobre Callbacks/Stocks

Resolvido !
__________________
[Projeto] Project Cloud [ZombieXP] | NEW MOD !
http://forum.sa-mp.com/showthread.php?p=3713519



Last edited by Coringa_Vilao; 07/11/2015 at 04:37 AM.
Coringa_Vilao is offline   Reply With Quote
Old 13/10/2015, 02:31 AM   #28
Kuddy
High-roller
 
Kuddy's Avatar
 
Join Date: Jun 2011
Location: Brasil / Paraná
Posts: 2,876
Reputation: 313
Default Re: Duvida Sobre Callbacks/Stocks

Quote:
Originally Posted by Coringa_Vilao View Post
Desculpe o Double,

mais 2 perguntas rapidas...

quando for fazer uma variavel = string... queria saber porque em muitos GameMode colocam
PHP Code:
"new Str[valor]" 
é a mesma coisa que criar
PHP Code:
"new string[valor]" 
Obviamente a diferença está apenas no nome da variável.
Quote:
Originally Posted by Coringa_Vilao View Post
e outra ... poderia me passar um tutorial de Foreach ? to pensando em trocar todos os "for(new" do meu servidor por Foreach , é aconselhavel? vi topicos que ele é mais rapido e tal ... , só que não achei nenhum Tutorial em Portugues ... será q tem como você me passar ?
Apenas use o search:
http://forum.sa-mp.com/showthread.php?t=290735
http://forum.sa-mp.com/showthread.php?t=393369

A grande diferença de velocidade do foreach está nos loops iterando sobre os players online. O Foreach percorre apenas os players online ao inves de checar todos os slots disponiveis, como em um loop usando for.
O foreach também é mais fácil de ser usado, más isso vai do gosto do programador.


Se você souber inglês, dê uma boa olhada na pawn lang: http://www.compuphase.com/pawn/Pawn_Language_Guide.pdf


#edit
Cometi um erro ao dizer que a static tem o valor constante (que nào se altera). Eu confundi static com Const.
A static funciona como um new, só que ela "não é destruída" no final das chaves. Más de qualquer forma, não se preocupe quanto a isso pois os ganhos de velocidade são praticamente irrelevantes.

Faz tempo que não uso pawn, peço desculpas pela resposta errada!
__________________
"CRIANÇÃ GAMER OTAKO QUE SOFREU BULLYING NA ESCOLA E AINDA É BV"

Last edited by Kuddy; 18/10/2015 at 02:07 PM.
Kuddy is offline   Reply With Quote
Old 13/10/2015, 02:42 AM   #29
Dolby
High-roller
 
Dolby's Avatar
 
Join Date: Aug 2011
Location: Brazil - GO
Posts: 2,900
Reputation: 746
Default Re: Duvida Sobre Callbacks/Stocks

Quote:
Originally Posted by Kuddy View Post
Static é usada para dados estáticos (que não se alteram), em outras palavras você não pode alterar o valor de uma static.
const*

Abraços Kuddy. Sdds <3.
Dolby is offline   Reply With Quote
Old 13/10/2015, 03:37 AM   #30
Coringa_Vilao
High-roller
 
Coringa_Vilao's Avatar
 
Join Date: Sep 2012
Location: Brasil
Posts: 1,113
Reputation: 8
Thumbs up Re: Duvida Sobre Callbacks/Stocks

Resolvido !
__________________
[Projeto] Project Cloud [ZombieXP] | NEW MOD !
http://forum.sa-mp.com/showthread.php?p=3713519



Last edited by Coringa_Vilao; 07/11/2015 at 04:37 AM.
Coringa_Vilao 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
[DUVIDA] Duvida sobre new e bool. Supera Português/Portuguese 8 11/10/2012 05:11 AM
[Ajuda] Sobre stocks. Gabriel Santana Português/Portuguese 2 30/08/2012 03:22 PM
[DUVIDA]Uma dúvida sobre PAWN Victor Cesaroni Português/Portuguese 6 28/08/2011 07:52 AM
[DUVIDA] Dúvida Sobre Objetos. Erick_Schultz Português/Portuguese 5 06/12/2010 12:01 PM
[Dúvida] Dúvida sobre objetos. renanzin Português/Portuguese 8 07/09/2010 08:46 PM


All times are GMT. The time now is 03:47 PM.


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