Jump to content
  • 0

Intrebare


Bogdan's

Question

Problemă întâlnită (descriere): Cum as putea sa fac ca atunci cand mor sa pun un timmer de 5 minute dar caracterul sa ramana tot in locul in care a fost omorat,iar dupa acele 5 minute trecute sa il bage la spital + sa ii arate timpul in secunde.

2.Cand masina ajunge la 400hp sa nu ia foc,sa ramana blocata,ex daca dai din nou /engine si masina are 400hp sa ii trimita mesaj ca masina este distrusa,contacteaza un mecanic?
Ero(area / rile) / warning-(ul / urile):-
Liniile de cod / sursa / script-ul:La omorare playerul il baga direct in spital,eu vreau sa fac sa il dea prima data la locul unde a fost omorat.

[pawn]if(MedicBill[playerid] == 1 && PlayerInfo[playerid][pJailed] == 0)
        {
            if(FirstSpawn[playerid] != 1)
            {
                PlayerInfo[playerid][pDeaths] += 1;
                SetPlayerHealth(playerid, 99.0);
                SetPlayerInterior(playerid, 0);
                PlayerInfo[playerid][pInt] = 0;
                SetPlayerVirtualWorld(playerid, 1);
                SetPlayerPos(playerid, 1235.3085,326.3891,-11.7422);
                SetPlayerFacingAngle(playerid, 151.3780);
                TogglePlayerControllable(playerid, 1);
                  PlayerInfo[playerid][pInvWeapon] = 0;
                PlayerInfo[playerid][pInvAmmo] = 0;
                SetPlayerSkin(playerid, 144);
                GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~Esti in coma la spital.Iti revii incet.", 30000, 3);
                JustDied[playerid] = 1;
                FreezeThenAutoUnfreeze(playerid, 20000)// time is in Milliseconds, to make the player controllable again.
                MedicTime[playerid] = 1;
                PlayerInfo[playerid][pMedic] = 1;
                if(PlayerInfo[playerid][pMedic] == 1)
                {
                    if(PlayerInfo[playerid][pDonateRank] > 0)
                    {
                        NeedMedicTime[playerid] = 60;
                    }
                    else
                    {
                        NeedMedicTime[playerid] = 120;
                    }
                }
                return 1;
            }
        }
        if(JustDied[playerid] == 1)
        {
            if(GetPlayerVirtualWorld(playerid) != 0 || PlayerInfo[playerid][pVirWorld] != 0)
            {
                SetPlayerVirtualWorld(playerid, 0);
                PlayerInfo[playerid][pVirWorld] = 0;
            }
            SetPlayerPos(playerid, 1170.5839,533.1086,20.8119);
            SetPlayerFacingAngle(playerid, 331.6384);
            SetPlayerInterior(playerid,0);
            PlayerInfo[playerid][pInt] = 0;
            return 1;
        }[/pawn]
Imagini / Video (optional):
Aţi încercat să rezolvaţi singur?:

Link to comment
Share on other sites

19 answers to this question

Recommended Posts

Asa trebuie sa arate comanda ta

 

[pawn]if(!strcmp(cmd, "/engine", true))
  {
    if(IsPlayerConnected(playerid))
    {
        new name[21];
        GetPlayerName(playerid, name, sizeof(name));
      if(IsPlayerInAnyVehicle(playerid))
      {
        if(!engineOn[GetPlayerVehicleID(playerid)])
        {
            if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
          {
            return 1;
          }
          if(Bicicleta(idcar)||IsAHarvest(idcar))
          {
            return 1;
          }
          if(IsAnOwnableCar(idcar))
          {
            if(PlayerInfo[playerid][pPcarkey1] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey2] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey3] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey4] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey5] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey6] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey7] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey8] == idcar) { }
            else { return 1; }
          }
            new Float:health;
            new playerveh = GetPlayerVehicleID(playerid);
            GetVehicleHealth(playerveh,health);
            if(health <= 450.0)
            {
            SendClientMessage(playerid,COLOR_LIGHTRED,"Masina este prea avariata,contacteaza un mecanic!");
//            RemovePlayerFromVehicle(playerid);
            return 1;
}
          if(Gas[idcar] <= 0)
          {
            SendClientMessage(playerid,COLOR_GRAD1,"Nu ai benzina pentru a porni motorul.");
              return 1;
          }
          if(gEngine[playerid] == 1) { return 1; }

          PutPlayerInVehicle(playerid, playerveh, 0);
          GetPlayerName(playerid, sendername, sizeof(sendername));
          format(string, sizeof(string), "* %s rasuceste cheia in contact pentru a porni motorul.", sendername);
          ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
          SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
          GameTextForPlayer(playerid, "~w~Porneste vehiculul...",3500,3);
          gEngine[playerid] = 1;
          return 1;
        }
        if(engineOn[GetPlayerVehicleID(playerid)])
        {
            if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
          {
            return 1;
          }
          if(Bicicleta(idcar)||IsAHarvest(idcar))
          {
            return 1;
          }
          if(IsAnOwnableCar(idcar))
          {
            if(PlayerInfo[playerid][pPcarkey1] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey2] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey3] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey4] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey5] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey6] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey7] == idcar) { }
            else if(PlayerInfo[playerid][pPcarkey8] == idcar) { }
            else { return 1; }
          }
          engineOn[GetPlayerVehicleID(playerid)] = false;
          //RemovePlayerFromVehicle(playerid);
          SetVehicleParamsEx(GetPlayerVehicleID(playerid), 0, -1, -1, -1, -1, -1, -1);
          GetPlayerName(playerid, sendername, sizeof(sendername));
          format(string, sizeof(string), "* %s opreste motorul si ia cheia din contact.", sendername);
          ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
          gEngine[playerid] = 0;
          return 1;
        }
      }
    }
    return 1;
  }[/pawn]

