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

[Pamoka]Masinos respawn GUI


bebras

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3997 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

Sveiki, pamoka parasyta pagal uzsakyma

Jos tikslas, sukurti GUI lentele su visomis serveryje esanciomis masinomis ir ant paspaudos ant tos masinos, ji bus respawninama.

Nieko nelaukes einu prie reikalo:

new const aVehicleNames[212][] = {
 {"Landstalker"},
 {"Bravura"},
 {"Buffalo"},
 {"Linerunner"},
 {"Perrenial"},
 {"Sentinel"},
 {"Dumper"},
 {"Firetruck"},
 {"Trashmaster"},
 {"Stretch"},
 {"Manana"},
 {"Infernus"},
 {"Voodoo"},
 {"Pony"},
 {"Mule"},
 {"Cheetah"},
 {"Ambulance"},
 {"Leviathan"},
 {"Moonbeam"},
 {"Esperanto"},
 {"Taxi"},
 {"Washington"},
 {"Bobcat"},
 {"Mr Whoopee"},
 {"BF Injection"},
 {"Hunter"},
 {"Premier"},
 {"Enforcer"},
 {"Securicar"},
 {"Banshee"},
 {"Predator"},
 {"Bus"},
 {"Rhino"},
 {"Barracks"},
 {"Hotknife"},
 {"Trailer 1"}, //artict1
 {"Previon"},
 {"Coach"},
 {"Cabbie"},
 {"Stallion"},
 {"Rumpo"},
 {"RC Bandit"},
 {"Romero"},
 {"Packer"},
 {"Monster"},
 {"Admiral"},
 {"Squalo"},
 {"Seasparrow"},
 {"Pizzaboy"},
 {"Tram"},
 {"Trailer 2"}, //artict2
 {"Turismo"},
 {"Speeder"},
 {"Reefer"},
 {"Tropic"},
 {"Flatbed"},
 {"Yankee"},
 {"Caddy"},
 {"Solair"},
 {"Berkley's RC Van"},
 {"Skimmer"},
 {"PCJ-600"},
 {"Faggio"},
 {"Freeway"},
 {"RC Baron"},
 {"RC Raider"},
 {"Glendale"},
 {"Oceanic"},
 {"Sanchez"},
 {"Sparrow"},
 {"Patriot"},
 {"Quad"},
 {"Coastguard"},
 {"Dinghy"},
 {"Hermes"},
 {"Sabre"},
 {"Rustler"},
 {"ZR-350"},
 {"Walton"},
 {"Regina"},
 {"Comet"},
 {"BMX"},
 {"Burrito"},
 {"Camper"},
 {"Marquis"},
 {"Baggage"},
 {"Dozer"},
 {"Maverick"},
 {"News Chopper"},
 {"Rancher"},
 {"FBI Rancher"},
 {"Virgo"},
 {"Greenwood"},
 {"Jetmax"},
 {"Hotring"},
 {"Sandking"},
 {"Blista Compact"},
 {"Police Maverick"},
 {"Boxville"},
 {"Benson"},
 {"Mesa"},
 {"RC Goblin"},
 {"Hotring Racer A"}, //hotrina
 {"Hotring Racer B"}, //hotrinb
 {"Bloodring Banger"},
 {"Rancher"},
 {"Super GT"},
 {"Elegant"},
 {"Journey"},
 {"Bike"},
 {"Mountain Bike"},
 {"Beagle"},
 {"Cropdust"},
 {"Stunt"},
 {"Tanker"}, //petro
 {"Roadtrain"},
 {"Nebula"},
 {"Majestic"},
 {"Buccaneer"},
 {"Shamal"},
 {"Hydra"},
 {"FCR-900"},
 {"NRG-500"},
 {"HPV1000"},
 {"Cement Truck"},
 {"Tow Truck"},
 {"Fortune"},
 {"Cadrona"},
 {"FBI Truck"},
 {"Willard"},
 {"Forklift"},
 {"Tractor"},
 {"Combine"},
 {"Feltzer"},
 {"Remington"},
 {"Slamvan"},
 {"Blade"},
 {"Freight"},
 {"Streak"},
 {"Vortex"},
 {"Vincent"},
 {"Bullet"},
 {"Clover"},
 {"Sadler"},
 {"Firetruck LA"}, //firela
 {"Hustler"},
 {"Intruder"},
 {"Primo"},
 {"Cargobob"},
 {"Tampa"},
 {"Sunrise"},
 {"Merit"},
 {"Utility"},
 {"Nevada"},
 {"Yosemite"},
 {"Windsor"},
 {"Monster A"}, //monstera
 {"Monster B"}, //monsterb
 {"Uranus"},
 {"Jester"},
 {"Sultan"},
 {"Stratum"},
 {"Elegy"},
 {"Raindance"},
 {"RC Tiger"},
 {"Flash"},
 {"Tahoma"},
 {"Savanna"},
 {"Bandito"},
 {"Freight Flat"}, //freiflat
 {"Streak Carriage"}, //streakc
 {"Kart"},
 {"Mower"},
 {"Duneride"},
 {"Sweeper"},
 {"Broadway"},
 {"Tornado"},
 {"AT-400"},
 {"DFT-30"},
 {"Huntley"},
 {"Stafford"},
 {"BF-400"},
 {"Newsvan"},
 {"Tug"},
 {"Trailer 3"}, //petrotr
 {"Emperor"},
 {"Wayfarer"},
 {"Euros"},
 {"Hotdog"},
 {"Club"},
 {"Freight Carriage"}, //freibox
 {"Trailer 3"}, //artict3
 {"Andromada"},
 {"Dodo"},
 {"RC Cam"},
 {"Launch"},
 {"Police Car (LSPD)"},
 {"Police Car (SFPD)"},
 {"Police Car (LVPD)"},
 {"Police Ranger"},
 {"Picador"},
 {"S.W.A.T. Van"},
 {"Alpha"},
 {"Phoenix"},
 {"Glendale"},
 {"Sadler"},
 {"Luggage Trailer A"}, //bagboxa
 {"Luggage Trailer B"}, //bagboxb
 {"Stair Trailer"}, //tugstair
 {"Boxville"},
 {"Farm Plow"}, //farmtr1
 {"Utility Trailer"} //utiltr1
};

