[Include] rMapIcons - Simples Streamer de MapIcons
#1

rMapIcons

Desenvolvi esta include em funзгo de um novo trabalho que estou realizando, que pode ser de grande utilidade para alguns.
O objetivo desta include й 'trapacear' o limite de mapicons de 100 para 400, sendo que cada jogador й independente.

Funзхes:

rSetPlayerMapIcon(playerid, Float: x, Float:y, Float:z, markertype, color, Float:raio);

playerid - ID do jogador que irб adiciona-lo.
Float: x - A coordenada X do MapIcon
Float:y - A coordenada Y do MapIcon
Float:z - A coordenada Z do MapIcon
markertype - ID do нcone para setar.
color - Setar uma cor no mapicon(somente iconid 0).
Float:raio - O raio de visгo que o jogador poderб ter sobre o mapicon.


Retorna o ID do нcone para remover com rRemovePlayerMapIcon



rRemovePlayerMapIcon(playerid, iconid);

playerid - ID do jogador que foi adicionado o mapicon.
iconid - O ID retornado pela funзгo rSetPlayerMapIcon.



rMapIconsUpdate(playerid);

playerid - ID do jogador para atualizar os mapicons.

Esta funзгo retorna o nъmero de mapicons sendo visualizados pelo jogador.


Vнdeo: http://www.youtube.com/watch?v=uIj9q...ature=*********


pawn Код:
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////                                                                            /////////////
/////////////                              rMAPICONS - MAPICONS STREAMER  0.1            /////////////
/////////////                                                                            /////////////
/////////////                       Desenvolvido por [iPs]Ivanzicco / [JD]BlackFire      /////////////
/////////////                                                                            /////////////
/////////////                               http://www.rocksbrasil.com.br                       /////////////
/////////////                             http://www.ips-team.forumeiros.com                    /////////////
/////////////                                                                            /////////////
/////////////                                                                            /////////////
/////////////                                                                            /////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////

#define MAX_rMAPICONS 400

new rMapIconShowID[MAX_PLAYERS][MAX_rMAPICONS];
new Float:rMapIconPosX[MAX_PLAYERS][MAX_rMAPICONS];
new Float:rMapIconPosY[MAX_PLAYERS][MAX_rMAPICONS];
new Float:rMapIconPosZ[MAX_PLAYERS][MAX_rMAPICONS];
new Float:rMapIconRaio[MAX_PLAYERS][MAX_rMAPICONS];
new rMapIconMarkerType[MAX_PLAYERS][MAX_rMAPICONS];
new rMapIconColor[MAX_PLAYERS][MAX_rMAPICONS];

stock rSetPlayerMapIcon(playerid, Float:x, Float:y, Float:z, markertype, color, Float:raio){
    for(new i = 1; i<MAX_rMAPICONS; i++){
        if(rMapIconPosX[playerid][i] == 0 && rMapIconPosY[playerid][i] == 0){
            rMapIconPosX[playerid][i] = x;
            rMapIconPosY[playerid][i] = y;
            rMapIconPosZ[playerid][i] = z;
            rMapIconRaio[playerid][i] = raio;
            rMapIconMarkerType[playerid][i] = markertype;
            rMapIconColor[playerid][i] = color;
            rMapIconsUpdate(playerid);
            return i;
        }
    }
    return false;
}
stock rMapIconsUpdate(playerid){
    new Float:x,Float:y,Float:z,mapicons = 1;
    GetPlayerPos(playerid,x,y,z);
    for(new i = 1; i<MAX_rMAPICONS; i++){
        if(rMapIconShowID[playerid][i] > 0){RemovePlayerMapIcon(playerid,rMapIconShowID[playerid][i]);}
    }
    for(new i = 1; i<MAX_rMAPICONS && mapicons < 100; i++){
        if(rMapIconPosX[playerid][i] != 0 || rMapIconPosY[playerid][i] != 0 || rMapIconPosZ[playerid][i] != 0){
            if(GetPlayerDistanceFromPoint(playerid,rMapIconPosX[playerid][i],rMapIconPosY[playerid][i],rMapIconPosZ[playerid][i]) <= rMapIconRaio[playerid][i]){
                SetPlayerMapIcon(playerid,mapicons,rMapIconPosX[playerid][i],rMapIconPosY[playerid][i],rMapIconPosZ[playerid][i],rMapIconMarkerType[playerid][i],rMapIconColor[playerid][i],MAPICON_GLOBAL);
                rMapIconShowID[playerid][i] = mapicons;
                mapicons ++;
            }
        }
    }
    return mapicons;
}

stock rRemovePlayerMapIcon(playerid, iconid){
    rMapIconPosX[playerid][iconid] = 0;
    rMapIconPosY[playerid][iconid] = 0;
    rMapIconPosZ[playerid][iconid] = 0;
    rMapIconRaio[playerid][iconid] = 0;
    rMapIconMarkerType[playerid][iconid] = false;
    rMapIconColor[playerid][iconid] = false;
    RemovePlayerMapIcon(playerid,rMapIconShowID[playerid][iconid]);
    rMapIconShowID[playerid][iconid] = 0;
    return true;
}
Crйditos

Cуdigo Fonte: Ivan - Grupo Rocks
Testes: RedKill - iPs Team



Dъvidas e comentбrios sгo bem vindos.
Reply
#2

Enumeradores...

Bom trabalho.
Reply
#3

Bom trabalhoІ.

@Edit

Pode mandar um FS de exemplo?
Reply
#4

muito bom. =D
Reply
#5

Bem interessante !
Reply
#6

muito bom parabens.
Reply
#7

Bem legal!
Reply
#8

Bom Trabalho Lek!
Reply
#9

vнdeo de demonstraзгo http://www.youtube.com/watch?v=uIj9q...ature=*********
Reply
#10

Nada mal! Bom trabalho
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)