SA-MP Forums Archive
[Ajuda] Tamanho do Chekpoint - 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)
+---- Thread: [Ajuda] Tamanho do Chekpoint (/showthread.php?tid=471850)



Tamanho do Chekpoint - N3XTMapper - 25.10.2013

Bom galera, vou ser rapido pois a duvida й pequena, quero saber como diminuir o tamanho do chekpoint, pois as minhas eu fiz no padrao do wiki samp, entao se voces puderem me ajudar :

PHP код:
cppantaneiros CPS_AddCheckpoint(X,Y,Z,2.0,500); 
Entao, eu imagino que onde esta 2.0,500 й o tamanho do Cp, entao eu queria aprender a colocar um tamanho que eu queira e tals


Re: Tamanho do Chekpoint - Juniiro3 - 25.10.2013

Suponho que CPS_AddCheckpoint seja de uma include, abra essa include, procure por essa funзгo e veja os parвmetros


Re: Tamanho do Chekpoint - N3XTMapper - 25.10.2013

no caso o meu й

PHP код:
#include   <    cpstream    > 
@Edit

PHP код:
//////////////////////////////////////////////////
//////////////////////////////////////////////////
///        Matraka's Checkpoint Streamer       ///
///                                            ///
/// Author: [MPA]matraka_IDG                   ///
/// Contact: msn_matraka@gtabrasil.net         ///
///                                            ///
///   ---===Infernus Development Group===---   ///
//////////////////////////////////////////////////
//////////////////////////////////////////////////
#include <a_samp>
/*Natives
native CPS_AddCheckpoint(Float:X,Float:Y,Float:Z,Float:size,Float:spawn_dist);
native CPS_IsPlayerInCheckpoint(playerid,cpid);
native CPS_IsPlayerInAnyCheckpoint(playerid,cpid);
native CPS_RemoveCheckpoint(cpid);
native CPS_GetPlayerCheckpoint(playerid);
*/
#define MAX_CHECKPOINTS 500
forward CPSERVICE_Handler();
enum cpinfo
{
    
Float:cpX,
    
Float:cpY,
    
Float:cpZ,
    
Float:cpsz,
    
cpsd,
};
new 
CPSERVICE_active;
new 
Checkpoints[MAX_CHECKPOINTS][cpinfo];
new 
UsedCPSlot[MAX_CHECKPOINTS];
new 
CPSERVICE_actualcp[MAX_PLAYERS];
stock CPS_AddCheckpoint(Float:X,Float:Y,Float:Z,Float:size,spawn_dist)
{
    new 
cpid=1;
    while(
UsedCPSlot[cpid] == 1cpid++;
    if(
CPSERVICE_active == 0){
        
SetTimer("CPSERVICE_Handler",500,true);
        
CPSERVICE_active=1;
    }
    
UsedCPSlot[cpid]=1;
    
Checkpoints[cpid][cpX]=X;
    
Checkpoints[cpid][cpY]=Y;
    
Checkpoints[cpid][cpZ]=Z;
    
Checkpoints[cpid][cpsz]=size;
    
Checkpoints[cpid][cpsd]=spawn_dist;
    return 
cpid;
}
stock CPS_IsPlayerInCheckpoint(playerid,cpid)
{
    if(!
IsPlayerInCheckpoint(playerid)) return 0;
    if(
CPSERVICE_actualcp[playerid] == cpid) return 1;
    else return 
0;
}
stock CPS_IsPlayerInAnyCheckpoint(playerid)
{
    if(!
IsPlayerInCheckpoint(playerid)) return 0;
    if(
CPSERVICE_actualcp[playerid] == 0) return 0;
    else return 
1;
}
stock CPS_GetPlayerCheckpoint(playerid) if(!IsPlayerInCheckpoint(playerid)) return 0; else return CPSERVICE_actualcp[playerid];
stock CPS_RemoveCheckpoint(cpid)
{
    if(
cpid == || UsedCPSlot[cpid] == 0) return 0;
    
UsedCPSlot[cpid]=0;
    return 
1;
}
public 
CPSERVICE_Handler()
{
    for(new 
ii<MAX_PLAYERSi++){
        new 
Float:prevdist 100000.000;
        new 
prevcp;
        for(new 
cpid=1cpid MAX_CHECKPOINTScpid++){
            if(
UsedCPSlot[cpid]) {
                new 
Float:dist;
                
dist CPSERVICE_getdist(i,Checkpoints[cpid][cpX],Checkpoints[cpid][cpY],Checkpoints[cpid][cpZ]);
                if(
dist prevdist){
                    
prevdist dist;
                     
prevcp cpid;
                }
            }
        }
        new 
cpid=prevcp;
        if(
CPSERVICE_getdist(i,Checkpoints[cpid][cpX],Checkpoints[cpid][cpY],Checkpoints[cpid][cpZ]) < Checkpoints[cpid][cpsd]) {
            if(
CPSERVICE_actualcp[i] != cpid){
                
SetPlayerCheckpoint(i,Checkpoints[cpid][cpX],Checkpoints[cpid][cpY],Checkpoints[cpid][cpZ],Checkpoints[cpid][cpsz]);
                
CPSERVICE_actualcp[i] = cpid;
            }
        } else {
            if(
CPSERVICE_actualcp[i] != 0){
                
CPSERVICE_actualcp[i] = 0;
                
DisablePlayerCheckpoint(i);
            }
        }
    }
    return 
1;
}
stock CPSERVICE_getdist(playerid,Float:x2,Float:y2,Float:z2)
{
    new 
Float:x1,Float:y1,Float:z1;
    new 
Float:tmpdis;
    
GetPlayerPos(playerid,x1,y1,z1);
    
tmpdis floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    return 
floatround(tmpdis);

Nele diz que o 500 й o max. de CPs, mais nao consegui encontrar o parametro de tamanho


Respuesta: Tamanho do Chekpoint - DanDRT - 25.10.2013

pawn Код:
CPS_AddCheckpoint(Float:X,Float:Y,Float:Z,Float:size,Float:spawn_dist);
Posiзгo X, Posiзгo Y, Posiзгo Z, Tamanho, Spawn_distance.


Re: Tamanho do Chekpoint - N3XTMapper - 25.10.2013

Ta nй, mais como eu saberei o tamanho dele й esta minha duvida pois queria deixa-lo menor do que 2.0


Re: Tamanho do Chekpoint - arakuta - 25.10.2013

O tamanho й tu que sabe, nгo й tu que ta criando? '-'

Й o 4є parвmetro, o parвmetro size.

Se tu quer size 5, use assim:

pawn Код:
CPS_AddCheckpoint(Float:X,Float:Y,Float:Z,0b101,Float:spawn_dist);



Respuesta: Re: Tamanho do Chekpoint - DanDRT - 25.10.2013

Quote:
Originally Posted by N3XTMapper
Посмотреть сообщение
Ta nй, mais como eu saberei o tamanho dele й esta minha duvida pois queria deixa-lo menor do que 2.0
й so vocк botar menor que 2.0 uй, cada pergunta...


Re: Tamanho do Chekpoint - Juniiro3 - 25.10.2013

Quote:
Originally Posted by N3XTMapper
Посмотреть сообщение
Ta nй, mais como eu saberei o tamanho dele й esta minha duvida pois queria deixa-lo menor do que 2.0
Vai testando, vai pondo valores menores que 2.0 e ve o tamanho que fica


Re: Tamanho do Chekpoint - N3XTMapper - 25.10.2013

Quote:
Originally Posted by arakuta
Посмотреть сообщение
O tamanho й tu que sabe, nгo й tu que ta criando? '-'

Й o 4є parвmetro, o parвmetro size.

Se tu quer size 5, use assim:

pawn Код:
CPS_AddCheckpoint(Float:X,Float:Y,Float:Z,0b101,Float:spawn_dist);
Sim quem esta criando sou eu, mais como eu disse , estou usando os paramentros padroes para o tamanho do CP, e quando fui testar tava uma bola cabulosa de grande, entao queria muda-la ta ligado


Respuesta: Tamanho do Chekpoint - DanDRT - 25.10.2013

entendi ... teste a 1.5, acho que й esta que quer.