Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5208 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Įžanga

Sveiki, kaip pastebėjau daugelis pradedančiųjų nesupranta kaip reikia lygiuoti kodą, todėl šioje pamokoje pabandysiu tai parodyti ir paaiškinti ir tikiuosi Jūsų kodai taps lengviau skaitomi. ;)

Teorija

Nustatytų taisyklių, kaip lygiuoti kodą, nėra, tačiau į tai turime kreiptį dėmesį, nes kompiliatorius netvarkingą kodą skaito sunkiau ir jei jis yra netvarkingas - įspėja.

Kodas:

warning 217: loose indentation

Todėl jei norite, kad serveris nors ir labai nežymiai, bet veiktų sklandžiau, patariu kodą išlaikyti tvarkingą. Pirmiausia galite įsivaizduoti, kad kodas rašomas tarsi laiptais:

Kodas:

laiptelis

{

laiptelis

{

laiptelis

{

funkcija( playerid );

kintamasis = true;

}

}

}

Kaip matote kiekvieno laiptelio pradžioje padedame { skliaustą.

Tuomet spaudžiame ENTER klavišą, kuris žymeklį perkelia į kitą eilutę.

Po to spaudžiame TAB klavišą, kuris perkelia žymeklį per 4 vietas į priekį ir tada rašome kitą laiptelį (t.y. kodą).

Jei panaudojome { skliaustą, visada baigę rašyti kodą, privalome jį uždaryti su } skliaustu. Lygiuojant pačius laužtinius { ir } skliaustus, tereikia įsiminti, kad jie turi išlikti toje pačioje vertikalioje eilėje.

Pavyzdys

Geriausias netvarkingo kodo pavyzdys - GRP gamemod'ai. Žemiau iš GRP gamemod'o paimsiu nesulygiuotą kodo gabalą ir parodysiu, kaip turėtų atrodyti tvarkingas kodas.

Netvarkingas:

Kodas:

if(dialogid == 6070)

{

if(response)

{

if(listitem == 0)

{

if(!IsPlayerInAnyVehicle(playerid)){

SendClientMessage(playerid,0xB4000BAA,"Jūs esate ne mašinoje!");

return 1;

}

if(GetPlayerMoneyA(playerid)<30)

{

SendClientMessage(playerid,0xB4000BAA,"Norint suremontuoti tr.priemone,reikia turėti 30Lt.!");

return 1;

}

GivePlayerMoneyA(playerid,-30);

SendClientMessage(playerid,0x00A10BAA,"Tr.priemonė suremontuota!");

if(IsPlayerInAnyVehicle(playerid)) SetVehicleHealth(GetPlayerVehicleID(playerid),1000);//vidus

if(IsPlayerInAnyVehicle(playerid)) RepairVehicle(GetPlayerVehicleID(playerid));//isvaisda

return 1;

}

return 1;

}

return 1;

}

Tvarkingas:

Kodas:

if ( dialogid == 6070 )

{

if ( response )

{

if ( listitem == 0 )

{

if ( !IsPlayerInAnyVehicle( playerid ) )

SendClientMessage( playerid, 0xB4000BAA, "Jūs esate ne mašinoje!" );

else if ( GetPlayerMoneyA( playerid ) < 30 )

SendClientMessage( playerid, 0xB4000BAA, "Norint suremontuoti tr.priemone,reikia turėti 30Lt.!" );

else

{

GivePlayerMoneyA ( playerid, -30 );

SendClientMessage( playerid, 0x00A10BAA, "Tr.priemonė suremontuota!" );

if ( IsPlayerInAnyVehicle( playerid ) )

SetVehicleHealth( GetPlayerVehicleID( playerid ), 1000 ); // Vidus

if ( IsPlayerInAnyVehicle( playerid ) )

RepairVehicle( GetPlayerVehicleID( playerid ) ); // Išvaizda

return true;

}

}

}

return true;

}

Pastaba: Kodo logiškumas netaisytas.

Papildomai

Taipogi daugumai iškyla problemų su { ir } skliaustais, tačiau yra situacijų kuomet { ir } skliaustų galite nedėti.

1. Jei po if sąlygos naudojate tik vieną eilutę:

Kodas:

if ( sąlyga )

{

funkcija( playerid );

}

else

{

kintamasis = true;

}

Galite rašyti taip:

Kodas:

if ( sąlyga )

funkcija( playerid );

else

kintamasis = true;

2. Jei po if sąlygos naudojate tik vieną eilutę, o po else daugiau:

Kodas:

if ( sąlyga )

{

funkcija( playerid );

}

else

{

kintamasis = true;

kintamasis2 = false;

}

Galite rašyti taip:

Kodas:

if ( sąlyga )

funkcija( playerid );

else

{

kintamasis = true;

kintamasis2 = false;

}

Pabaiga

Tikiuosi naujokams ši pamoka kiek nors pravertė. P.S. Kartais paprastus dalykus yra sunku

Rippinta iš: gta-samp-serverio-pamokos/kodo-lygiavimas-t82127.html

Jei gali +REP :)

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5208 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...