FloriNNN Posted May 28, 2020 Report Share Posted May 28, 2020 (edited) Salut, azi o sa va invat cum sa faceti comanda "/closestcar" dar inainte sa incep vreau sa spun ca decat comanda este facuta de mine si este cv simplu si daca topic-ul nu este ok o sa il sterg. Avem nevoie de stock care este mai jos si de zCMD. astea le puneti la inceputul GM-ului daca nu o aveti. #include <zcmd> #define COLOR_LIGHTRED 0xFF6347AA// este rosu deschis #define COLOR_GREEN 0x0ea142FF// este verde inchis Stock-ul il puneti unde vreti si vreau sa spun ca acesta este luat din GM-ul BigZone stock GetClosestVehicle2(playerid, Float:dis) { new Float:X, Float:Y, Float:Z; if(GetPlayerPos(playerid, X, Y, Z)) { new vehicleid = INVALID_VEHICLE_ID; for(new v, Float:temp, Float:VX, Float:VY, Float:VZ; v != MAX_VEHICLES; v++) { if(GetVehiclePos(v, VX, VY, VZ)) { VX -= X, VY -= Y, VZ -= Z; temp = VX * VX + VY * VY + VZ * VZ; if(temp < dis) dis = temp, vehicleid = v; } } dis = floatpower(dis, 0.5); return vehicleid; } return INVALID_VEHICLE_ID; } Acum o sa facem comanda: CMD:closestcar(playerid, params[]) { // aici deschidem comanda if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREEN, "Nu poti folosi comanda pentru ca nu esti admin!"); // aici verificam daca este admin, daca aveti un GM de pe net o sa aveti if(PlayerInfo[playerid][pAdmin]>1) if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED, "Esti deja intr-o masina!"); // aici verificam daca se afla intr-o masina if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT){ new cCar = GetClosestVehicle2(playerid, 50); // GetClosestVehicle2 este stock-ul si 50 reprezinta distanta de la care poate fi pus in masina, daca vreti sa modificatati distanta trebuie sa puneti de ex: vreau sa fie maxim 2 metri asa ca trebuie sa punem 20. PutPlayerInVehicle(playerid, cCar, 0); // aici il punem in masina pe cel care a folosit comanda, 0 este locul soferului } else SendClientMessage(playerid, COLOR_LIGHTRED, "Nu esti in jurul unei masini!"); // aici ii dam un mesaj ca nu se afla in jurul unei masini. return 1; }// aici inchidem comanda Edited May 28, 2020 by FloriNNN Quote Link to comment Share on other sites More sharing options...
NuamNume Posted May 29, 2020 Report Share Posted May 29, 2020 e ez 1 Quote Link to comment Share on other sites More sharing options...
RXS Posted May 29, 2020 Report Share Posted May 29, 2020 1 hour ago, NuamNume said: e ez ma tu chiar esti bulangiu? cum iti permiti sa comentezi la o postare de learning "e ez" cand tu ai umplut forumul de "ajutati-ma va rog din suflet" la cele mai penibile rezolvari? ce au ajuns copiii astia bai baiatule. 3 Quote Link to comment Share on other sites More sharing options...
.Robert. Posted May 29, 2020 Report Share Posted May 29, 2020 Un tutorial inseamna sa explici cum,ce ai folosit si de ce. ( De ex. functia/stock-ul nu ai explicat-o deloc) Pt comanda nici nu cred ca trebuia sa explici, cu putina engleza cred ca intelegea oricine. Dar totusi pt. cine e 0 barat merge. *Fara suparare Quote Link to comment Share on other sites More sharing options...
NuamNume Posted May 29, 2020 Report Share Posted May 29, 2020 (edited) 3 hours ago, adversaru said: ma tu chiar esti bulangiu? cum iti permiti sa comentezi la o postare de learning "e ez" cand tu ai umplut forumul de "ajutati-ma va rog din suflet" la cele mai penibile rezolvari? ce au ajuns copiii astia bai baiatule. uau ce scripter bun esti mars ma jigodie ordinara Edited May 29, 2020 by NuamNume Quote Link to comment Share on other sites More sharing options...
VAurel Posted June 21, 2020 Report Share Posted June 21, 2020 La 29.05.2020 la 17:24, .Robert. a spus: Un tutorial inseamna sa explici cum,ce ai folosit si de ce. ( De ex. functia/stock-ul nu ai explicat-o deloc) Pt comanda nici nu cred ca trebuia sa explici, cu putina engleza cred ca intelegea oricine. Dar totusi pt. cine e 0 barat merge. *Fara suparare Fratee, e un tutorial coaie, si daca nu era doar un tutorial, aia e le-a dat mura in gura o comanda, care e problema ? Dai reply cu ezz, de parca a postat cineva un sistem, da unii nu aveti putina mentalitate... 1 Quote YouTube : https://www.youtube.com/channel/UCqHZo0HCgfmW5R5d6b5cnxw Link to comment Share on other sites More sharing options...
R4zvyy Posted October 12, 2020 Report Share Posted October 12, 2020 La 29.05.2020 la 19:58, NuamNume a spus: uau ce scripter bun esti mars ma jigodie ordinara Da tu, esti mare scripter la facut comenzi ascunse... csf, si apoi injuri scripterii ca tu esti. Du-te la nani si tu Quote Daca ii dai cuiva a doua sansa, e ca si cum i-ai oferi un glont la pistol ca sa te nimereasca. Link to comment Share on other sites More sharing options...
HPQ123 Posted October 13, 2020 Report Share Posted October 13, 2020 (edited) La 29.05.2020 la 14:56, NuamNume a spus: La 28.05.2020 la 16:29, FloriNNN a spus: Salut, azi o sa va invat cum sa faceti comanda "/closestcar" dar inainte sa incep vreau sa spun ca decat comanda este facuta de mine si este cv simplu si daca topic-ul nu este ok o sa il sterg. Avem nevoie de stock care este mai jos si de zCMD. astea le puneti la inceputul GM-ului daca nu o aveti. #include <zcmd> #define COLOR_LIGHTRED 0xFF6347AA// este rosu deschis #define COLOR_GREEN 0x0ea142FF// este verde inchis Stock-ul il puneti unde vreti si vreau sa spun ca acesta este luat din GM-ul BigZone stock GetClosestVehicle2(playerid, Float:dis) { new Float:X, Float:Y, Float:Z; if(GetPlayerPos(playerid, X, Y, Z)) { new vehicleid = INVALID_VEHICLE_ID; for(new v, Float:temp, Float:VX, Float:VY, Float:VZ; v != MAX_VEHICLES; v++) { if(GetVehiclePos(v, VX, VY, VZ)) { VX -= X, VY -= Y, VZ -= Z; temp = VX * VX + VY * VY + VZ * VZ; if(temp < dis) dis = temp, vehicleid = v; } } dis = floatpower(dis, 0.5); return vehicleid; } return INVALID_VEHICLE_ID; } Acum o sa facem comanda: CMD:closestcar(playerid, params[]) { // aici deschidem comanda if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_GREEN, "Nu poti folosi comanda pentru ca nu esti admin!"); // aici verificam daca este admin, daca aveti un GM de pe net o sa aveti if(PlayerInfo[playerid][pAdmin]>1) if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED, "Esti deja intr-o masina!"); // aici verificam daca se afla intr-o masina if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT){ new cCar = GetClosestVehicle2(playerid, 50); // GetClosestVehicle2 este stock-ul si 50 reprezinta distanta de la care poate fi pus in masina, daca vreti sa modificatati distanta trebuie sa puneti de ex: vreau sa fie maxim 2 metri asa ca trebuie sa punem 20. PutPlayerInVehicle(playerid, cCar, 0); // aici il punem in masina pe cel care a folosit comanda, 0 este locul soferului } else SendClientMessage(playerid, COLOR_LIGHTRED, "Nu esti in jurul unei masini!"); // aici ii dam un mesaj ca nu se afla in jurul unei masini. return 1; }// aici inchidem comanda E cam aiurea definită aia de MAX_VEHICLE daca mai este și default. Edited October 13, 2020 by HPQ123 Quote Link to comment Share on other sites More sharing options...
Sancky Posted July 27, 2023 Report Share Posted July 27, 2023 prea over enginereed, se poate itera doar prin vehiculele streamed ale playerului si verifici distanta dintre vehicul si player, iar daca distanta este mai mica decat ultima stocata in 'range', acela este cel mai apropiat vehicul de player, iar la final dupa ce se termina loop-ul, se returneaza vehiculul cel mai apropiat respectiv INVALID_VEHICLE_ID daca nu s-au gasit vehicule in apropiere. GetClosestVehicle(const playerid, Float:range) { if(!Iter_Count(StreamedVehicles[playerid])) return INVALID_VEHICLE_ID; new Float: vX, Float: vY, Float: vZ, Float: distance, vehid = INVALID_VEHICLE_ID; foreach(new vehicleid : StreamedVehicles[playerid]) { GetVehiclePos(vehicleid, vX, vY, vZ); distance = GetPlayerDistanceFromPoint(playerid, vX, vY, vZ); if(distance < range) { range = distance; vehid = vehicleid; } } return vehid; } Quote Link to comment Share on other sites More sharing options...
khain.dev Posted August 16, 2023 Report Share Posted August 16, 2023 (edited) UN COD PUȚIN MAI OPTIMIZAT #include <zcmd> #define COLOR_LIGHTRED 0xFF6347AA #define COLOR_GREEN 0x0ea142FF stock GetClosestVehicle2(playerid, Float:dis) { new Float:X, Float:Y, Float:Z; if (GetPlayerPos(playerid, X, Y, Z)) { new vehicleid = INVALID_VEHICLE_ID; dis *= dis; // Evităm operațiunea de radical prin compararea dis^2 cu temp^2 for (new v, Float:VX, Float:VY, Float:VZ; v < MAX_VEHICLES; v++) { if (GetVehiclePos(v, VX, VY, VZ)) { VX -= X; VY -= Y; VZ -= Z; new temp = VX * VX + VY * VY + VZ * VZ; if (temp < dis) { dis = temp; vehicleid = v; } } } dis = floatpower(dis, 0.5); // Redundant în acest context, puteți renunța la această linie return vehicleid; } return INVALID_VEHICLE_ID; } CMD:closestcar(playerid, params[]) { if(!IsPlayerAdmin(playerid)) { SendClientMessage(playerid, COLOR_GREEN, "Nu poti folosi comanda pentru ca nu esti admin!"); return 1; } if(IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid, COLOR_LIGHTRED, "Esti deja intr-o masina!"); return 1; } if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { SendClientMessage(playerid, COLOR_LIGHTRED, "Nu esti in picioare langa o masina!"); return 1; } new Float:closestDistance = 50.0; new cCar = GetClosestVehicle2(playerid, closestDistance); if(cCar != INVALID_VEHICLE_ID) { PutPlayerInVehicle(playerid, cCar, 0); } else { SendClientMessage(playerid, COLOR_LIGHTRED, "Nu ai gasit nicio masina in apropiere!"); } return 1; } Edited August 16, 2023 by khain.dev Quote Link to comment Share on other sites More sharing options...
Sancky Posted August 16, 2023 Report Share Posted August 16, 2023 12 minutes ago, khain.dev said: UN COD PUȚIN MAI OPTIMIZAT #include <zcmd> #define COLOR_LIGHTRED 0xFF6347AA #define COLOR_GREEN 0x0ea142FF stock GetClosestVehicle2(playerid, Float:dis) { new Float:X, Float:Y, Float:Z; if (GetPlayerPos(playerid, X, Y, Z)) { new vehicleid = INVALID_VEHICLE_ID; dis *= dis; // Evităm operațiunea de radical prin compararea dis^2 cu temp^2 for (new v, Float:VX, Float:VY, Float:VZ; v < MAX_VEHICLES; v++) { if (GetVehiclePos(v, VX, VY, VZ)) { VX -= X; VY -= Y; VZ -= Z; new temp = VX * VX + VY * VY + VZ * VZ; if (temp < dis) { dis = temp; vehicleid = v; } } } dis = floatpower(dis, 0.5); // Redundant în acest context, puteți renunța la această linie return vehicleid; } return INVALID_VEHICLE_ID; } CMD:closestcar(playerid, params[]) { if(!IsPlayerAdmin(playerid)) { SendClientMessage(playerid, COLOR_GREEN, "Nu poti folosi comanda pentru ca nu esti admin!"); return 1; } if(IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid, COLOR_LIGHTRED, "Esti deja intr-o masina!"); return 1; } if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { SendClientMessage(playerid, COLOR_LIGHTRED, "Nu esti in picioare langa o masina!"); return 1; } new Float:closestDistance = 50.0; new cCar = GetClosestVehicle2(playerid, closestDistance); if(cCar != INVALID_VEHICLE_ID) { PutPlayerInVehicle(playerid, cCar, 0); } else { SendClientMessage(playerid, COLOR_LIGHTRED, "Nu ai gasit nicio masina in apropiere!"); } return 1; } unde i optimizarea, ca n-o vad Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.