Jump to content
  • 0

O mica problema... (bug)


Shad0wdpbgd

Question

Salut, am aceasta problema banala si nu stiu cum sa o rezolv. Daca poate sa ma ajute cineva, multumesc.

Problema: cand intru intr-o masina care nu este personala tot imi arata "this infernus (id: blabla) is owned by dasd".

COD: (comanda /spawncar) 

YCMD:spawncar(playerid, params[], help) 
{
    if(!Iter_Contains(ServerAdmins, playerid))
        return sendPlayerError(playerid, "Nu ai acces la aceasta comanda!");

    if(Iter_Count(AdminVehicles) >= MAX_ADMIN_VEHICLES)
        return sendPlayerError(playerid, "Nu poti crea un vehicul deoarece s-a atins numarul maxim de vehicule (%d).", MAX_ADMIN_VEHICLES);

    new modelid, firstcolor, secondcolor;
    if(sscanf(params, "ddd", modelid, firstcolor, secondcolor))
        return sendPlayerSyntax(playerid, "/spawncar <model id> <first color> <second color>");

    if(PlayerInfo[playerid][pDrivingLicense] == 0)
        return sendPlayerError(playerid, "Nu ai licenta de condus!");

    if(modelid < 400 || modelid > 611)
        return sendPlayerError(playerid, "Invalid model id! (400 - 611)");

    if(firstcolor < 0 || firstcolor > 255)
        return sendPlayerError(playerid, "Invalid first color (0 - 255).");
        
    if(secondcolor < 0 || secondcolor > 255)
        return sendPlayerError(playerid, "Invalid second color (0 - 255).");

    new Float:x, Float:y, Float:z, Float:angle;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, angle);

    new carid = CreateVehicle(modelid, x, y, z, angle, firstcolor, secondcolor, -1);
    SetVehicleNumberPlate(carid, "AdmCar");
    PutPlayerInVehicle(playerid, carid, 0);
    Iter_Add(AdminVehicles, carid);
    vehicle_fuel[carid] = 100.0;
   //problema vehicle_personal[carid] = -1;

    sendAdmin(COLOR_DARKRED, "Warning: Admin %s spawned a %s (ID: %d).", getName(playerid), getVehicleName(modelid), carid);
    return true;
}

 

si Examen

vehicle_personal[PlayerInfo[playerid][pExamenVehicle]] = -1;

 

// vehicle_personal[MAX_VEHICLES]

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0
2 minutes ago, SanckyAdv said:

Arata codul unde iti da acel mesaj, se afla la callback-ul OnPlayerKeyStateChange sau OnPlayerEnterVehicle.

        if(vehicle_personal[vehicleid] > -1)
        {
            new id = vehicle_personal[vehicleid];
            SCMF(playerid, COLOR_WHITE, "This %s (ID: %d) is owned by %s | Age: %d days | Kilometers: %0.2f km | Colors: %d, %d.", getVehicleName(PersonalVehicle[id][pvModelID]), PersonalVehicle[id][pvID], getName(getVehicleOwner(PersonalVehicle[id][pvOwnerID])), getVehDays(id), PersonalVehicle[id][pvOdometer], PersonalVehicle[id][pvColorOne], PersonalVehicle[id][pvColorTwo]);
            PersonalVehicle[id][pvDespawnTime] = 0;
        }
    }

Link to comment
Share on other sites

  • 0
Just now, SanckyAdv said:

Arata si OnVehicleSpawn respectiv OnVehicleDeath.

public OnVehicleSpawn(vehicleid)
{
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, objective);

    vehicle_engine[vehicleid] = false;
    vehicle_lights[vehicleid] = false;
    vehicle_bonnet[vehicleid] = false;
    vehicle_boot[vehicleid] = false;
    vehicle_fuel[vehicleid] = 100.0;
    return 1;
}

Link to comment
Share on other sites

  • 0
45 minutes ago, SanckyAdv said:

Atunci, fa-i un debug in care sa-ti returneze in mesaj valoarea variabilei vehicle_personal[GetPlayerVehicleID(playerid)] si vezi ce valoare are dupa ce se spawneaza si esti in ea.

SCMF(playerid, -1, "DEBUG: %d", vehicle_personal[GetPlayerVehicleID(playerid)]); 

am facut, si cand dau /spawncar arata "DEBUG: -1"

Link to comment
Share on other sites

  • 0

Salut @Raduq,