Link to comment
Share on other sites

nu inteleg frate dc vrei sa faci asa cv o sa ai 0 playeri ca nimeni nu asteapta 5 minute pe strada apoi bagat la spital =)))) ar fi un fel de jail ala :)) si daca vrei sa pierzi playeri ok sa bagi SetPlayerPos si pozitia unde e spitalu si SetTimer ca sa setezi timpu cat sa aiba freeze

Edited by Allex.xD
Link to comment
Share on other sites

Ok,sti ce nu inteleg eu?De unde sti ca o sa am 0 playeri,poate vreau sa fac serverul HARD RP ca sa aiba timp aia din ambulanta sa il resusciteze:)Iar faza cu SetPlayerPos il am facut doar la spital,(eu ti-am dat mura in gura) numai ca tu mi-ai dat detaliile pe care le aveam deja si eu le stiam.

 

Ceea ce inseamna ca ai facut acest post numai pentru +1 la statistici.

Edited by Bogdan's
Link to comment
Share on other sites

Salut,la OnPlayerEnterVehicle adauga urmatorul:

new Float:health;
  new veh;
  GetVehicleHealth(veh, health);
  if(health = 450)
  TogglePlayerControllable(i, 0);
   SendClientMessage(playerid,COLOR_WHITE," Masina ta este prea distrusa pentru a merge cu ea suna un mecanic.");
  return 1;
}

Iar la OnPlayerExitVehicle pune

TogglePlayerControllable(i, 1);

 

De stiut:

if(health = 450) - De aici modifici health-ul masinii in care sa se opreasca.

Edited by Adrian_Petre

 

 

Link to comment
Share on other sites

[pawn]if(!strcmp(cmd, "/engine", true))
{
if(IsPlayerConnected(playerid))
{
new name[21];
GetPlayerName(playerid, name, sizeof(name));
if(IsPlayerInAnyVehicle(playerid))
{
if(!engineOn[GetPlayerVehicleID(playerid)])
{
if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
return 1;
}
if(Bicicleta(idcar)||IsAHarvest(idcar))
{
return 1;
}
if(IsAnOwnableCar(idcar))
{
if(PlayerInfo[playerid][pPcarkey1] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey2] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey3] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey4] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey5] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey6] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey7] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey8] == idcar) { }
else { return 1; }
}
if(Gas[idcar] <= 0)
{
SendClientMessage(playerid,COLOR_GRAD1,"Nu ai benzina pentru a porni motorul.");
return 1;
}
if(gEngine[playerid] == 1) { return 1; }

new playerveh = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, playerveh, 0);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s rasuceste cheia in contact pentru a porni motorul.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
GameTextForPlayer(playerid, "~w~Porneste vehiculul...",3500,3);
gEngine[playerid] = 1;
return 1;
}
if(engineOn[GetPlayerVehicleID(playerid)])
{
if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
return 1;
}
if(Bicicleta(idcar)||IsAHarvest(idcar))
{
return 1;
}
if(IsAnOwnableCar(idcar))
{
if(PlayerInfo[playerid][pPcarkey1] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey2] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey3] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey4] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey5] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey6] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey7] == idcar) { }
else if(PlayerInfo[playerid][pPcarkey8] == idcar) { }
else { return 1; }
}
engineOn[GetPlayerVehicleID(playerid)] = false;
//RemovePlayerFromVehicle(playerid);
SetVehicleParamsEx(GetPlayerVehicleID(playerid), 0, -1, -1, -1, -1, -1, -1);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* %s opreste motorul si ia cheia din contact.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
gEngine[playerid] = 0;
return 1;
}
}
}
return 1;
}[/pawn]

Si cum as putea sa o fac numai atunci cand spre exmplu X porneste motorul masinii si X opreste motorul masinii?

Link to comment
Share on other sites

Daca vrei sa faci acea chestie cu 5 minute. Trebuie sa ii setezi viata jucatorului la 1 sau la 2 si sa o mentii asa timp de 5 minute, cand s-au terminat sa il respawnezi sau ce vrei tu sa faci cu el. Atunci cand ii setezi viata trebuie sa le trimiti si mediciulor un mesaj.

 

