[AJUDA] Respawn no carro
#1

pawn Код:
if(strcmp(cmd, "/respawncarros", true) == 0 || strcmp(cmd, "/rc", true) == 0)
    {
        new playername[MAX_PLAYER_NAME];
        new string[128];
        if(IsPlayerConnected(playerid))
        {
if(         PlayerInfo[playerid][PlayerAdmin] == 0) return SendClientMessage(playerid,COLOR_RED, "Vocк nгo й Administrador!");
            GetPlayerName(playerid, playername, sizeof(playername));
            format(string, sizeof(string), "Todos os veнculos foram respawnados by: {FFFFFF}%s{FF0000}.", playername);
            SendClientMessageToAll(COLOR_RED,string);
            {
            for(new i = 0; i < MAX_VEHICLES; i++)
            {
            SetVehicleToRespawn(i);
            }
             }
        }
        return 1;
    }
Eu quero que quando o cara tб dentro do carro o carro nгo de respawn... Ajuda!
Reply
#2

achei isso nos codigos Uteis...ve ae
o cmd:
pawn Код:
if(strcmp(cmd, "/respawncarros", true) == 0 || strcmp(cmd, "/rc", true) == 0)
{
ResetarCarros();
return 1;
}
agora a public
pawn Код:
stock ResetarCarros()
{
    new string[46]="Os Veнculos forгo Respawnados Automaticamente";
    SendClientMessageToAll(COR_VERDE, string);
    new inVeh;
    for( new i = 0; i < MAX_VEHICLES; i++ )
    {
        inVeh = false;
        for( new j = 0; j < MAX_PLAYERS; j++ )
        {
            if(IsPlayerInVehicle( j, i ))
            {
                inVeh = true;
                break;
            }
        }
        if(!inVeh)
        {
            SetVehicleToRespawn(i);
        }
    }
}
talvez seja isso q vc quer...
Reply
#3

Olб [AF]Junior.

pawn Код:
new bool:VeiculoOcupado[MAX_VEHICLES];
stock IsVehicleEmpty(vehicleid)
{
    if(VeiculoOcupado[vehicleid])return 0;
    else return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/respawncarros", true) || !strcmp(cmdtext, "/rc", true))
    {
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFFFFF, "Comando de uso exclusivo de administradores");
        static nome[MAX_PLAYER_NAME];
        static string[72];
        GetPlayerName(playerid, nome, sizeof nome);
        format(string, sizeof string, "Os Veнculos foram respawnados pelo administrador: %s", nome);
        SendClientMessageToAll(0xFFFFFF, string);
        for(new v = 0; v < MAX_VEHICLES; ++v)
        {
            if(VeiculoOcupado[v] == false)
            {
                SetVehicleToRespawn(v);
            }
        }
        return 1;
    }
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    VeiculoOcupado[vehicleid] = false;
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == 2) VeiculoOcupado[GetPlayerVehicleID(playerid)] = true;
    return 1;
}
Reply
#4

Falcon nгo precisou de quilos de cуdigos, do badio12 simples e funcional.

Mas obrigado por responder aqui
Reply
#5

Sim. Mas o meu vocк poderб perceber que vocк utilizarб ele em outras coisas...Em um comando por exemplo ou em vбrias outras coisas.. ^^
"Meu" entre aspas..Isso й uma adaptaзгo de um cуdigo que o rjjj postou aqui no Fуrum um tempo atras..
Reply
#6

Bem, na verdade a idйia de fazer este cуdigo citado pelo Falcon eu tive porque percebi que a maioria dos cуdigos de checar se o veнculo estб ou nгo vazio utilizava loop, assim, imaginem como ficaria um comando de respawn (que й com loop) usando uma funзгo que й com loop ? .

Seria loop dentro de loop, entгo, pensei que poderia lagar o servidor por alguns segundos se um comando de respawn fosse usado 3 vezes, ou algo do tipo.

Pensei em um jeito de detectar se alguйm estava nos veнculos sem usar loop, e voa-lб .

Em outras palavras, o cуdigo que postei й mais otimizado, nгo que os outros nгo sejam funcionais tambйm e nгo que eu seja louco por otimizaзгo

Espero ter ajudado
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)