SA-MP Forums

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

Reply
 
Thread Tools Display Modes
Old 15/06/2018, 03:40 AM   #1
tonisantolia
High-roller
 
tonisantolia's Avatar
 
Join Date: Aug 2011
Posts: 1,619
Reputation: 112
Default FUNÇÕES ADICIONAIS.

Introdução
Basicamente são funções para facilitar a vida de quem está aprendendo e recebera update em breve.
Recursos
Code:
native CreateGangZoneInRange(playerid, Float: range = 10.0);
native ReturnPlayerName(playerid, bool: underline = true);
native ChatLocal(playerid, color, color1, color2, text[], Float: range = 30.0);
native Comma(value, subs[] = ",");
native SendClientMessageEx(playerid, color, text[], {Float,_}:...);
native SendClientMessageToAllEx(color, text[], {Float,_}:...);
native GetPlayerPosition(playerid, &Float: x, &Float: y, &Float: z, &Float: angle);
native SetPlayerPosition(playerid, Float: x, Float: y, Float: z, Float: angle);
native GetPlayerPositionEx(playerid, &Float: x, &Float: y, &Float: z, &Float: angle, &interior, &virtualworld);
native SetPlayerPositionEx(playerid, Float: x, Float: y, Float: z, Float: angle, interior, virtualworld);
Download
Código hospedado no pastebin.

Finalização do tópico
Aceito ideias para novas funções adicionais.
tonisantolia is offline   Reply With Quote
Old 15/06/2018, 03:51 AM   #2
renatog
Huge Clucker
 
Join Date: Mar 2016
Posts: 351
Reputation: 48
Default Re: FUNÇÕES ADICIONAIS.

ReturnPlayerName - Não retorne strings nas funções, pode bugar e crashar durante a execução, passe por referência (como a GetPlayerName padrão faz);
Comma - Procure pela include formatex
GetPlayerPosition, SetPlayerPosition, GetPlayerPositionEx, SetPlayerPositionEx - Poderia simplesmente hookar as natives (Get/Set)PlayerPos para suportar os novos parâmetros, sem mudar o nome das funções
renatog is offline   Reply With Quote
Old 15/06/2018, 04:00 AM   #3
tonisantolia
High-roller
 
tonisantolia's Avatar
 
Join Date: Aug 2011
Posts: 1,619
Reputation: 112
Default Re: FUNÇÕES ADICIONAIS.

Quote:
Originally Posted by renatog View Post
ReturnPlayerName - Não retorne strings nas funções, pode bugar e crashar durante a execução, passe por referência (como a GetPlayerName padrão faz);
Comma - Procure pela include formatex
GetPlayerPosition, SetPlayerPosition, GetPlayerPositionEx, SetPlayerPositionEx - Poderia simplesmente hookar as natives (Get/Set)PlayerPos para suportar os novos parâmetros, sem mudar o nome das funções
Bom, todas as funções estão extremamente funcionais, em relação as funções para posições a ideia é resumir o uso facilitando, assim, o desenvolvimento.
tonisantolia is offline   Reply With Quote
Old 15/06/2018, 09:46 AM   #4
NelsonC
Big Clucker
 
NelsonC's Avatar
 
Join Date: Oct 2017
Location: Germany
Posts: 140
Reputation: 9
Default Re: FUNÇÕES ADICIONAIS.

Muito bom.
NelsonC is offline   Reply With Quote
Old 15/06/2018, 10:21 AM   #5
HelderPT
Huge Clucker
 
HelderPT's Avatar
 
Join Date: Jan 2018
Location: São Miguel
Posts: 341
Reputation: 11
Default Re: FUNÇÕES ADICIONAIS.

Que legal vey +rep
__________________
Atualmente estou com um projeto chamado ParaísoVirtual

Caso queira fazer parte da equipe me chame no privado
HelderPT is offline   Reply With Quote
Old 15/06/2018, 04:39 PM   #6
RazorGuigo
High-roller
 
RazorGuigo's Avatar
 
Join Date: May 2016
Location: South is my Country
Posts: 1,113
Reputation: 104
Default for(new i; i < MAX_PLAYERS; i++) .-. serio nigga?