Problema nu e de la comanda /spawncar sau atunci cand intri/iesi din masina. Problema e ca la tine dupa ce un vehicul este despawnat (distrus), nu se reseteaza variabilele de la el, cum ar fi cine detine acel vehicul, id-ul vehiculului din variabila, iar de fiecare data cand spawnezi o masina, aceasta va avea acel id de la vechea masina care a fost despawnata si va primi variabilele de la masina respectiva.

Ca sa rezolvi problema asta pur si simplu cauti functia sau locurile in care iti despawnezi tu vehiculele personale si resetezi variabilele pe 0 sau -1 (sau cum ai tu sistemul, nu stiu).

Daca te-am ajutat =>

spacer.png

Link to comment
Share on other sites

  • 0
1 hour ago, shane said:

Salut @Raduq,

Problema nu e de la comanda /spawncar sau atunci cand intri/iesi din masina. Problema e ca la tine dupa ce un vehicul este despawnat (distrus), nu se reseteaza variabilele de la el, cum ar fi cine detine acel vehicul, id-ul vehiculului din variabila, iar de fiecare data cand spawnezi o masina, aceasta va avea acel id de la vechea masina care a fost despawnata si va primi variabilele de la masina respectiva.

Ca sa rezolvi problema asta pur si simplu cauti functia sau locurile in care iti despawnezi tu vehiculele personale si resetezi variabilele pe 0 sau -1 (sau cum ai tu sistemul, nu stiu).

        PersonalVehicle[i][pvID] = 0;
        PersonalVehicle[i][pvModelID] = 0;
        PersonalVehicle[i][pvOwnerID] = 0;
        PersonalVehicle[i][pvColorOne] = 0;
        PersonalVehicle[i][pvColorTwo] = 0;
        PersonalVehicle[i][pvX] = 0;
        PersonalVehicle[i][pvY] = 0;
        PersonalVehicle[i][pvZ] = 0;
        PersonalVehicle[i][pvAngle] = 0;
        PersonalVehicle[i][pvOdometer] = 0;
        PersonalVehicle[i][pvFuel] = 0;
        PersonalVehicle[i][pvAge] = 0;
        PersonalVehicle[i][pvInsurancePoints] = 0;
        PersonalVehicle[i][pvLock] = 0;
        PersonalVehicle[i][pvHealth] = 0.0;
        PersonalVehicle[i][pvVirtualWorld] = 0;
        PersonalVehicle[i][pvInterior] = 0;
        PersonalVehicle[i][pvDamagePanels] = 0;
        PersonalVehicle[i][pvDamageDoors] = 0;
        PersonalVehicle[i][pvDamageLights] = 0;
        PersonalVehicle[i][pvDamageTires] = 0;
        PersonalVehicle[i][pvPaintJob] = 0;
        PersonalVehicle[i][pvCarPlate] = (EOS);
        PersonalVehicle[i][pvDespawnTime] = 0; 