native IsValidVehicle(vehicleid);

Tai tėra 2 dimensiju array su mašinų pavadinimais (galit žinoma keistis juos).

Toliau sukurkime komanda, aš naudosiu ZCMD bet visiškai nesvarbu koki būda rinksitės:

CMD:uzakymas(playerid,params[])
{
new bigstring[128],smallstring[32];
for(new i=1; i<MAX_VEHICLES; i++) //Pradedame nuo vieno, nes 0 yra netinkamas masinos ID
{
if(!IsValidVehicle(i)) continue; // Jeigu tokia masina neegzistuoja, kam testi?
format(smallstring,sizeof(smallstring),"%s\n",aVehicleNames[GetVehicleModel(i)-400]); // formatuojame smallstring ir į jį įrašome mašinos pavadinima bei "\n" kas reiškia kad pereiname i kita eilutę
strcat(bigstring,smallstring); //Mazaji string "sukišame" į didįjį
}
ShowPlayerDialog(playerid,5141,DIALOG_STYLE_LIST,"Masinu respanw",bigstring,"Respawn","NAIN"); //Kai mūsų ciklas baigią darbą, rodome lentele su jo rezultatu
return 1;
}

GUI su pavadinimais matysime, kas toliau? Reikia kad kažkas įvyktų pasirinkus variantą. Keliaujame prie OnDialogResponse callback'o:

if(dialogid==5141 && response) // Jei lentele ta ir žaidėjas pasirinko "Respawn" arba paspaudė enter
{
SetVehicleToRespawn(listitem+1); // Respawninam mašina id= listitem +1, kadangi listitem prasideda nuo 0,o mašinų id nuo 1.
return 1;
}

Ir viska! Radę klaidų rašykite.

Dėmėsio: Turint daug mašinų jos gali netilpti į GUI.

Redaguota , nario Dusk
  • Teigiamai 2
  • Neigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

for(new i=1; i<MAX_VEHICLES; i++) //Pradedame nuo vieno, nes 0 yra netinkamas masinos ID

{

if(i != INVALID_VEHICLE_ID) continue; // Jeigu tokia masina neegzistuoja, kam testi?

Man būtų įdomu sužinoti, kaip tu šiame cikle sugebėtum priskirti i reikšmę lygią INVALID_VEHICLE_ID.

[s]edit, šitas kodas mes errorą dėl boundų viršijymo. MAX_VEHICLES yra define, nurodanti maksimalų mašinų skaičių serveryje, ne masyvo dydį. Naudok sizeof aVehicleNames[/s]

Ne taip kodą supratau ^^

Beje, vietoj i != INVALID_VEHICLE_ID parašyk if( ! IsValidVehicle( i ) )

Redaguota , nario Yiin
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3997 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ą...