tejpek 3 Odesláno: 30. Prosinec, 2014 Share Odesláno: 30. Prosinec, 2014 Zdravím, mám v módu pěknou vychytávku a rozhodl jsem se s vámi o ni podělit o co jde? Transformace vozidla během pohybu k čemu to je? k ničemu k rychlé změně vozidla jak na to? pokud nemáme, nadefinujeme si DCMD #define dcmd(%1,%2,%3) if((strcmp((%3)[1],#%1,true,(%2))==0)&&((((%3)[(%2)+1]==0)&&(dcmd_%1(playerid,"")))||(((%3)[(%2)+1]==32)&&(dcmd_%1(playerid,(%3)[(%2)+2]))))) return 1 a vytvoříme proměnné s názvy aut new VehiclesModels[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"}, {"Previon"}, {"Coach"}, {"Cabbie"}, {"Stallion"}, {"Rumpo"}, {"RC Bandit"}, {"Romero"}, {"Packer"}, {"Monster"}, {"Admiral"}, {"Squalo"}, {"Seasparrow"}, {"Pizzaboy"}, {"Tram"}, {"Trailer 2"}, {"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"}, {"Hotring Racer B"}, {"Bloodring Banger"}, {"Rancher"}, {"Super GT"}, {"Elegant"}, {"Journey"}, {"Bike"}, {"Mountain Bike"}, {"Beagle"}, {"Cropdust"}, {"Stunt"}, {"Tanker"}, {"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"}, {"Hustler"}, {"Intruder"}, {"Primo"}, {"Cargobob"}, {"Tampa"}, {"Sunrise"}, {"Merit"}, {"Utility"}, {"Nevada"}, {"Yosemite"}, {"Windsor"}, {"Monster A"}, {"Monster B"}, {"Uranus"}, {"Jester"}, {"Sultan"}, {"Stratum"}, {"Elegy"}, {"Raindance"}, {"RC Tiger"}, {"Flash"}, {"Tahoma"}, {"Savanna"}, {"Bandito"}, {"Freight Flat"}, {"Streak Carriage"}, {"Kart"}, {"Mower"}, {"Duneride"}, {"Sweeper"}, {"Broadway"}, {"Tornado"}, {"AT-400"}, {"DFT-30"}, {"Huntley"}, {"Stafford"}, {"BF-400"}, {"Newsvan"}, {"Tug"}, {"Trailer 3"}, {"Emperor"}, {"Wayfarer"}, {"Euros"}, {"Hotdog"}, {"Club"}, {"Freight Carriage"}, {"Trailer 3"}, {"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"}, {"Luggage Trailer B"}, {"Stair Trailer"}, {"Boxville"}, {"Farm Plow"}, {"Utility Trailer"} }; vytvoříme příkaz a začneme do něho přidávat následující kód dcmd_transform(playerid,params[]) { return 1 } zjistíme v čem hráč sedí, pozici vozidla, úhly a rychlost new veh = GetPlayerVehicleID(playerid); //zjistíme ID vozidla new Float:X,Float:Y,Float:Z; //určíme proměnné pro pozici new Float:VX,Float:VY,Float:VZ; //určíme proměnné pro rychlost new Float:RX,Float:RY,Float:RZ; //určíme proměnné pro rotaci GetVehiclePos(veh,X,Y,Z); //zjistíme pozici GetVehicleVelocity(veh,VX,VY,VZ); //zjisítme rychlost GetVehicleRotation(veh, RX, RY, RZ); //zjistíme rotaci zajistíme params v příkazu (v tomto případě funguje na jméno vozidla) new car = -1; //zadáme proměnnou ID vozidla for(new i=0;i<212;i++) //cyklus (celkem 212 vozidel) { if(strfind(params,VehiclesModels[i],true) != -1) //pokud v hodnotě params najde název vozidla { car= 400 + i; //vozidla začínají ID 400 break; //stopneme cyklus } } if(car == -1) //pokud ID zůstalo -1 { car = strval(params); //proměnná se nastavila na hodnotu params (id vozidla) if(car < 400 || car > 611) return SendClientMessage(playerid,0xaaaaaaFF, "Špatné ID. ID Aut: 400-611"); //pokud není hodnota v rozmezí } vytvoříme hráčovi auto for(new i=0;i<MAX_PLAYERS_EX;i++) //cyklus { new iseat[MAX_PLAYERS_EX]; //nastavíme proměnnou pro sedadlo if(IsPlayerInVehicle(i,veh)) //pokud je hráč v autě { iseat[i] = GetPlayerVehicleSeat(i); //zjistíme kdo kde sedí RemovePlayerFromVehicle(i); //vyhodíme hráče z auta DestroyVehicle(veh); //zničíme auto new kara = CreateVehicle(car,X,Y,Z,-RX,1,1,9999); //vytvoříme nové auto (námi zadané) PutPlayerInVehicle(i, kara, iseat[i]); //posadíme všechny hráče na jejich místa //následující 4 řádky jsem přidal jelikož neznámou záhadou řádek výše nefungoval a prazatím jsem ho nevyřešil, kdyby se to někomu povedlo, dejte vědět, díky if(iseat[i] == 0) PutPlayerInVehicle(i, kara, 0); if(iseat[i] == 1) PutPlayerInVehicle(i, kara, 1); if(iseat[i] == 2) PutPlayerInVehicle(i, kara, 2); if(iseat[i] == 3) PutPlayerInVehicle(i, kara, 3); SetVehicleVelocity(kara,VX,VY,VZ); //nastavíme rychlost auta } } Přidáme příkaz do OnPlayerCommand... A to je celé děkuji za pozornost, třeba se to někomu i hodí Pokud někomu nebude fungovat > špatně kopíroval > zkuste zapojit mozek a trošku "programovat" mě funguje nádherně a při transformaci auto sebou ani necukne 3 Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 30. Prosinec, 2014 Share Odesláno: 30. Prosinec, 2014 toto není návod... ale script. Link to comment Share on other sites More sharing options...
tejpek 3 Odesláno: 30. Prosinec, 2014 Author Share Odesláno: 30. Prosinec, 2014 Prozraď mi, jak by si podobný návod popsal bez ukázkového scriptu Link to comment Share on other sites More sharing options...
Deejva 36 Odesláno: 30. Prosinec, 2014 Share Odesláno: 30. Prosinec, 2014 Chtěl tím asi naznačit, že když to máš takhle, patří to sem http://pawno.cz/forum/105-scripty/ Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 30. Prosinec, 2014 Share Odesláno: 30. Prosinec, 2014 Prozraď mi, jak by si podobný návod popsal bez ukázkového scriptu ukazkovej kod může být. ale nesmí být uplně přímo na CTRL + C a CTRL + V. návod má být takový aby člověk pochopil fakt jak to funguje proč se to to tam dělá atd. new Float:X,Float:Y,Float:Z; //určíme proměnné pro pozici new Float:VX,Float:VY,Float:VZ; //určíme proměnné pro rychlost new Float:RX,Float:RY,Float:RZ; //určíme proměnné pro rotaci a toto za návod nepovažuju... Link to comment Share on other sites More sharing options...
Om3n 78 Odesláno: 30. Prosinec, 2014 Share Odesláno: 30. Prosinec, 2014 tim ze popsal vsechny funkce co ktera dela tak se to za navod da povazovat. kdyby to tam nebylo tak uz by to navod nebyl. Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 30. Prosinec, 2014 Share Odesláno: 30. Prosinec, 2014 tim ze popsal vsechny funkce co ktera dela tak se to za navod da povazovat. kdyby to tam nebylo tak uz by to navod nebyl. když už někdo dělá návod. at vysvětlí uplně všě..... Link to comment Share on other sites More sharing options...
tejpek 3 Odesláno: 30. Prosinec, 2014 Author Share Odesláno: 30. Prosinec, 2014 když už někdo dělá návod. at vysvětlí uplně všě..... Co jsem na tom nevysvětlil? Link to comment Share on other sites More sharing options...
DoubleX 7 Odesláno: 30. Prosinec, 2014 Share Odesláno: 30. Prosinec, 2014 Mám na tom 0 errorů Je to dobré 10/10 Link to comment Share on other sites More sharing options...
w.endelin 15 Odesláno: 30. Prosinec, 2014 Share Odesláno: 30. Prosinec, 2014 Éčko, to jako má pospat, co dělá třeba "new", co to znamená a tak, ja si myslím, že to docela popsaný má, jo sice ano, má tam celý script pro Ctrl+C/V, ale je to návod se sciptem, podle mého.. Link to comment Share on other sites More sharing options...
jAk3r 47 Odesláno: 2. Prosinec, 2015 Share Odesláno: 2. Prosinec, 2015 Můj názor je takový že tohle je pokročilejší pawno tudíž daný člověk by již měl vedet co dělá new atd... Jelikož to by tam pak musel vysvětlovat každy a myslím že tu je spousty návodu kde se vysvětluje co co dělá. Takže myslím ťže to je OK. Link to comment Share on other sites More sharing options...
Scydo 397 Odesláno: 2. Prosinec, 2015 Share Odesláno: 2. Prosinec, 2015 ~> Návod (syn. tutoriál), bych dle mého názoru považoval cokoliv, co je jen ukázkou pro pochopení, aby si v tom dokázal už sám bez problémů pracovat. Je pravda, že jisté části se prostě musí ukázat celé, a vysvětlit do naprostých podrobností, aby to uživatel(čtenář) pochopil. ~> K tomuhle tutoriálů. Není to vůbec špatné. Je to celkem přehledné, bez odrážek, neobsahuje to příliš textu. Graficky je taky pěkný, neobsahuje 11 různých sakra světlých barev apod. (všichni víme, co myslím), ale vylepšit by rozhodně nebylo na škodu . ~> V code to je taky dobře vysvětlené, není to příliš složité. Jen bych místo určímě spíše použil založíme nebo přidáme. Zní to trochu jako, že mu určujeme nějakou hodnotu . ~> Ne, že by bylo dcmd špatné, ale není ani dobré a někteří ho tu nemají rádi. Uznávám, je super, že je to jen jednořádkový preprocesor, takže nováčci s jeho "nahráním" nebudou mít problém, ale zase se takhle nenaučí nahrávat jiné includy, které se jim zalíbí. A ještě ty, které jsou lepší. ~> Kontroluješ vůbec, jestli je v nějakém vozidle (IsPlayerInAnyVehicle())? Raději se ptám, nebo jestli to bereš jako samozřejmost, že si to tam už každý individuálně přidá? . ~> Pro cyklus na ty hráče můžeš využít tu novou funkci, která byla přidaná. ~> Ne, že by to bylo špatně, ale neuvažoval jsi někdy, že bys místo strfind() použil strcmp()? ~> A k těm několika funkcím PutPlayerInVehicle()... zkoušel jsi to v autobuse s více hráči ? Za mě rozhodně rep. Je vidět, že se vyznáš v tom, o čem mluvíš (forum.sa-mp.com/showthread.php?t=576114) | (wiki/GetPlayerPoolSize) | (wiki/Strcmp) Link to comment Share on other sites More sharing options...
The hidden face 77 Odesláno: 2. Prosinec, 2015 Share Odesláno: 2. Prosinec, 2015 Podle mě je to spíše script, ale OK, vysvětlivky k tomu jsou (někde až zbytečně ). Jinak by mě zajímalo proč všichni hodnotíte skoro 1 rok starý topic? Link to comment Share on other sites More sharing options...
Scydo 397 Odesláno: 2. Prosinec, 2015 Share Odesláno: 2. Prosinec, 2015 Podle mě je to spíše script, ale OK, vysvětlivky k tomu jsou (někde až zbytečně ). Jinak by mě zajímalo proč všichni hodnotíte skoro 1 rok starý topic? ~> Protože prostě můžem Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 2. Prosinec, 2015 Share Odesláno: 2. Prosinec, 2015 Podle mě je to spíše script, ale OK, vysvětlivky k tomu jsou (někde až zbytečně ). Jinak by mě zajímalo proč všichni hodnotíte skoro 1 rok starý topic? Se ptej jakera ten otevřel rok starou temu.. Link to comment Share on other sites More sharing options...
Pajdalf 0 Odesláno: 27. Prosinec, 2015 Share Odesláno: 27. Prosinec, 2015 (upraveno) Když už je to otevřené, tak se ještě zeptám: GetVehicleRotation(veh, RX, RY, RZ); Nic mi nenašlo na googlu, akorát: GetVehicleRotationQuat Když tam mám GetVehicleRotation, tak mi to hodí že to nemám nadefinované, což je pravda - nevím jak to mám nadefinovat A ještě mi to hodí Warningy - Že jsem nikdy nepoužil RX RY RZ. Když tam mám GetVehicleRotationQuat(veh, RX, RY, RZ); tak mi to napíše: warning 202: number of arguments does not match definition Díky, Pajdalf. Edited 27. Prosinec, 2015 by Pajdalf Link to comment Share on other sites More sharing options...
The hidden face 77 Odesláno: 27. Prosinec, 2015 Share Odesláno: 27. Prosinec, 2015 (upraveno) No tak příště si na to můžeš vytvořit help. No co už... takto módík když tak odstraní a zamkne... Problém je v tom, že fce GetVehicleRotationQuad(...), má 4 parametry (ty zadáváš pouze 3). Každopádně na zjištění rotace vozidla můžeš použít fci GetVehicleZAngle(...) - využívá se častěji, která má pouze 2 parametry. Následně doplníš do CreateVehicle(model, pos X, pos Y, pos Z, úhel (tedy ten angle), barva 1, barva 2, siréna (od 0.3.7)). Snad jsi to pochopil v případě nějakých nejasností PM nebo si vytvoř vlastní help topic... Edited 27. Prosinec, 2015 by GaRGoyLeS Link to comment Share on other sites More sharing options...
Lukasz 336 Odesláno: 27. Prosinec, 2015 Share Odesláno: 27. Prosinec, 2015 To je ale pouze rotace na ose z.. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now