le am deja bro

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Rby Robert
      cand dau /ad pe server scriu acolo /ad Recrutez in clanul .... nu apare ad pe server apare la staff Preview ad dar pe server la playerii nu apare
      Aceasta este comanda
      YCMD:ad(playerid, params[], help) {
          if(AdTimer[playerid] != 0) return SCM(playerid, COLOR_LGREEN, "Ai pus un anunt recent. Foloseste comanda /myad pentru a-l vedea.");
          new string[264],idx;
          if(!PlayerInfo[playerid][pPhone]) return SCM(playerid, COLOR_LGREEN, "Nu ai un telefon.");
          if(PlayerInfo[playerid][pMuted] == 1) {
              format(string, sizeof(string), "You can't talk right now! You are muted. (%d seconds)",PlayerInfo[playerid][pMuteTime]);
              SCM(playerid, COLOR_GREY, string);
              return true;
          }
          if(PlayerInfo[playerid][pLevel] < 5) return SCM(playerid, COLOR_GREY, "Ai nevoie de nivel 5 pentru a da un anunt!");
          new length = strlen(params);
          while ((idx < length) && (params[idx] <= ' ')) idx++;
          new offset = idx, result[264];
          while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) {
              result[idx - offset] = params[idx];
              idx++;
          }
          result[idx - offset] = EOS;
          new totalads = TotalAds()+1;
          if(PlayerToPoint(10, playerid, BizzInfo[11][bEntranceX], BizzInfo[11][bEntranceY], BizzInfo[11][bEntranceZ])) {
              if(!strlen(result)) return SCM(playerid, COLOR_GREY, "Usage:{FFFFFF}/ad <Text>");
              if(FaceReclama(result)) return Reclama(playerid, result);
              new payout = BizzInfo[14][bFee];
              if(PlayerMoney(playerid, payout)) {
                  format(string, sizeof(string), "* Ai folosit %d caractere si anuntul costa $%s, Nu ai banii necesari", offset, FormatNumbers(payout));
                  SCM(playerid, COLOR_WHITE, string);
                  return true;
              }
              GivePlayerCash(playerid, 0, payout);
              format(string, sizeof(string), "~r~Ai platit $%d~n~~w~Mesajul contine: %d caractere", payout, idx);
              GameTextForPlayer(playerid, string, 5000, 5);
              format(AdText[playerid], 256, result);
              format(string, sizeof(string), "[PREV AD] %s ({FFFFFF}%d{00D900}): %s", GetName(playerid), playerid, result);
              SendStaffMessage(0xDE1414FF, string);
              AdTimer[playerid] = totalads*60;
              new timer;        
              timer = SetTimerEx("Advertisment", totalads*60000, 0, "d", playerid);
              SetPVarInt(playerid, "AdTimer", timer); 
              format(string, sizeof(string), "Anuntul tau va fi afisat in %d minute (%d secunde).", AdTimer[playerid]/60, AdTimer[playerid]);
              SCM(playerid, -1, string);
              BizzInfo[14][bBalance] += payout;
              new str[128];
              mysql_format(SQL,str,128,"UPDATE bizz SET `Till`='%d',`Products`='%d' WHERE `ID`='1'",BizzInfo[14][bBalance],BizzInfo[14][bProducts]);
              mysql_tquery(SQL,str, "", "");
          }
          else SCM(playerid, -1, "Nu esti la CNN.");
          return true;
      }
      function Advertisment(playerid) {
          if(IsPlayerConnected(playerid) && AdTimer[playerid] != 0) {
              new string[1024];
              format(string, sizeof(string), "Ad by %s (phone: {FFFFFF}%d{00D900}): %s",GetName(playerid),PlayerInfo[playerid][pPhone],AdText[playerid]);
              SendMessage(0x00D900FF, string);
              AdTimer[playerid] = 0;
          }
          return true;
      }
      function TotalAds() {
          new x;
          foreach(Player, i) {
              if(IsPlayerConnected(i) && AdTimer[i] != 0) x++;
          }
          return x;
      }
    • By VenoMarius ERROR404
      Nu inteleg dece in data base la jobs am 8 joburi iar in gm pe server cand dau /jobs sunt 7 ?
      Dovada:

      Poza 2

    • By St3f4n36
      Salut, nu pot sa inteleg dc cand dau /createvehicle si setez factiune, rank etc. Nu imi creaza bine vehiculele, lucrez pe gm HPQ123 si chiar imi da cu virgula. Stiti de la ce ar putea fi?
      Daca doriti va trimit comenzile din .pwn
    • By TheGodfather
      Salut, cand dau /park, parcheaza masina corect dar daca ma uit in /v imi spune ca este "occupied" chiar daca eu nu mai sunt in ea. Ma scoate cand dau /park.
      YCMD:park(playerid, params[], help) {
          if(aspam[playerid] > 0) return SCMEx(playerid, COLOR_LIGHTRED, "[Command Anti-Spam] {FFFFFF}Wait %d seconds.", aspam[playerid]);
          new car = GetPlayerVehicleID(playerid);
          if(!IsPlayerInAnyVehicle(playerid)) 
              return SCM(playerid, COLOR_ERROR, "Error: {FFFFFF}You are not in your vehicle.");
          
          if(Iter_Count(MyVehicle[playerid]) == 0) 
              return SCM(playerid, COLOR_ERROR, "Error: {FFFFFF}You do not have a personal vehicle!");
          
          if(PersonalCar(playerid) == -1) 
              return SCM(playerid, COLOR_ERROR, "Error: {FFFFFF}You are not in one of your vehicles!");
          
          if(GetPlayerState(playerid) != 2) 
              return SCM(playerid, COLOR_GREEN, "* You need to drive the car in order to use this command!");
          new idd = PersonalCar(playerid);
          new Float: vhp;
          GetVehicleHealth(car, vhp);
          if(vhp < 800) return SCM(playerid, COLOR_GREY, "You can not park the car because it has less than 800 'health'!");
          if(PlayerToPoint(150, playerid, 564.1226, -1270.0704, 17.2477)) return SCM(playerid, COLOR_ERROR, "INFO: {FFFFFF}You can not park the car near the spawn.");
          new Float:x, Float:y, Float:z, Float:a;
          saveTuning(playerid, CarInfo[idd][Spawned]);
          GetVehiclePos(car, x, y, z);
          GetVehicleZAngle(car, a);
          CarInfo[idd][cLocationx] = x;
          CarInfo[idd][cLocationy] = y;
          CarInfo[idd][cLocationz] = z;
          CarInfo[idd][cTime] = gettime()+600;
          CarInfo[idd][cAngle] = a;
          CarInfo[idd][cVirtual] = GetPlayerVirtualWorld(playerid);
          DestroyVehicle(car);
          if(strlen(CarInfo[idd][cText]) >= 3) {
              DestroyDynamicObject(nameobject[CarInfo[idd][Spawned]]);
          }
          CarInfo[idd][Spawned] = CreateVehicleEx(CarInfo[idd][cModel],CarInfo[idd][cLocationx],CarInfo[idd][cLocationy],CarInfo[idd][cLocationz],CarInfo[idd][cAngle],CarInfo[idd][cColorOne],CarInfo[idd][cColorTwo], -1, 0);
          SetVehicleVirtualWorld(CarInfo[idd][Spawned], CarInfo[idd][cVirtual]);
          attach_vip_text(idd);
          SetVehicleHealth(CarInfo[idd][Spawned], CarInfo[idd][cVip] ? 2000 : 1000);
          SetTunning(idd);
          SetVehicleNumberPlate(CarInfo[idd][Spawned], CarInfo[idd][cLicense]);
          saveCar(idd);
          new Float: Pos[3];
          GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
          CarInfo[idd][cLastPos][0] = Pos[0];
          CarInfo[idd][cLastPos][1] = Pos[1];
          CarInfo[idd][cLastPos][2] = Pos[2];
          return true;
      }
      function IsVehicleOccupied(vehicleid) return VehicleOccupied[vehicleid] != 0 ? (true) : (false);
      stock ShowPlayerVehicle(playerid, bool: type) {
          if(aspam[playerid] > 0) return SCMEx(playerid, COLOR_LIGHTRED, "[Command Anti-Spam] {FFFFFF}Wait %d seconds.", aspam[playerid]);
          new szTitle[2000], szDialog[2000], x = 0;
          if(Iter_Count(MyVehicle[playerid]) == 0) 
              return SCM(playerid, COLOR_LGREEN, "Error: You do not have a personal vehicle!");
          
          format(szTitle, sizeof(szTitle), "Your Vehicles {E3DE31}%d/%d", Iter_Count(MyVehicle[playerid]), GetSlots(playerid));
          strcat(szDialog, "Vehicul\tStatus\tDespawn Time\tOthers details\n");
          foreach(MyVehicle[playerid], car) {
              format(szDialog, sizeof(szDialog), "%s%s\t%s\t%s\t%s\n", szDialog, aVehicleNames[CarInfo[car][cModel]-400], CarInfo[car][Spawned] != 0 ? IsVehicleOccupied(CarInfo[car][Spawned]) ? ("{FFFF00}[occupied]") : ("{26B309}[spawned]") : ("{FF0000}[despawned]"), CheckDespawnCar(car), TotalUp(car)); 
              PlayerInfo[playerid][pCarKey][x] = car;
              x++;
          }
          ShowPlayerDialog(playerid, type ? DIALOG_STICKET : DIALOG_GARAGE, DIALOG_STYLE_TABLIST_HEADERS, szTitle, szDialog, "Ok", "Exit");
          return true;
      }
    • By Rby Robert
      Salut. am bagat pe server niste filterscripts cu job-uri dar dupa ce le termin imi da banii fictiv gen imi apare in chat ca am primit imi creste suma in dreapta sus dar in /stats tot aceeasi bani ii am gen daca am 100$ tot 100$ am nu imi da bani de la job
      DisablePlayerCheckpoint(playerid);
              SendClientMessage(playerid,-1,"Ati terminat de livrat coletele si ati castigat o suma de bani,felicitari!");
              GivePlayerMoney(playerid, 500000);
              DestroyVehicle(MasinaCJ[playerid]);
      Cam asa arata liniile unde ar trebuie sa dea bani
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • 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.