Szerző Téma: Szögesdrót nem lyukaszt  (Megtekintve 953 alkalommal)

Szögesdrót nem lyukaszt
« Dátum: 2016. május 30. - 13:28:03 »
0 Show voters
Sziasztok.
Nemtudom kitalálni, miért nem lyukasztja ki azokat a járműveket amik áthaladnak a szögesdróton?
 
    if(strcmp(cmd, \"/szögesdrót\", true) == 0 || strcmp(cmd, \"/szg\", true) == 0)
{
if(IsPlayerConnected(playerid))
         {
   if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 18 || PlayerInfo[playerid][pMember] == 18)
   {
      new x_nr[256];
      x_nr = strtok(cmdtext, idx);
      if(!strlen(x_nr))
      {
         SendClientMessage(playerid, COLOR_GRAD2, \"Használat: /szögesdrót [lerak/felvesz]\");
         return 1;
      }
      if(strcmp(x_nr,\"lerak\",true) == 0 || strcmp(x_nr,\"lerak\",true) == 0)
      {
            if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, \"Kocsiból nem rakhatod le.\");
         for(new szogesdrot; szogesdrot < MAX_SZOGESDROT; szogesdrot++)
         {
             if(SzogesdrotInfo[szogesdrot][Van] == 0)
             {
                GetPlayerFacingAngle(playerid, SzogesdrotInfo[szogesdrot][Fordulas]);
                GetPlayerPos(playerid, SzogesdrotInfo[szogesdrot][PosX], SzogesdrotInfo[szogesdrot][PosY], SzogesdrotInfo[szogesdrot][PosZ]);
               SzogesdrotInfo[szogesdrot][Object1] = CreateDynamicObject(2892, SzogesdrotInfo[szogesdrot][PosX], SzogesdrotInfo[szogesdrot][PosY], SzogesdrotInfo[szogesdrot][PosZ]-1, 0.0, 0.0, SzogesdrotInfo[szogesdrot][Fordulas]);
                SzogesdrotInfo[szogesdrot][Van] = 1;
                format(string, sizeof(string), \"Leraktál egy szögesdrótot. ID: %d\", szogesdrot);
                SendClientMessage(playerid, COLOR_GREEN, string);
                GetPlayerName(playerid, sendername, sizeof(sendername));
               format(stringx, sizeof(stringx), \"* %s lerakott egy szögesdrótot.\", sendername);
               ProxDetector(30.0, playerid, stringx, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                break;
             }
         }
      }
      if(strcmp(x_nr,\"felvesz\",true) == 0 || strcmp(x_nr,\"felvesz\",true) == 0)
      {
         for(new szogesdrot; szogesdrot < MAX_SZOGESDROT; szogesdrot++)
         {
             if(SzogesdrotInfo[szogesdrot][Van] == 1)
             {
                new Float:szzx, Float:szzy, Float:szzz;
               GetDynamicObjectPos(SzogesdrotInfo[szogesdrot][Object1], szzx, szzy, szzz);
                 if(IsPlayerInRangeOfPoint(playerid, 3.0, szzx, szzy, szzz))
                 {
                    DestroyDynamicObject(SzogesdrotInfo[szogesdrot][Object1]);
                   format(string, sizeof(string), \"Felszedtél egy szögesdrotot. | ID: %d\", szogesdrot);
                  SzogesdrotInfo[szogesdrot][Van] = 0;
                  SzogesdrotInfo[szogesdrot][PosX] = 0;
                  SzogesdrotInfo[szogesdrot][PosY] = 0;
                  SzogesdrotInfo[szogesdrot][PosZ] = 0;
                   SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
                   GetPlayerName(playerid, sendername, sizeof(sendername));
                  format(stringx, sizeof(stringx), \"* %s felvett egy szogesdrótot.\", sendername);
                  ProxDetector(30.0, playerid, stringx, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                     break;
                 }
             }
         }
      }
   } else SendClientMessage(playerid, COLOR_GRAD2, \"{0048ff}[FCRPG]{ffffff} Nem vagy rendvédelem tagja.\");
}
return 1;
}

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Szögesdrót nem lyukaszt
« Válasz #1 Dátum: 2016. május 30. - 13:39:47 »
0 Show voters
hol a script ami lyukaszt?
itt csak lerakod és felveszed...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Szögesdrót nem lyukaszt
« Válasz #2 Dátum: 2016. május 30. - 13:45:36 »
0 Show voters
Igen, közbe rájöttem , hogy azt is kéne.
OnPlayerUpdate alá tettem be.
 
   new Float:x, Float:y, Float:z;
new vehicleid = GetPlayerVehicleID(playerid);
new panels, ajtok, lampak, tires;
for(new szogesdrot; szogesdrot < MAX_SZOGESDROT; szogesdrot++)
{
    if(SzogesdrotInfo[szogesdrot][Van] == 1)
    {
   GetObjectPos(SzogesdrotInfo[szogesdrot][Object1], x, y, z);
        if(IsPlayerInRangeOfPoint(playerid, 4.0, x, y, z) && IsPlayerInAnyVehicle(playerid))
        {
        GetVehicleDamageStatus(vehicleid, panels, ajtok, lampak, tires);
        UpdateVehicleDamageStatus(vehicleid, panels, ajtok, lampak, 15);
         break;
        }
    }
}
GetObjectPos(foutobject[49], x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 4.0, x, y, z) && IsPlayerInAnyVehicle(playerid))
{
GetVehicleDamageStatus(vehicleid, panels, ajtok, lampak, tires);
UpdateVehicleDamageStatus(vehicleid, panels, ajtok, lampak, 15);
}

Szögesdrót nem lyukaszt
« Válasz #3 Dátum: 2016. május 30. - 14:03:15 »
0 Show voters
new Float:x, Float:y, Float:z;
        new vehicleid = GetPlayerVehicleID(playerid);
        new panels, ajtok, lampak, tires;
        for(new szogesdrot; szogesdrot < MAX_SZOGESDROT; szogesdrot++)
        {
            if(SzogesdrotInfo[szogesdrot][Van] == 1)
            {
                        GetObjectPos(SzogesdrotInfo[szogesdrot][Object1], x, y, z);
                        if(IsPlayerInRangeOfPoint(playerid, 4.0, x, y, z) && IsPlayerInAnyVehicle(playerid))
                        {
                        GetVehicleDamageStatus(vehicleid, panels, ajtok, lampak, tires);
                        UpdateVehicleDamageStatus(vehicleid, panels, ajtok, lampak, encode_tires(1, 1, 1, 1));
                        break;
                        }
            }
        }

 

encode_tires(tire1, tire2, tire3, tire4)
{
return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
}

 
https://wiki.sa-mp.com/wiki/DamageStatus

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal