SA-MP Forums Archive
[Include] FUNЗХES ADICIONAIS. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Include] FUNЗХES ADICIONAIS. (/showthread.php?tid=655179)



FUNЗХES ADICIONAIS. - tonisantolia - 15.06.2018

Introduзгo
Basicamente sгo funзхes para facilitar a vida de quem estб aprendendo e recebera update em breve.
Recursos
Код:
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.



Re: FUNЗХES ADICIONAIS. - renatog - 15.06.2018

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


Re: FUNЗХES ADICIONAIS. - tonisantolia - 15.06.2018

Quote:
Originally Posted by renatog
Посмотреть сообщение
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.


Re: FUNЗХES ADICIONAIS. - NelsonC - 15.06.2018

Muito bom.


Re: FUNЗХES ADICIONAIS. - HelderPT - 15.06.2018

Que legal vey +rep


for(new i; i < MAX_PLAYERS; i++) .-. serio nigga? - RazorGuigo - 15.06.2018

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[] = ",") ?


Re: FUNЗХES ADICIONAIS. - rjjj - 15.06.2018

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
Посмотреть сообщение
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 .


Re: FUNЗХES ADICIONAIS. - renatog - 15.06.2018

Quote:
Originally Posted by rjjj
Посмотреть сообщение
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


Re: FUNЗХES ADICIONAIS. - rjjj - 15.06.2018

Quote:
Originally Posted by renatog
Посмотреть сообщение
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 .