Szerző Téma: Bit szerelés  (Megtekintve 4389 alkalommal)

Bit szerelés
« Dátum: 2016. Március 14. - 05:11:05 »
+11
Elsősorban leszögezném azt, hogy egy admin vagy moderátor állítsa be a kategóriát mert nem tudom mibe tegyen, én a kódot GM-ben csináltam/használtam! Köszönöm szépen!
 
Szerelő-System
 

Készítette: Property
 

Forrás(ok): SAMP wiki, külföldi fórum, magyar fórum
 

Elkészítési idő: Nem tudom
 


Miért is csináltam meg ezt a scriptet? Mivel láttam sokan keresik és volt is nem egy kérdés iránta.

Nos akkor ebben a kis mondatban elmondanám mit is kell tudni erről a scriptről!

Ezzel a scriptel külön-külön tudod fixelni a járművet, külön az ajtókat, és a lökhárítókat meg persze a lámpákat és a kerekeket!

Pár kép róla:
\"sa-mp-070_www.kepfeltoltes.hu_.png\"
\"sa-mp-071_www.kepfeltoltes.hu_.png\"
\"sa-mp-072_www.kepfeltoltes.hu_.png\"
A kód részeire szedve/ egy kis magyarázat:

Akkor elsőnek kezdeném a definiálásokkal:

 

// Itt található a kódhoz szükséges definiálások
// DialogID
#define szereles 1
#define szereles_info_motor 2
#define szereles_csomi 3
#define szereles_bal 4
#define szereles_jobb 5
#define szereles_elso 6
#define szereles_hatso 7
#define kerek_jobb_el 9
#define kerek_bal_el 10
#define kerek_jobb_hat 11
#define kerek_bal_hat 12
#define lampa_bal 13
#define lampa_jobb 14
#define Msg SendClientMessage
#define fuggveny%0(%1) forward%0(%1); public%0(%1)
const Float:INF_FLOAT=Float:0x7F800000;
#define NINCS -1
#define MIN_VEHI_ID 400

 
Ez a kód a kocsi modeljéne a lekérésére szolgál:
 