Pentru engine adaugi inainte de [pawn]if(Gas[idcar] <= 0)
{
SendClientMessage(playerid,COLOR_GRAD1,"Nu ai benzina pentru a porni motorul.");
return 1;
}[/pawn]

 

asta [pawn]

GetVehicleHealth(playerveh , health);

if(health <= 450)
{
SendClientMessage(playerid,COLOR_GRAD1,"Masina este prea avariata!");

RemovePlayerFromVehicle(playerid);
return 1;
}[/pawn]

 

RemovePlayerFromVehicle(playerid); e optional, daca vrei sa il dai jos din masina.

Link to comment
Share on other sites

WopsS,imi da o eroare la health in aceste doua linii:

(cica nu sunt definite,dar eu am definit cu new health[MAX_PLAYERS];

Cat imi da si o eroare la playerveh,fiindca tot nu este definit:|

GetVehicleHealth(playerveh,health);
                          if(health <= 450)
Edited by Bogdan's
Link to comment
Share on other sites

Tot aceeasi treaba,deci am facut urmatorul lucru:

new playerveh;

Si am facut ceea ce mi-ai spus tu.

new Float:health;
//                        new playerveh = GetPlayerVehicleID(playerid);
                        GetVehicleHealth(playerveh,health);
                          if(health <= 450.0)
                        {
                        SendClientMessage(playerid,COLOR_LIGHTRED,"Masina este prea avariata,contacteaza un mecanic!");
//                        RemovePlayerFromVehicle(playerid);
                        return 1;
}

Asa arata comanda intreaga:

if(!strcmp(cmd, "/engine", true))
    {
        if(IsPlayerConnected(playerid))
        {
            new name[21];
            GetPlayerName(playerid, name, sizeof(name));
            if(IsPlayerInAnyVehicle(playerid))
            {
                if(!engineOn[GetPlayerVehicleID(playerid)])
                {
                    if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
                    {
                        return 1;
                    }
                    if(Bicicleta(idcar)||IsAHarvest(idcar))
                    {
                        return 1;
                    }
                    if(IsAnOwnableCar(idcar))
                    {
                        if(PlayerInfo[playerid][pPcarkey1] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey2] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey3] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey4] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey5] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey6] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey7] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey8] == idcar) { }
                        else { return 1; }
                    }
                        new Float:health;
//                        new playerveh = GetPlayerVehicleID(playerid);
                        GetVehicleHealth(playerveh,health);
                          if(health <= 450.0)
                        {
                        SendClientMessage(playerid,COLOR_LIGHTRED,"Masina este prea avariata,contacteaza un mecanic!");
//                        RemovePlayerFromVehicle(playerid);
                        return 1;
}
                    if(Gas[idcar] <= 0)
                    {
                        SendClientMessage(playerid,COLOR_GRAD1,"Nu ai benzina pentru a porni motorul.");
                        return 1;
                    }
                    if(gEngine[playerid] == 1) { return 1; }

                    PutPlayerInVehicle(playerid, playerveh, 0);
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "* %s rasuceste cheia in contact pentru a porni motorul.", sendername);
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
                    GameTextForPlayer(playerid, "~w~Porneste vehiculul...",3500,3);
                    gEngine[playerid] = 1;
                    return 1;
                }
                if(engineOn[GetPlayerVehicleID(playerid)])
                {
                    if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
                    {
                        return 1;
                    }
                    if(Bicicleta(idcar)||IsAHarvest(idcar))
                    {
                        return 1;
                    }
                    if(IsAnOwnableCar(idcar))
                    {
                        if(PlayerInfo[playerid][pPcarkey1] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey2] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey3] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey4] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey5] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey6] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey7] == idcar) { }
                        else if(PlayerInfo[playerid][pPcarkey8] == idcar) { }
                        else { return 1; }
                    }
                    engineOn[GetPlayerVehicleID(playerid)] = false;
                    //RemovePlayerFromVehicle(playerid);
                    SetVehicleParamsEx(GetPlayerVehicleID(playerid), 0, -1, -1, -1, -1, -1, -1);
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "* %s opreste motorul si ia cheia din contact.", sendername);
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    gEngine[playerid] = 0;
                    return 1;
                }
            }
        }
        return 1;
    }

Nu cumva vine un else if (health <= 450.0)?

Edited by Bogdan's
Link to comment
Share on other sites

Nu.

 

playerveh trebuie sa aiba valoarea ID-ului masinii!

 

Daca ai facut [pawn]new playerveh;[/pawn] global sterge-l si sterge comentariul la acesta [pawn]// new playerveh = GetPlayerVehicleID(playerid);[/pawn]

 

Sau daca mai ai o variabila globala cu playerveh, redenumeste-o pe ce-a din comanda si inlocuieste tot in ce ti-am dat noi.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.