este codigo está funcional, porem não é otimizado em certas partes, e não é bem legível, e de fácil interpretação para outros, esta compreensível apenas para o seu estilo

que diabos é Comma(value, subs[] = ",") ?
RazorGuigo is offline   Reply With Quote
Old 15/06/2018, 05:04 PM   #7
rjjj
Huge Clucker
 
rjjj's Avatar
 
Join Date: Jan 2014
Location: Acre, Brasil
Posts: 223
Reputation: 188
Default Re: FUNÇÕES ADICIONAIS.

Saiba que macros de pré-processador extensas, quando podem ser substituídas por funções, devem ser. Essa prática evita cópias desnecessárias de códigos iguais, diminuindo a seção CODE do arquivo .amx.



Quote:
Originally Posted by renatog View Post
ReturnPlayerName - Não retorne strings nas funções, pode bugar e crashar durante a execução, passe por referência (como a GetPlayerName padrão faz);

A linguagem Pawn suporta atribuição de arrays pelo operador (=) e também o retorno de arrays por funções, mesmo que sejam locais. Isso é explicado no próprio manual de referência quando é apresentada a função strtok .



Mas eu sei de onde vem essa sua preocupação: na linguagem C não se pode retornar arrays locais temporárias devido ao endereço se tornar inválido no fim da função, apenas arrays estáticas (locais, globais) ou arrays alocadas com malloc ou calloc. Também é impossível atribuir diretamente arrays como em Pawn, tendo que ser por memset ou memcpy.



Espero ter ajudado .
__________________


rjjj is offline   Reply With Quote
Old 15/06/2018, 05:08 PM   #8
renatog
Huge Clucker
 
Join Date: Mar 2016
Posts: 351
Reputation: 48
Default Re: FUNÇÕES ADICIONAIS.

Quote:
Originally Posted by rjjj View Post
A linguagem Pawn suporta atribuição de arrays pelo operador (=) e também o retorno de arrays por funções, mesmo que sejam locais. Isso é explicado no próprio manual de referência quando é apresentada a função strtok .



Mas eu sei de onde vem essa sua preocupação: na linguagem C não se pode retornar arrays locais temporárias devido ao endereço se tornar inválido no fim da função, apenas arrays estáticas (locais, globais) ou arrays alocadas com malloc ou calloc. Também é impossível atribuir diretamente arrays como em Pawn, tendo que ser por memset ou memcpy.



Espero ter ajudado .
https://github.com/sampctl/pawn-array-return-bug
renatog is offline   Reply With Quote
Old 15/06/2018, 05:27 PM   #9
rjjj
Huge Clucker
 
rjjj's Avatar
 
Join Date: Jan 2014
Location: Acre, Brasil
Posts: 223
Reputation: 188
Default Re: FUNÇÕES ADICIONAIS.

Quote:
Originally Posted by renatog View Post

Interessante esse defeito, vou verificar depois. Pergunto-me se outras versões da linguagem Pawn e o compilador do Zeex já corrigiram isso, visto que a intenção desse recurso parece ser uma espécie de std::string (da linguagem C++, uma das influências do Pawn) incompleto .



Enfim, tanta indireção assim no retorno de uma mesma string não é normal em termos de desenvolvimento. Em tese, a segunda função criaria uma array local e modificaria usando a outra string de retorno, retornando assim sua própria array local e evitando o problema.



Espero ter ajudado .
__________________


rjjj 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
[Ajuda] Funções GuilhermeSimoesPlays Português/Portuguese 2 22/06/2015 02:34 AM
[Ajuda] 4 funções minimessi10 Português/Portuguese 3 02/05/2015 04:19 PM
[Ajuda] Funções ZaturN Português/Portuguese 3 01/05/2014 04:08 AM
[Pedido] 0.3x - funções. Wallker Português/Portuguese 6 30/03/2013 02:56 PM
[DUV]funçoes Skoll Português/Portuguese 16 11/08/2011 11:29 PM


All times are GMT. The time now is 01:39 PM.


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