new vehName[][] =
{
    \"Landstalker\",\"Bravura\",\"Buffalo\",\"Linerunner\",\"Perennial\",\"Sentinel\",\"Dumper\",\"Firetruck\",\"Trashmaster\",
\"Stretch\",\"Manana\",\"Infernus\",\"Voodoo\",\"Pony\",\"Mule\",\"Cheetah\",\"Ambulance\",\"Leviathan\",\"Moonbeam\",
\"Esperanto\",\"Taxi\",\"Washington\",\"Bobcat\",\"Whoopee\",\"BFInjection\",\"Hunter\",\"Premier\",\"Enforcer\",
\"Securicar\",\"Banshee\",\"Predator\",\"Bus\",\"Rhino\",\"Barracks\",\"Hotknife\",\"Trailer\",\"Previon\",\"Coach\",
\"Cabbie\",\"Stallion\",\"Rumpo\",\"RCBandit\",\"Romero\",\"Packer\",\"Monster0\",\"Admiral\",\"Squalo\",\"Seasparrow\",
\"Pizzaboy\",\"Tram\",\"Trailer\",\"Turismo\",\"Speeder\",\"Reefer\",\"Tropic\",\"Flatbed\",\"Yankee\",\"Caddy\",\"Solair\",
\"Berkley\'sRCVan\",\"Skimmer\",\"PCJ600\",\"Faggio\",\"Freeway\",\"RCBaron\",\"RCRaider\",\"Glendale\",\"Oceanic\",
\"Sanchez\",\"Sparrow\",\"Patriot\",\"Quad\",\"Coastguard\",\"Dinghy\",\"Hermes\",\"Sabre\",\"Rustler\",\"ZR350\",\"Walton\",
\"Regina\",\"Comet\",\"BMX\",\"Burrito\",\"Camper\",\"Marquis\",\"Baggage\",\"Dozer\",\"Maverick\",\"NewsChopper\",\"Rancher\",
\"FBIRancher\",\"Virgo\",\"Greenwood\",\"Jetmax\",\"Hotring0\",\"Sandking\",\"BlistaCompact\",\"PoliceMaverick\",
\"Boxvillde\",\"Benson\",\"Mesa\",\"RCGoblin\",\"HotringA\",\"HotringB\",\"Bloodring\",\"Rancher\",
\"SuperGT\",\"Elegant\",\"Journey\",\"Bike\",\"Mountain\",\"Beagle\",\"Cropduster\",\"Stunt\",\"Tanker\",\"Roadtrain\",
\"Nebula\",\"Majestic\",\"Buccaneer\",\"Shamal\",\"Hydra\",\"FCR900\",\"NRG500\",\"HPV1000\",\"Cement\",\"TowTruck\",
\"Fortune\",\"Cadrona\",\"FBITruck\",\"Willard\",\"Forklift\",\"Tractor\",\"Combine\",\"Feltzer\",\"Remington\",\"Slamvan\",
\"Blade\",\"Freight\",\"Streak\",\"Dodgem\",\"Vincent\",\"Bullet\",\"Clover\",\"Sadler\",\"Firetruck\",\"Hustler\",\"Intruder\",
\"Primo\",\"Cargobob\",\"Tampa\",\"Sunrise\",\"Merit\",\"Utility\",\"Nevada\",\"Yosemite\",\"Windsor\",\"MonsterA\",\"MonsterB\",
\"Uranus\",\"Jester\",\"Sultan\",\"Stratium\",\"Elegy\",\"Raindance\",\"RCTiger\",\"Flash\",\"Tahoma\",\"Savanna\",\"Bandito\",
\"FreightFlat\",\"StreakCarriage\",\"Kart\",\"Mower\",\"Dune\",\"Sweeper\",\"Broadway\",\"Tornado\",\"AT400\",\"DFT30\",
\"Huntley\",\"Stafford\",\"BF400\",\"NewsVan\",\"Tug\",\"PetrolTrailer\",\"Emperor\",\"Wayfarer\",\"Euros\",\"Hotdog\",\"Club\",
\"FreightBox\",\"Trailer\",\"Andromada\",\"Dodo\",\"RCCam\",\"Launch\",\"LSPD\",\"SFPD\",\"SFPD\",
\"Ranger\",\"Picador\",\"SWAT\",\"Alpha\",\"Phoenix\",\"Glendale\",\"Sadler\",\"Luggage\",\"Luggage\",\"Stairs\",
\"Boxville\",\"Tiller\",\"UtilityTrailer\",\"Stratum\"
};
stock GetVehicleModelName(id, bool:carid = false)
{
new str[64];
if(!carid)
{
if(id >= 400)
   id -= 400;
format(str, 64,\"%s\", vehName[id]);
}
else
format(str, 64, \"%s\", vehName[GetVehicleModel(id) - 400]);
return str;
}

 
Parancsokhoz szükséges:
 

stock strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= \' \'))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > \' \') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

 
Ez a kód pedig majd, hogy van-e melletted jármű(persze nem minden ilyen kódot magamtól írtam, rp modból szedtem ki):
 

stock GetClosestVehicle(playerid, benneulcheck = true)
{
#define ALAPKOCSI 1
new kocsi = NINCS, kocsibaul;
if(IsPlayerInAnyVehicle(playerid)) kocsibaul = GetPlayerVehicleID(playerid);
if(benneulcheck && kocsibaul > 0) kocsi = kocsibaul;
if(kocsi != NINCS)
return kocsi;
if(IsPlayerConnected(playerid) && IsVehicleConnected(ALAPKOCSI))
{
new closestvehicle=ALAPKOCSI;
new Float:closestdist = 9999.0, Float:dist;
for(new vehicleid=ALAPKOCSI; vehicleid<MAX_VEHICLES; vehicleid++)
{
   if(vehicleid == kocsibaul) continue;
   dist = GetDistanceToVehicle(playerid,vehicleid);
   if(dist < closestdist)
   {
      if(GetVehicleVirtualWorld(vehicleid) == GetPlayerVirtualWorld(playerid))
      {
         closestdist = dist;
         closestvehicle = vehicleid;
      }
   }
}
return closestvehicle;
}
return NINCS;
}
fuggveny Float:GetDistanceBetweenPoints(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
{
return floatadd(floatadd(floatsqroot(floatpower(floatsub(x1,x2),2)),floatsqroot(floatpower(floatsub(y1,y2),2))),floatsqroot(floatpower(floatsub(z1,z2),2)));
}
fuggveny Float:GetDistanceToPoint(playerid,Float:x1,Float:y1,Float:z1)
{
if (IsPlayerConnected(playerid))
{
new Float:x2,Float:y2,Float:z2;
GetPlayerPos(playerid,x2,y2,z2);
return GetDistanceBetweenPoints(x1,y1,z1,x2,y2,z2);
}
return INF_FLOAT;
}
fuggveny IsVehicleConnected(vehicleid)
{
new Float:x1,Float:y1,Float:z1;
GetVehiclePos(vehicleid,x1,y1,z1);
if(x1==0.0 && y1==0.0 && z1==0.0)
{
return 0;
}
return 1;
}
fuggveny Float:GetDistanceToVehicle(playerid,vehicleid)
{
if (IsPlayerConnected(playerid) && IsVehicleConnected(vehicleid))
{
new Float:x1,Float:y1,Float:z1;
GetVehiclePos(vehicleid,x1,y1,z1);
return GetDistanceToPoint(playerid,x1,y1,z1);
}
return INF_FLOAT;
}

 
Ez fogja előhozni a fő dialogot:
 

fuggveny ShowSzereloDialog(playerid)
{
    new gItemList[512];
format(gItemList,sizeof(gItemList),
\"{FFFFFF}Panel\\nMotorháztető\\n{FFFFFF}Csomagtartó\\n{FF6347}----------------------------------------\\
\\nBal első ajtó{FFFFFF}\\nJobb első ajtón\\n{FF6347}----------------------------------------\\
\\nElsőlökhárító\\nHátsólökhárító\\n{FF6347}----------------------------------------{FFFFFF}\\
\\nJobb első kerék\\nBal első kerék\\n{FF6347}----------------------------------------\\
{FFFFFF}\\nJobb hátsó kerék\\nBal hátsó kerék\\n{FF6347}----------------------------------------\\
{FFFFFF}\\nJobb első lámpa\\nBal első lámpa\");
ShowPlayerDialog(playerid,szereles,DIALOG_STYLE_TABLIST_HEADERS,\"{FFFFFF}Szerelő-System v1.0\",gItemList,\"Kiválaszt\",\"Bezár\");
return 1;
}

 
Itt pedig egy hosszú kód a lekérdezésről, hogy sérült-e az alkatrész vagy sem:
 

fuggveny SzereloInfoBox(playerid,infoid)
{
new kocsi = GetClosestVehicle(playerid);
new panels, doors, lights, tires;
new karosodas[64], karosodas2[64], karosodas3[64], karosodas4[64], karosodas5[64], karosodas6[64];
GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
// Lámpák
    new light3     = ( ( 1 << 1 ) & lights ) >> 1;
    new light4     = ( ( 1 << 3 ) & lights ) >> 3;
// Kerekek
new tfl             = 1 & tires;
new tfr             = ( ( 1 << 1 ) & tires ) >> 1;
new trl             = ( ( 1 << 2 ) & tires ) >> 2;
new trr             = ( ( 1 << 3 ) & tires ) >> 3;
// Panalek(Lököhárítók, szélvédő stb)
new flp             =   0xf & panels;
new frp             =   ( ( 0xf << 4 ) & panels ) >> 4;
new rlp             =   ( ( 0xf << 8 ) & panels ) >> 8;
new rrp             =   ( ( 0xf << 12 ) & panels ) >> 12;
new windshield      =   ( ( 0xf << 16 ) & panels ) >> 16;
new fb              =   ( ( 0xf << 20 ) & panels ) >> 20; // első
new rb               =   ( ( 0xf << 24 ) & panels ) >> 24; // hátsó
// Ajtók
    new bonnet                =   0xf & doors;
    new boot               =   ( ( 0xf << 8 ) & doors ) >> 8;
    new driver_door     =   ( ( 0xf << 16 ) & doors ) >> 16;
    new passenger_door    =   ( ( 0xf << 24 ) & doors ) >> 24;
switch(infoid)
{
    case 0:
    {
            if(doors == (4 | (boot << 8) | (driver_door << 16) | (passenger_door << 24)))
             format(karosodas,64,\"{FF6347}Cserélendő\");
   else
             format(karosodas,64,\"{1E90FF}Javítandó\");
             
    if(doors == (0 | (boot << 8) | (driver_door << 16) | (passenger_door << 24)))
          format(karosodas,64,\"{61FF30}Sértetlen\");
          
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nMotorháztető\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), karosodas);
        ShowPlayerDialog(playerid, szereles_info_motor, DIALOG_STYLE_TABLIST_HEADERS,\"{FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 1:
    {
   if(doors == (bonnet | (4 << 8) | (driver_door << 16) | (passenger_door << 24)))
       format(karosodas2,64,\"{FF6347}Cserélendő\");
   else
       format(karosodas2,64,\"{1E90FF}Javítandó\");
   if(doors == (bonnet | (0 << 8) | (driver_door << 16) | (passenger_door << 24)))
       format(karosodas2,64,\"{61FF30}Sértetlen\");
      
              new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nCsomagtartó\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), karosodas2);
        ShowPlayerDialog(playerid, szereles_csomi, DIALOG_STYLE_TABLIST_HEADERS,\"{FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 3:
    {
   if(doors == (bonnet | (boot << 8) | (4 << 16) | (passenger_door << 24)))
       format(karosodas3,64,\"{FF6347}Cserélendő\");
   else
       format(karosodas3,64,\"{1E90FF}Javítandó\");
   if(doors == (bonnet | (boot << 8) | (0 << 16) | (passenger_door << 24)))
       format(karosodas3,64,\"{61FF30}Sértetlen\");
      
              new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nBal első ajtó\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), karosodas3);
        ShowPlayerDialog(playerid, szereles_bal, DIALOG_STYLE_TABLIST_HEADERS,\"{FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 4:
    {
   if(doors == (bonnet | (boot << 8) | (driver_door << 16) | (4 << 24)))
       format(karosodas4,64,\"{FF6347}Cserélendő\");
   else
               format(karosodas4,64,\"{1E90FF}Javítandó\");
   if(doors == (bonnet | (boot << 8) | (driver_door << 16) | (0 << 24)))
       format(karosodas4,64,\"{61FF30}Sértetlen\");
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nJobb első ajtó\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), karosodas4);
        ShowPlayerDialog(playerid, szereles_jobb, DIALOG_STYLE_TABLIST_HEADERS,\"{FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 6:
    {
   if(panels == (flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (3 << 20) | (rb << 24)))
        format(karosodas5, 64, \"{FF6347}Cserélendő\");
   else
       format(karosodas5, 64, \"{1E90FF}Javítandó\");
   if(panels == (flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (0 << 20) | (rb << 24)))
       format(karosodas5, 64, \"{61FF30}Sértetlen\");
      
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nElsőlökhárító\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), karosodas5);
        ShowPlayerDialog(playerid, szereles_elso, DIALOG_STYLE_TABLIST_HEADERS,\"{0B47F0}SoulRPG {FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 7:
    {
    if(panels == (flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (fb << 20) | (4 << 24)))
        format(karosodas6, 64, \"{FF6347}Cserélendő\");
            else
        format(karosodas6, 64, \"{1E90FF}Javítandó\");
   if(panels == (flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (fb << 20) | (0 << 24)))
       format(karosodas6, 64, \"{61FF30}Sértetlen\");
      
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nHátsólökhárító\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), karosodas6);
        ShowPlayerDialog(playerid, szereles_hatso, DIALOG_STYLE_TABLIST_HEADERS,\"{0B47F0}SoulRPG {FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 9:
    {
        new inform[12];
        if(tires == (tfl | (tfr << 1) | (trl << 2) | (0 << 3)))
            format(inform, 128, \"{61FF30}Sértetlen\");
            if(tires == (tfl | (tfr << 1) | (trl << 2) | (1 << 3)))
                format(inform, 128, \"{FF6347}Lyukas\");
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nJobbe első Kerék\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), inform);
        ShowPlayerDialog(playerid, kerek_jobb_el, DIALOG_STYLE_TABLIST_HEADERS,\"{0B47F0}SoulRPG {FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 10:
    {
        new inform[12];
        if(tires == (tfl| (0 << 0) | (trl << 2) | (trr << 3)))
            format(inform, 128, \"{61FF30}Sértetlen\");
            if(tires == (tfl | (1 << 1) | (trl << 2) | (trr << 3)))
                format(inform, 128, \"{FF6347}Lyukas\");
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nBal első Kerék\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), inform);
        ShowPlayerDialog(playerid, kerek_bal_el, DIALOG_STYLE_TABLIST_HEADERS,\"{0B47F0}SoulRPG {FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 12:
    {
        new inform[12];
        if(tires == (0| (tfr << 1) | (trl << 2) | (trr << 3)))
            format(inform, 128, \"{61FF30}Sértetlen\");
            if(tires == (1 | (tfr << 1) | (trl << 2) | (trr << 3)))
                format(inform, 128, \"{FF6347}Lyukas\");
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nJobb hátsó Kerék\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), inform);
        ShowPlayerDialog(playerid, kerek_jobb_hat, DIALOG_STYLE_TABLIST_HEADERS,\"{0B47F0}SoulRPG {FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 13:
    {
        new inform[12];
        if(tires == (tfl| (tfr << 1) | (0 << 2) | (trr << 3)))
            format(inform, 128, \"{61FF30}Sértetlen\");
            if(tires == (tfl | (tfr << 1) | (1 << 2) | (trr << 3)))
                format(inform, 128, \"{FF6347}Lyukas\");
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nbal hátsó Kerék\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), inform);
        ShowPlayerDialog(playerid, kerek_bal_hat, DIALOG_STYLE_TABLIST_HEADERS,\"{0B47F0}SoulRPG {FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
    }
    case 15:
{
        new inform[128];
        if(lights == ((light3 << 1) | (0 << 3)))
            format(inform, 128, \"{61FF30}Sértetlen\");
            if(lights == ((light3 << 1) | (1 << 3)))
                format(inform, 128, \"{FF6347}Törött\");
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nJobb első lámpa\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), inform);
        ShowPlayerDialog(playerid, lampa_jobb, DIALOG_STYLE_TABLIST_HEADERS,\"{0B47F0}SoulRPG {FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
}
case 16:
{
        new inform[128];
        if(lights == ((0 << 1) | (light4 << 3)))
            format(inform, 128, \"{61FF30}Sértetlen\");
            if(lights == ((1 << 1) | (light4 << 3)))
                format(inform, 128, \"{FF6347}Törött\");
        new info[128];
        format(info,128,\"{FFFFFF}Panel \\t\\t\\t\\t\\t\\t\\t{FFFFFF}Info\\nKocsi\\t{0B47F0}%s\\nBal első lámpa\\t%s\\nSzerelés\", GetVehicleModelName(kocsi, true), inform);
        ShowPlayerDialog(playerid, lampa_bal, DIALOG_STYLE_TABLIST_HEADERS,\"{0B47F0}SoulRPG {FFFFFF}Szerelő-System v1.0\",info,\"Szerel\",\"Vissza\");
}
}
return 1;
}

 
A szövegből mindenki kitalálja melyik mit jelent és persze elő is hoz egy infó dialogot amiben lehet javítani az alkatrészt!!

Meg persze azért nem sorba vannak a számok mivel oda lettek közé téve kötőjelek!!!

A parancs:
 

public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx = 0;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, \"/dialog\", true) == 0)
{
new kocsi = GetClosestVehicle(playerid);
if(GetDistanceToVehicle(playerid, kocsi) > 5.0)
   return Msg(playerid, -1,\"Nincs melletted jármű!\");
ShowSzereloDialog(playerid);
    return 1;
}
         return 0;
}

 
Itt a végén pedig a leghosszabb kód ami a lényeg:
 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == szereles)
{
    if(response)
{
    switch(listitem)
    {
       case 0: SzereloInfoBox(playerid, 0);
      case 1: SzereloInfoBox(playerid, 1);
      case 2: ShowSzereloDialog(playerid);// --
      case 3: SzereloInfoBox(playerid, 3);
      case 4: SzereloInfoBox(playerid, 4);
      case 5: ShowSzereloDialog(playerid);// --
      case 6: SzereloInfoBox(playerid, 6);
      case 7: SzereloInfoBox(playerid, 7);
      case 8: ShowSzereloDialog(playerid); // --
      case 9: SzereloInfoBox(playerid, 9);
      case 10: SzereloInfoBox(playerid, 10);
      case 11: ShowSzereloDialog(playerid); // --
      case 12: SzereloInfoBox(playerid, 12);
      case 13: SzereloInfoBox(playerid, 13);
      case 14: ShowSzereloDialog(playerid);// --
      case 15: SzereloInfoBox(playerid, 15);
      case 16: SzereloInfoBox(playerid, 16);
    }
}
}
if(dialogid == szereles_info_motor)
{
    if(response)
    {
   if(listitem == 0)
      SzereloInfoBox(playerid, 0);
    if(listitem == 1)
      SzereloInfoBox(playerid, 0);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
      new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
          // Ajtók
       //new bonnet         =   0xf &doors;
       new boot         =   ( ( 0xf << 8 ) & doors ) >> 8;
      new driver_door      =   ( ( 0xf << 16 ) & doors ) >> 16;
       new passenger_door   =   ( ( 0xf << 24 ) & doors ) >> 24;
                RepairVehicle(kocsi);
      doors = (0 | (boot << 8) | (driver_door << 16) | (passenger_door << 24));
      //doors = (bonnet);
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
             doors = (0 | (boot << 8) | (driver_door << 16) | (passenger_door << 24));
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      Msg(playerid,-1,\"Sikeresen megjavítottad a motorháztetőt!\");
      ShowSzereloDialog(playerid);
   }
    }
    else ShowSzereloDialog(playerid);
}
if(dialogid == szereles_csomi)
{
    if(response)
    {
   if(listitem == 0)
      SzereloInfoBox(playerid, 1);
    if(listitem == 1)
      SzereloInfoBox(playerid, 1);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
      new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
          // Ajtók
       new bonnet         =   0xf &doors;
       new boot         =   ( ( 0xf << 8 ) & doors ) >> 8;
      new driver_door      =   ( ( 0xf << 16 ) & doors ) >> 16;
       new passenger_door   =   ( ( 0xf << 24 ) & doors ) >> 24;
      RepairVehicle(kocsi);
      doors = (bonnet | (2 << 8) | (driver_door << 16) | (passenger_door << 24));
      doors = (boot >> 8 & 7);
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      doors = (bonnet | (0 << 8) | (driver_door << 16) | (passenger_door << 24));
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      Msg(playerid,-1,\"Sikeresen megjavítottad a csomagtartót!\");
      ShowSzereloDialog(playerid);
   }
}
else ShowSzereloDialog(playerid);
}
if(dialogid == szereles_bal)
{
    if(response)
    {
   if(listitem == 0)
      SzereloInfoBox(playerid, 2);
    if(listitem == 1)
      SzereloInfoBox(playerid, 2);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
          // Ajtók
       new bonnet         =   0xf &doors;
       new boot         =   ( ( 0xf << 8 ) & doors ) >> 8;
      new driver_door      =   ( ( 0xf << 16 ) & doors ) >> 16;
       new passenger_door   =   ( ( 0xf << 24 ) & doors ) >> 24;
       RepairVehicle(kocsi);
      doors = (bonnet | (boot << 8) | (2 << 16) | (passenger_door << 24));
      doors = (driver_door >> 16 & 7);
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      doors = (bonnet | (boot << 8) | (0 << 16) | (passenger_door << 24));
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      Msg(playerid,-1,\"Sikeresen megjavítottad a vezető felöli ajtót!\");
      ShowSzereloDialog(playerid);
   }
}
else ShowSzereloDialog(playerid);
}
if(dialogid == szereles_jobb)
{
    if(response)
    {
   if(listitem == 0)
      SzereloInfoBox(playerid, 3);
    if(listitem == 1)
      SzereloInfoBox(playerid, 3);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
          // Ajtók
       new bonnet         =   0xf &doors;
       new boot         =   ( ( 0xf << 8 ) & doors ) >> 8;
      new driver_door      =   ( ( 0xf << 16 ) & doors ) >> 16;
       new passenger_door   =   ( ( 0xf << 24 ) & doors ) >> 24;
                RepairVehicle(kocsi);
      doors = (bonnet | (boot << 8) | (driver_door << 16) | (2 << 24));
      doors = (passenger_door >> 24 & 7);
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      doors = (bonnet | (boot << 8) | (driver_door << 16) | (0 << 24));
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      Msg(playerid,-1,\"Sikeresen megjavítottad az anyós felöli ajtót!\");
      ShowSzereloDialog(playerid);
   }
}
else ShowSzereloDialog(playerid);
}
if(dialogid == szereles_elso)
{
    if(response)
    {
   if(listitem == 0)
      SzereloInfoBox(playerid, 4);
    if(listitem == 1)
      SzereloInfoBox(playerid, 4);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      // Panelek
      new flp             =   0xf & panels;
      new frp             =   ( ( 0xf << 4 ) & panels ) >> 4;
      new rlp             =   ( ( 0xf << 8 ) & panels ) >> 8;
      new rrp             =   ( ( 0xf << 12 ) & panels ) >> 12;
      new windshield      =   ( ( 0xf << 16 ) & panels ) >> 16;
      new fb              =   ( ( 0xf << 20 ) & panels ) >> 20; // Első
      new rb               =   ( ( 0xf << 24 ) & panels ) >> 24; // Hátsó
                RepairVehicle(kocsi);
      panels = (flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (1 << 20) | (rb << 24));
      panels = (fb >> 20 & 15);
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      panels = (flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (0 << 20) | (rb << 24));
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      Msg(playerid, -1, \"Sikeresen megjavítottad az elsőlökhárítót!\");
      ShowSzereloDialog(playerid);
   }
}
else ShowSzereloDialog(playerid);
}
if(dialogid == szereles_hatso)
{
    if(response)
    {
   if(listitem == 0)
      SzereloInfoBox(playerid, 5);
    if(listitem == 1)
      SzereloInfoBox(playerid, 5);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      // Panelek
      new flp             =   0xf & panels;
      new frp             =   ( ( 0xf << 4 ) & panels ) >> 4;
      new rlp             =   ( ( 0xf << 8 ) & panels ) >> 8;
      new rrp             =   ( ( 0xf << 12 ) & panels ) >> 12;
      new windshield      =   ( ( 0xf << 16 ) & panels ) >> 16;
      new fb              =   ( ( 0xf << 20 ) & panels ) >> 20; // Első
      new rb               =   ( ( 0xf << 24 ) & panels ) >> 24; // Hátsó
                RepairVehicle(kocsi);
      panels = (flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (fb << 20) | (1 << 24));
      panels = (rb >> 24 & 15);
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      panels = (flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (fb << 20) | (0 << 24));
      UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      Msg(playerid, -1, \"Sikeresen megjavítottad a hátsólökhárítót!\");
      ShowSzereloDialog(playerid);
   }
}else ShowSzereloDialog(playerid);
}
if(dialogid == kerek_jobb_el)
{
    if(response)
    {
        if(listitem == 0)
            SzereloInfoBox(playerid, 6);
   if(listitem == 1)
       SzereloInfoBox(playerid, 6);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      new tfl             = 1 & tires;
      new tfr             = ( ( 1 << 1 ) & tires ) >> 1;
      new trl             = ( ( 1 << 2 ) & tires ) >> 2;
   //   new trr             = ( ( 1 << 3 ) & tires ) >> 3;
      tires = (tfl | (tfr << 1) | (trl << 2) | (0 << 3));
                  UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
                 Msg(playerid, -1, \"Sikeresen megjavítottad a jobb első kereket!\");
      ShowSzereloDialog(playerid);
   }
    }else ShowSzereloDialog(playerid);
}
if(dialogid == kerek_bal_el)
{
    if(response)
    {
        if(listitem == 0)
            SzereloInfoBox(playerid, 7);
   if(listitem == 1)
       SzereloInfoBox(playerid, 7);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      new tfl             = 1 & tires;
      //new tfr             = ( ( 1 << 1 ) & tires ) >> 1;
      new trl             = ( ( 1 << 2 ) & tires ) >> 2;
      new trr             = ( ( 1 << 3 ) & tires ) >> 3;
      tires = (tfl | (0 << 1) | (trl << 2) | (trr << 3));
                 UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
                 Msg(playerid, -1, \"Sikeresen megjavítottad a bal első kereket!\");
      ShowSzereloDialog(playerid);
   }
    }else ShowSzereloDialog(playerid);
}
if(dialogid == kerek_jobb_hat)
{
    if(response)
    {
        if(listitem == 0)
            SzereloInfoBox(playerid, 8);
   if(listitem == 1)
       SzereloInfoBox(playerid, 8);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
   //   new tfl             = 1 & tires;
      new tfr             = ( ( 1 << 1 ) & tires ) >> 1;
      new trl             = ( ( 1 << 2 ) & tires ) >> 2;
      new trr             = ( ( 1 << 3 ) & tires ) >> 3;
      tires = (0 | (tfr << 1) | (trl << 2) | (trr << 3));
                UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
                 Msg(playerid, -1, \"Sikeresen megjavítottad a jobb hátsó kereket!\");
      ShowSzereloDialog(playerid);
   }
    }else ShowSzereloDialog(playerid);
}
if(dialogid == kerek_bal_hat)
{
    if(response)
    {
        if(listitem == 0)
            SzereloInfoBox(playerid, 9);
   if(listitem == 1)
       SzereloInfoBox(playerid, 9);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      new tfl             = 1 & tires;
      new tfr             = ( ( 1 << 1 ) & tires ) >> 1;
      //new trl             = ( ( 1 << 2 ) & tires ) >> 2;
      new trr             = ( ( 1 << 3 ) & tires ) >> 3;
      tires = (tfl | (tfr << 1) | (0 << 2) | (trr << 3));
                UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
                 Msg(playerid, -1, \"Sikeresen megjavítottad a bal hátsó kereket!\");
      ShowSzereloDialog(playerid);
   }
    }else ShowSzereloDialog(playerid);
}
if(dialogid == lampa_jobb)
{
    if(response)
    {
        if(listitem == 0)
            SzereloInfoBox(playerid, 10);
   if(listitem == 1)
       SzereloInfoBox(playerid, 10);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs melletted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
       new light3     = ( ( 1 << 1 ) & lights ) >> 1;
         //new light4     = ( ( 1 << 3 ) & lights ) >> 3;
      
       lights = ((light3 << 1) | (0 << 3));
       UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
      
                 Msg(playerid, -1, \"Sikeresen megjavítottad a jobb első lámpát!\");
       ShowSzereloDialog(playerid);
   }
    }else ShowSzereloDialog(playerid);
}
if(dialogid == lampa_bal)
{
    if(response)
    {
        if(listitem == 0)
            SzereloInfoBox(playerid, 11);
   if(listitem == 1)
       SzereloInfoBox(playerid, 11);
   if(listitem == 2)
   {
      new kocsi = GetClosestVehicle(playerid);
      if(GetDistanceToVehicle(playerid, kocsi) > 3.0) return Msg(playerid, -1, \"Nincs mellet5ted jármű!\");
       new panels, doors, lights, tires;
       GetVehicleDamageStatus(kocsi, panels, doors, lights, tires);
       //new light3     = ( ( 1 << 1 ) & lights ) >> 1;
       new light4     = ( ( 1 << 3 ) & lights ) >> 3;
       lights = ((0 << 2) | (light4 << 3));
       UpdateVehicleDamageStatus(kocsi, panels, doors, lights, tires);
                 Msg(playerid, -1, \"Sikeresen megjavítottad a bal első lámpát!\");
       ShowSzereloDialog(playerid);
   }
    }else ShowSzereloDialog(playerid);
}
return 1;
}

 
Még annyit a script leírásáról hogy úgy oldottam meg, hogy rákattolsz pl a motorháztetőre akkor egy másik dialogot kiad az infórol ami a kocsi modeljét és a károsodását írja ki a végén pedig lehet szereltetni vele!
 
A kódot felrakom Pastebinre is!!
 
Esetleg ha kevésnek tartod a leírást akkor kommentben írd le mit hiányolsz és bővítem!!
 
A Kódot nem fejlesztem!
 
Csak javítom!! Persze a leírást még formálom!
 

Ha felhasználod a Scriptet, akkor legyél szíves tüntesd fel a nevemet!!
 

« Utoljára szerkesztve: 2016. Március 16. - 22:43:29 írta ǝuıןʎʞs »

Bit szerelés
« Válasz #1 Dátum: 2016. Március 14. - 08:59:32 »
0
Ez szép munka!Mást nem nagyon tudok mondani, hisz annyira gyönyörű!

Bit szerelés
« Válasz #2 Dátum: 2016. Március 14. - 09:06:45 »
0
Köszönöm szépen!! Próbált a legegyszerűbben kivitelezni a kódot :) Esetleg ha valaki nem ért valamit írhat PM-et!!

Bit szerelés
« Válasz #3 Dátum: 2016. Március 14. - 16:39:26 »
0
Szép munka...
Én szenvedtem vele 2 hónapot és erre te megcsinálod? :D
Ahh feleslegesnek érzem a munkámat... xĐ

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Bit szerelés
« Válasz #4 Dátum: 2016. Március 14. - 16:50:46 »
0
Szép munka, bár szerintem az átláthatóság, egyszerűség figyelembevétele miatt csinálhattál volna inkább új függvényeket a bitek számítására. :)

Bit szerelés
« Válasz #5 Dátum: 2016. Március 14. - 16:52:47 »
0
Nekem is eltartott egy kis ideig rájonni, hogy hogyan is használjam, fárdtan éjszaka dobtam össze :)
Sokat kellett variálnom, hogy külön tegye fel a lököst meg az ajtót!!
De köszönöm szépen!!

Bit szerelés
« Válasz #6 Dátum: 2016. Március 14. - 17:09:50 »
0
Aztaaa. Nagyon szép lett! Ment a \'+\'  ^-^ :w00t:

Bit szerelés
« Válasz #7 Dátum: 2016. Március 14. - 17:28:05 »
+1
Köszönöm mindenkinek!! Most egy összetetteb bankrablás-systemen gondolkodom :) amit majd szintén szeretnék publikálni!! :)

Bit szerelés
« Válasz #8 Dátum: 2016. Március 14. - 17:41:31 »
0
Várjuk :D  :laugh: :thumbsup:

ᗩωєѕσмє

  • Vendég
Bit szerelés
« Válasz #9 Dátum: 2016. Március 14. - 18:18:56 »
0
forward Float:GetDistanceToVehicle(playerid,vehicleid);

 
ezt elfelejtetted a kódod elejéről. Másrészt ha ez nincs ott, akkor warningolni is fog.
*észrevétel by Zyzu.

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Bit szerelés
« Válasz #10 Dátum: 2016. Március 14. - 18:25:49 »
0
jó buta a ZyZu akkor
nem kell.

Bit szerelés
« Válasz #11 Dátum: 2016. Március 15. - 06:41:52 »
0

#define fuggveny%0(%1) forward%0(%1); public%0(%1)

 
Így oldottam meg és akkor nem kell írni forwardot :) én lefuttattam és nincs semmi hiba :)

Bit szerelés
« Válasz #12 Dátum: 2016. Március 15. - 09:14:39 »
0
Újonctól ilyet ritkán látni, bravó! Szép munka!
www.twitch.tv/almightymartin

Az év STAFF tagja - 2015
Az év RP szervere - 2015 - [rc-rp.hu]

Red County Role Play [rc-rp.hu] - Tulajdonos
Project San Andreas [psa.hu] - Főadminisztrátor
See MTA LV [see-game.com] - Admin 4

Bit szerelés
« Válasz #13 Dátum: 2016. Március 15. - 11:21:40 »
0
Köszönöm szépen!!  :thumbsup:

Bit szerelés
« Válasz #14 Dátum: 2016. Március 15. - 15:56:01 »
0
Szép munka :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal