[Ajuda] especificar o checkpoint , para poder criar varios com funзхes diferente
#1

bom eu queria saber como faz para dar 1 funзгo para cada checkpoint que crio utilizando:

https://sampwiki.blast.hk/wiki/SetPlayerCheckpoint

e

https://sampwiki.blast.hk/wiki/IsPlayerInCheckpoint

tipo eu coloco o isplayerincheckpoint la no onplayerentercheckpoint

o problema й que quero criar outros checkpoint tipo й um FS de caminhoneiro que to criando deu certo problema foi ao criar outra rota tipo a rota da usina de sf da 1500 e a outra rota teria que dar - ou + dependendo da onde ele tiver que ir entregar mais como eu coloco funзхes diferentes para cada checkpoint?

se precisarem do cуdigo fala ae ...
Reply
#2

Toma essa base que acabei de fazer ae, espero que entenda.

PHP код:
new RotaPlayer[MAX_PLAYERS];

CMD:rota1(playerid)
{
    return 
RotaPlayer[playerid] = 1;
}

CMD:rota2(playerid)
{
    return 
RotaPlayer[playerid] = 2;
}

CMD:rota3(playerid)
{
    return 
RotaPlayer[playerid] = 3;
}


public 
OnPlayerEnterCheckpoint(playerid)
{
    if(
RotaPlayer[playerid] == 1)
    {
        
//code
    
}
    else if(
RotaPlayer[playerid] == 2)
    {
        
//code
    
}
    else if(
RotaPlayer[playerid] == 3)
    {
        
//code
    
}
    return 
1;

Reply
#3

Quote:
Originally Posted by IlanZ
Посмотреть сообщение
Toma essa base que acabei de fazer ae, espero que entenda.

PHP код:
new RotaPlayer[MAX_PLAYERS];
CMD:rota1(playerid)
{
    return 
RotaPlayer[playerid] = 1;
}
CMD:rota2(playerid)
{
    return 
RotaPlayer[playerid] = 2;
}
CMD:rota3(playerid)
{
    return 
RotaPlayer[playerid] = 3;
}
public 
OnPlayerEnterCheckpoint(playerid)
{
    if(
RotaPlayer[playerid] == 1)
    {
        
//code
    
}
    else if(
RotaPlayer[playerid] == 2)
    {
        
//code
    
}
    else if(
RotaPlayer[playerid] == 3)
    {
        
//code
    
}
    return 
1;

entendi mais ou menos , mano tipo tu nгo entendeu o meu /carregar ele nгo tem comando de rotas й em dialog ou seja acho que nгo teria como fazer isso que tu fez ai toma o cуdigo:

PHP код:
CMD:carregar(playeridparams[])
{
    new 
vehicle GetPlayerVehicleID(playerid);
    if(
GetVehicleModel(vehicle) == 514)
        {
            if (
IsPlayerInRangeOfPoint(playerid20.0, -7.27381523.378412.7500))
            {
                
ShowPlayerDialog(playeridrotasDIALOG_STYLE_LIST"Rotas""Usina De San Fierro""Quero Essa""Ir nessa");
                
RemovePlayerMapIcon(playerid51);
            }else{
                
SendClientMessage(playerid, -1"{FF0040}Vocк nгo esta na area de carregamento!");
                
SendClientMessage(playerid, -1"{00FF00}Foi marcado em seu mapa a area de carregamento.");
                    
SetPlayerMapIcon(playerid51, -7.27381523.378412.7500510MAPICON_GLOBAL);
                    
            }
        }else{
        
                
SendClientMessage(playerid, -1"{FF0040}Vai carregar nas costa ?");
        }
    
    return 
1;

o dialog rotas:

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == rotas)
    {
        switch(
listitem)
            {
                case 
0:
                {
                    new 
veiculo GetPlayerVehicleID(playerid);
                    if(
GetVehicleModel(veiculo) == 514){
                        new 
vehiclev GetPlayerVehicleID(playerid);
                        if(
IsTrailerAttachedToVehicle(vehiclev)){
                               
SetPlayerMapIcon(playerid24, -1021.5939, -664.912032.0078, -124MAPICON_GLOBAL);
                               
SetPlayerCheckpoint(playerid, -1021.5939, -664.912032.007810.0);
                            
SendClientMessage(playerid, -1"{00FF00}Cargueiro carregado!!!");
                            
SendClientMessage(playerid, -1"{00FF00}Foi marcado em seu mapa o local de descarregamento.");
                                                                }else{
                                                                        
SendClientMessage(playerid, -1"{FF0000}e a carga ???");
                    }
                }
            }
        }
    }

o onplayerentercheckpoint:

PHP код:
public OnPlayerEnterCheckpoint(playerid)
{
    if (
IsPlayerInCheckpoint(playerid))
    {
    new 
vehiclevv GetPlayerVehicleID(playerid);
    if(
GetVehicleModel(vehiclevv) == 514){
            new 
vehiclev GetPlayerVehicleID(playerid);
            if(
IsTrailerAttachedToVehicle(vehiclev))
            {
                if (
IsPlayerInRangeOfPoint(playerid10.0, -1021.5939, -664.912032.0078))
                {
                      new 
vehiclecc GetPlayerVehicleID(playerid);
                     new 
trailerc GetVehicleTrailer(vehiclecc);
                    
DetachTrailerFromVehicle(trailerc);
                    
SetVehicleToRespawn(trailerc);
                     
SendClientMessage(playerid, -1"{FF0000}Caminhгo descarregado!");
                      
SendClientMessage(playerid, -1"{FF0000}Pagamento: {00ff00}$2000");
                    
GivePlayerMoney(playerid2000);
                    
RemovePlayerMapIcon(playerid24);
                    
DisablePlayerCheckpoint(playerid);
                    }else{
                    
SendClientMessage(playerid, -1"{FF0040}Vocк nгo carregou seu caminhгo!");
       }
            }
        }
    }else{
        
SendClientMessage(playerid, -1"{FF0040}Vocк nгo esta com um caminhгo!");
    }
    return 
1;
    } 
entendeu ? ele nгo usa comandos para isso , й so /carregar o descarregar й checkpoint cada rota que tem no dialog criaria um outro checkpoint para ele quando ele chegasse la a carga dele sumiria ele ganharia a granada e o checkpoint й apagado й isso que ta no cуdigo tendeu ? por isso nгo entendi oque vocк disse mano nгo й por comando
Reply
#4

Bem, depois de muito tempo, espero que aproveite bem, otimizei muito seu codigo:

PHP код:
new RotaCarga[MAX_PLAYERS];

CMD:carregar(playeridparams[]) 

    new 
vehicle GetPlayerVehicleID(playerid); 
    if(!
GetVehicleModel(vehicle) == 514) return  SendClientMessage(playerid, -1"carai borracha mano pega o caminhau serto"); 
    if(!
IsPlayerInRangeOfPoint(playerid20.0, -7.27381523.378412.7500)) return SendClientMessage(playerid, -1"{FF0040}Vocк nгo esta na area de carregamento!");
    
RemovePlayerMapIcon(playerid51);    
    return 
ShowPlayerDialog(playeridrotasDIALOG_STYLE_LIST"Rotas""Usina De San Fierro\nUsina de cidade dos gay""Quero Essa""Ir nessa");


public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

    if(
dialogid == rotas
    { 
        switch(
listitem
            { 
                case 
0
                { 
                       new 
veiculo GetPlayerVehicleID(playerid); 
                       if(!
GetVehicleModel(veiculo) == 514) return SendClientMessage(playerid, -1"Nгo й esse veiculo ta drogado?");
                    if(!
IsTrailerAttachedToVehicle(veiculo)) return SendClientMessage(playerid, -1"E a carga porra?");
                    
SetPlayerMapIcon(playerid24, -1021.5939, -664.912032.0078, -124MAPICON_GLOBAL); 
                    
SetPlayerCheckpoint(playerid, -1021.5939, -664.912032.007810.0); 
                    
SendClientMessage(playerid, -1"{00FF00}Cargueiro carregado, para usina de SF"); 
                    
SendClientMessage(playerid, -1"{00FF00}Foi marcado em seu mapa o local de descarregamento."); 
                    
RotaCarga[playerid] = 1// sf
                

                case 
1:
                {
                    new 
veiculo GetPlayerVehicleID(playerid); 
                       if(!
GetVehicleModel(veiculo) == 514) return SendClientMessage(playerid, -1"Nгo й esse veiculo ta drogado?");
                    if(!
IsTrailerAttachedToVehicle(veiculo)) return SendClientMessage(playerid, -1"E a carga porra?");
                    
SetPlayerMapIcon(playerid24242424242424, -124MAPICON_GLOBAL); 
                    
SetPlayerCheckpoint(playerid24242424242410.0); 
                    
SendClientMessage(playerid, -1"{00FF00}Cargueiro carregado, para cidade dos gay"); 
                    
SendClientMessage(playerid, -1"{00FF00}Foi marcado em seu mapa o local de descarregamento."); 
                    
RotaCarga[playerid] = 2//cidade dos gay
                
}
            } 
        } 
    } 
    return 
1;
}

public 
OnPlayerEnterCheckpoint(playerid

    if(
RotaCarga[playerid] == 1)
    {
        new 
vehiclevv GetPlayerVehicleID(playerid); 
        if(!
GetVehicleModel(vehiclevv) == 514) return SendClientMessage(playerid, -1"{FF0040}Vocк nгo esta com um caminhгo!"); 
        if(!
IsTrailerAttachedToVehicle(vehiclevv)) return  SendClientMessage(playerid, -1"{FF0040}Vocк nгo carregou seu caminhгo!");  
        if(!
IsPlayerInRangeOfPoint(playerid10.0, -1021.5939, -664.912032.0078))  return SendClientMessage(playeridcolor"Nгo estб na area de carregamento");
        new 
trailerc GetVehicleTrailer(vehiclevv); 
        
DetachTrailerFromVehicle(trailerc); 
        
SetVehicleToRespawn(trailerc); 
        
SendClientMessage(playerid, -1"{FF0000}Caminhгo descarregado em SanFierro"); 
        
SendClientMessage(playerid, -1"{FF0000}Pagamento: {00ff00}$2000"); 
        
GivePlayerMoney(playerid2000); 
        
RemovePlayerMapIcon(playerid24); 
        
DisablePlayerCheckpoint(playerid);  
        
RotaCarga[playerid] = 0;
    }
    else if(
RotaCarga[playerid] == 2)
    {
        new 
vehiclevv GetPlayerVehicleID(playerid); 
        if(!
GetVehicleModel(vehiclevv) == 514) return SendClientMessage(playerid, -1"{FF0040}Vocк nгo esta com um caminhгo!"); 
        if(!
IsTrailerAttachedToVehicle(vehiclevv)) return  SendClientMessage(playerid, -1"{FF0040}Vocк nгo carregou seu caminhгo!");  
        if(!
IsPlayerInRangeOfPoint(playerid10.0, -1021.5939, -664.912032.0078))  return SendClientMessage(playeridcolor"Nгo estб na area de carregamento");
        new 
trailerc GetVehicleTrailer(vehiclevv); 
        
DetachTrailerFromVehicle(trailerc); 
        
SetVehicleToRespawn(trailerc); 
        
SendClientMessage(playerid, -1"{FF0000}Caminhгo descarregado na Cidade dos gays"); 
        
SendClientMessage(playerid, -1"{FF0000}Pagamento: {00ff00}$24"); 
        
GivePlayerMoney(playerid2000); 
        
RemovePlayerMapIcon(playerid24); 
        
DisablePlayerCheckpoint(playerid);  
        
RotaCarga[playerid] = 0;
    }
    return 
1

Reply
#5

Quote:
Originally Posted by IlanZ
Посмотреть сообщение
Bem, depois de muito tempo, espero que aproveite bem, otimizei muito seu codigo:

PHP код:
new RotaCarga[MAX_PLAYERS];
CMD:carregar(playeridparams[]) 

    new 
vehicle GetPlayerVehicleID(playerid); 
    if(!
GetVehicleModel(vehicle) == 514) return  SendClientMessage(playerid, -1"carai borracha mano pega o caminhau serto"); 
    if(!
IsPlayerInRangeOfPoint(playerid20.0, -7.27381523.378412.7500)) return SendClientMessage(playerid, -1"{FF0040}Vocк nгo esta na area de carregamento!");
    
RemovePlayerMapIcon(playerid51);    
    return 
ShowPlayerDialog(playeridrotasDIALOG_STYLE_LIST"Rotas""Usina De San Fierro\nUsina de cidade dos gay""Quero Essa""Ir nessa");

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

    if(
dialogid == rotas
    { 
        switch(
listitem
            { 
                case 
0
                { 
                       new 
veiculo GetPlayerVehicleID(playerid); 
                       if(!
GetVehicleModel(veiculo) == 514) return SendClientMessage(playerid, -1"Nгo й esse veiculo ta drogado?");
                    if(!
IsTrailerAttachedToVehicle(veiculo)) return SendClientMessage(playerid, -1"E a carga porra?");
                    
SetPlayerMapIcon(playerid24, -1021.5939, -664.912032.0078, -124MAPICON_GLOBAL); 
                    
SetPlayerCheckpoint(playerid, -1021.5939, -664.912032.007810.0); 
                    
SendClientMessage(playerid, -1"{00FF00}Cargueiro carregado, para usina de SF"); 
                    
SendClientMessage(playerid, -1"{00FF00}Foi marcado em seu mapa o local de descarregamento."); 
                    
RotaCarga[playerid] = 1// sf
                

                case 
1:
                {
                    new 
veiculo GetPlayerVehicleID(playerid); 
                       if(!
GetVehicleModel(veiculo) == 514) return SendClientMessage(playerid, -1"Nгo й esse veiculo ta drogado?");
                    if(!
IsTrailerAttachedToVehicle(veiculo)) return SendClientMessage(playerid, -1"E a carga porra?");
                    
SetPlayerMapIcon(playerid24242424242424, -124MAPICON_GLOBAL); 
                    
SetPlayerCheckpoint(playerid24242424242410.0); 
                    
SendClientMessage(playerid, -1"{00FF00}Cargueiro carregado, para cidade dos gay"); 
                    
SendClientMessage(playerid, -1"{00FF00}Foi marcado em seu mapa o local de descarregamento."); 
                    
RotaCarga[playerid] = 2//cidade dos gay
                
}
            } 
        } 
    } 
    return 
1;
}
public 
OnPlayerEnterCheckpoint(playerid

    if(
RotaCarga[playerid] == 1)
    {
        new 
vehiclevv GetPlayerVehicleID(playerid); 
        if(!
GetVehicleModel(vehiclevv) == 514) return SendClientMessage(playerid, -1"{FF0040}Vocк nгo esta com um caminhгo!"); 
        if(!
IsTrailerAttachedToVehicle(vehiclevv)) return  SendClientMessage(playerid, -1"{FF0040}Vocк nгo carregou seu caminhгo!");  
        if(!
IsPlayerInRangeOfPoint(playerid10.0, -1021.5939, -664.912032.0078))  return SendClientMessage(playeridcolor"Nгo estб na area de carregamento");
        new 
trailerc GetVehicleTrailer(vehiclevv); 
        
DetachTrailerFromVehicle(trailerc); 
        
SetVehicleToRespawn(trailerc); 
        
SendClientMessage(playerid, -1"{FF0000}Caminhгo descarregado em SanFierro"); 
        
SendClientMessage(playerid, -1"{FF0000}Pagamento: {00ff00}$2000"); 
        
GivePlayerMoney(playerid2000); 
        
RemovePlayerMapIcon(playerid24); 
        
DisablePlayerCheckpoint(playerid);  
        
RotaCarga[playerid] = 0;
    }
    else if(
RotaCarga[playerid] == 2)
    {
        new 
vehiclevv GetPlayerVehicleID(playerid); 
        if(!
GetVehicleModel(vehiclevv) == 514) return SendClientMessage(playerid, -1"{FF0040}Vocк nгo esta com um caminhгo!"); 
        if(!
IsTrailerAttachedToVehicle(vehiclevv)) return  SendClientMessage(playerid, -1"{FF0040}Vocк nгo carregou seu caminhгo!");  
        if(!
IsPlayerInRangeOfPoint(playerid10.0, -1021.5939, -664.912032.0078))  return SendClientMessage(playeridcolor"Nгo estб na area de carregamento");
        new 
trailerc GetVehicleTrailer(vehiclevv); 
        
DetachTrailerFromVehicle(trailerc); 
        
SetVehicleToRespawn(trailerc); 
        
SendClientMessage(playerid, -1"{FF0000}Caminhгo descarregado na Cidade dos gays"); 
        
SendClientMessage(playerid, -1"{FF0000}Pagamento: {00ff00}$24"); 
        
GivePlayerMoney(playerid2000); 
        
RemovePlayerMapIcon(playerid24); 
        
DisablePlayerCheckpoint(playerid);  
        
RotaCarga[playerid] = 0;
    }
    return 
1

kkkkkkkkkkkkkkkkkkkkkkkkk rachei vendo as mensagem , isso que eu tava fazendo agora mano eu vou lanзar um fs so de caminhoneiro entгo tava adicionando as funзгo e deixando organizado porque essa versгo ai foi na hora mesmo tudo de teste oque sair errado organiza depois tipo isso , o poder de alguem que estuda a linguagem pawn a 1 ano '0' , vlw mano <3 , tipo mano eu ja estudava a linguagem java e esqueзi que ela й bem parecida com a pawn os parametros , comandos ... tipo (!) ! = se nгo for , (=>) = se for igual ou maior , (=<) se for igual ou menor etc...
Reply
#6

WoozieBRz vejo que estб tendo muitas duvidas, e comeзando com CP! recomendo utilizar minha include, estб sempre em aperfeiзoamento! ela traz muitas funcionalidades fodas! e tambem a possibilidade de cores, e visualizar mais de um CP, ao mesmo tempo!

Reply
#7

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

    if(
dialogid == rotas
    { 
        switch(
listitem
            { 
                case 
0
Podia usa:

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == rotas)
    {
        if(
listitem == 0)
        {
            
//Funcao
        

Reply
#8

Quote:
Originally Posted by zCyan
Посмотреть сообщение
PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[]) 

    if(
dialogid == rotas
    { 
        switch(
listitem
            { 
                case 
0
Podia usa:

PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == rotas)
    {
        if(
listitem == 0)
        {
            
//Funcao
        

Da no mesmo, nгo tem nada de otimizaзгo. Sу muda a organizaзгo, switch й melhor na minha opiniгo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)