Artasus 0 Odesláno: 25. Srpen, 2017 Share Odesláno: 25. Srpen, 2017 Popis problému: No takže som tu zase skúšal som asi 3 rôzne príkazy na freeze a automaticky unfreeze , no žiaden nefunguje a prejdem cez cp ako duch Chyby/varování kompilátoru a při běhu: -- Kód: public OnPlayerEnterRaceCheckpoint(playerid) { switch(cpautobusar1[playerid]) { case 0: { cpautobusar1[playerid]=1; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,1249.8652,-1849.6072,13.3828,1117.2852,-1849.2708,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 1: { cpautobusar1[playerid]=2; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,1117.2852,-1849.2708,13.3828,951.2630,-1774.7740,13.9896,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 2: { cpautobusar1[playerid]=3; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,951.2630,-1774.7740,13.9896,756.6444,-1678.5873,3.9417,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 3: { cpautobusar1[playerid]=4; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,756.6444,-1678.5873,3.9417,807.3351,-1595.1348,13.3903,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 4: { cpautobusar1[playerid]=5; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,807.3351,-1595.1348,13.3903,1095.0525,-1575.7653,13.3750,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 5: { cpautobusar1[playerid]=6; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,1095.0525,-1575.7653,13.3750,1294.1293,-1651.5027,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 6: { cpautobusar1[playerid]=7; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,1294.1293,-1651.5027,13.3828,1249.8883,-1849.0952,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 7: { cpautobusar1[playerid]=8; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,1,1249.8883,-1849.0952,13.3828,1249.8883,-1849.0952,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 8: { cpautobusar1[playerid]=9; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,1,1249.8883,-1849.0952,13.3828,1249.8883,-1849.0952,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 9: { cpautobusar1[playerid]=10; DisablePlayerRaceCheckpoint(playerid); GivePlayerMoney(playerid,1500); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } } return 1; Dodatečné poznámky: -- Link to comment Share on other sites More sharing options...
0 DeNisKo 8 Odesláno: 25. Srpen, 2017 Share Odesláno: 25. Srpen, 2017 Teraz som nepochopil. Čo potrebuješ? Link to comment Share on other sites More sharing options...
0 Invouk 91 Odesláno: 25. Srpen, 2017 Share Odesláno: 25. Srpen, 2017 A nešlo by spraviť, že by si získal pozíciu auta, a portol ho na tu pozíciu, či by mu nenastavilo rýchlosť.Alebo skús: wiki/SetVehicleVelocityproste len nastavíš 0.0 0.0 0.0 Link to comment Share on other sites More sharing options...
0 Adrián Lipták 51 Odesláno: 25. Srpen, 2017 Share Odesláno: 25. Srpen, 2017 (upraveno) velocity 0 alebo ho portnut rovno tam kde je // aha uz to tu niekto napisal Edited 25. Srpen, 2017 by Adrián Lipták Link to comment Share on other sites More sharing options...
0 mattmatt 20 Odesláno: 25. Srpen, 2017 Share Odesláno: 25. Srpen, 2017 Popis problému: No takže som tu zase skúšal som asi 3 rôzne príkazy na freeze a automaticky unfreeze , no žiaden nefunguje a prejdem cez cp ako duch Chyby/varování kompilátoru a při běhu: -- Kód: public OnPlayerEnterRaceCheckpoint(playerid) { switch(cpautobusar1[playerid]) { case 0: { cpautobusar1[playerid]=1; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,1249.8652,-1849.6072,13.3828,1117.2852,-1849.2708,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 1: { cpautobusar1[playerid]=2; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,1117.2852,-1849.2708,13.3828,951.2630,-1774.7740,13.9896,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 2: { cpautobusar1[playerid]=3; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,951.2630,-1774.7740,13.9896,756.6444,-1678.5873,3.9417,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 3: { cpautobusar1[playerid]=4; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,756.6444,-1678.5873,3.9417,807.3351,-1595.1348,13.3903,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 4: { cpautobusar1[playerid]=5; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,807.3351,-1595.1348,13.3903,1095.0525,-1575.7653,13.3750,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 5: { cpautobusar1[playerid]=6; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,1095.0525,-1575.7653,13.3750,1294.1293,-1651.5027,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 6: { cpautobusar1[playerid]=7; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,0,1294.1293,-1651.5027,13.3828,1249.8883,-1849.0952,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 7: { cpautobusar1[playerid]=8; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,1,1249.8883,-1849.0952,13.3828,1249.8883,-1849.0952,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 8: { cpautobusar1[playerid]=9; DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid,1,1249.8883,-1849.0952,13.3828,1249.8883,-1849.0952,13.3828,4.0); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } case 9: { cpautobusar1[playerid]=10; DisablePlayerRaceCheckpoint(playerid); GivePlayerMoney(playerid,1500); TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); } } return 1; Dodatečné poznámky: -- Bylo by dobré, kdyby si se navyjadřoval jako blbeček a napsal co potřebuješ. Děkuji, začíná to být lehce jdoucí na nervy. Link to comment Share on other sites More sharing options...
0 DuFF 83 Odesláno: 25. Srpen, 2017 Share Odesláno: 25. Srpen, 2017 (upraveno) Ak potrebuješ zastaviť hráča na každom checkpointe, SetVehicleVelocity to vyrieši, ako už bolo povedané vyššie. Navyše mám pre teba pár rád, ktoré by sa ti mohli hodiť: 1. V tvojom minulom príspevku som ti napísal, aby si case 1 prepísal na case 0 a podobne. Teraz si uvedomujem, že číslovať checkpointy od 0 nebude najlepší nápad. Ak totiž začneš číslovať od 1, budeš vedieť, že playerid pre ktoré platí cpautobusar1[playerid] == 0, nemá spustenú misiu autobusára a nebudeš si to musieť pamätať v žiadnej ďalšej premennej. 2. Môžeš odstrániť prebytočný kód - DisablePlayerCheckpoint chceš urobiť vždy, nezávisle od premennej cpautobusar1, teda to môžeš vytiahnuť pred switch. 3. Switchu sa môžeš úplne zbaviť, ak si vytvoríš konštantné pole, v ktorom budeš mať uložené súradnice checkpointov. Ako to celé myslím: new const Float:busDriverCPs[][3] = // Každý záznam má 3 elementy (x, y, z), počet záznamov je určený vymenovaním { // x y z {1249.8652, -1849.6072, 13.3828}, // 1. checkpoint {1117.2852, -1849-2708, 13.3828}, // 2. checkpoint {951.2630, -1774.7740, 13.9896}, // 3. checkpoint ... {1249.8883, -1849.0952, 13.3828}, //posledný checkpoint {1249.8883, -1849.0952, 13.3828} //posledný checkpoint znova (aby sme nemuseli v OnPlayerEnterRaceCheckpoint zvlášť ošetrovať predposledný checkpoint) }; new cpautobusar1[MAX_PLAYERS]; public OnPlayerConnect(playerid) { cpautobusar1[playerid] = 0; // Kvôli ľuďom, ktorí sa odpoja počas misie autobusára return 1; } CMD:mise(playerid, params[]) // Mám pocit, že v jednom z tvojich príspevkov som videl ZCMD { // Kontrola, či má hráč správne vozidlo / povolanie... cpautobusar1[playerid] = 1; // Zapneš misiu priamo tu, prípadne v OnDialogResponse, ak vyberáš trať z dialogu SetPlayerRaceCheckpoint(playerid, 0, busDriverCPs[0][0], busDriverCPs[0][1], busDriverCPs[0][2], busDriverCPs[1][0], busDriverCPs[1][1], busDriverCPs[1][2]); return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { if (cpautobusar1[playerid]) // Ak má hráč zapnutú misiu (ak cpautobusar1[playerid] nie je 0) { // Kontroly, či je hráč v správnom vozidle, či je vôbec v nejakom vozidle atď... DisablePlayerCheckpoint(playerid); SetVehicleVelocity(GetPlayerVehicleID(playerid), 0.0, 0.0, 0.0); // Zastaví hráčove vozidlo if (cpautobusar1[playerid] == sizeof(busDriverCPs) - 1) // Ak hráč prišiel na posledný checkpoint.. Jediný prípad, ktorý treba riešiť zvlášť { GivePlayerMoney(playerid, 1500); cpautobusar1[playerid] = 0 // Vypne hráčovi misiu } else { SetPlayerRaceCheckpoint(playerid, 0, busDriverCPs[cpautobusar1[playerid]][0], // x busDriverCPs[cpautobusar1[playerid]][1], // y busDriverCPs[cpautobusar1[playerid]][2], // z busDriverCPs[++cpautobusar1[playerid]][0], // x next, cpautobusar1[playerid] sa zvýši o 1 busDriverCPs[cpautobusar1[playerid]][1], // y next busDriverCPs[cpautobusar1[playerid]][2], // z next 4.0); } } return 1; } Edited 25. Srpen, 2017 by DuFF Link to comment Share on other sites More sharing options...
0 Meric 1 Odesláno: 25. Srpen, 2017 Share Odesláno: 25. Srpen, 2017 Jak bylo řečeno výše. Buď použij SetVehicleVelocity a nebo je taky možnost zastavit ho na určitou dobu a pomocí SetTimerEx ho pustit. Záleží jak to chceš. Link to comment Share on other sites More sharing options...
Dotaz
Artasus 0
Popis problému:
No takže som tu zase skúšal som asi 3 rôzne príkazy na freeze a automaticky unfreeze , no žiaden nefunguje a prejdem cez cp ako duch
Chyby/varování kompilátoru a při běhu:
--
Kód:
Dodatečné poznámky:
--
Link to comment
Share on other sites
6 odpovědí na tuto otázku
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