KUNT Posted July 12, 2017 Posted July 12, 2017 Astazi va voi arata cum sa creati niste asa zise centuri de siguranta la vehicule si casca pentru motor/atv. Vom avea nevoie de urmatoarele include-uri : #include <streamer> // Incongnito #include <sscanf2> // Y_Less #include <zcmd> // Zeex Primul pas il constiuie variabilele: new bool:Centura[MAX_PLAYERS]; new bool:Casca[MAX_PLAYERS]; new pornestetimer; Al doilea pas face ca variabilele sa se reseteze la conectarea unui jucator nou. public OnPlayerConnect(playerid) { Centura[playerid] = false; Casca[playerid] = false; return 1; } Al treilea pas vom creea niste stock-uri in care vom defini modelele de biciclete/motorete/atv. stock IsABike(vehicleid) { new model = GetVehicleModel(vehicleid); if(model == 509 || model == 481 || model == 510) { return 1; } return 0; } stock IsAMotoATV(vehicleid) { new modell = GetVehicleModel(vehicleid); if(modell == 461 || modell == 462 || modell == 463 || modell == 468 || modell == 521 || modell == 522 || modell == 581 || modell == 586 || modell == 471) { return 1; } return 0; } Al patrulea pas reprezinta comenziile propriu-zise. CMD:punecentura(playerid, params[]) { new vehicleid; vehicleid = GetPlayerVehicleID(playerid); if(IsPlayerConnected(playerid)) { if(IsPlayerInAnyVehicle(playerid) && !IsABike(vehicleid)) { if(Centura[playerid]) { Centura[playerid] = false; SendClientMessage(playerid, -1, "Ti-ai dat jos centura."); } else { Centura[playerid] = true; SendClientMessage(playerid, -1, "Ti-ai pus centura."); } } else { SendClientMessage(playerid, -1, "Nu esti in masina."); return 1; } } else { SendClientMessage(playerid, -1, "Nu esti conectat."); return 1; } return 1; } CMD:punecasca(playerid, params[]) { new vehicleid; vehicleid = GetPlayerVehicleID(playerid); if(IsPlayerConnected(playerid)) { if(IsAMotoATV(vehicleid)) { if(Casca[playerid]) { RemovePlayerAttachedObject(playerid, 1); Casca[playerid] = false; SendClientMessage(playerid, -1, "Ti-ai dat jos casca."); KillTimer(pornestetimer); } else { SetPlayerAttachedObject(playerid, 1, 18645, 2, 0.055999, 0.035999, 0.000000, 74.200012, 67.2000004, 14.1999997, 1.000000, 1.000000, 1.000000); Casca[playerid] = true; SendClientMessage(playerid, -1, "Ti-ai pus casca."); pornestetimer = SetTimerEx("VerificaCascaJucator", 1000, true, "i", playerid); } } else { SendClientMessage(playerid, -1, "Nu esti pe motoreta/atv."); return 1; } } else { SendClientMessage(playerid, -1, "Nu esti conectat."); return 1; } return 1; } Al cincilea pas reprezinta publicul OnPlayerExitVehicle pentru care il vom apela cand jucatorul iese din vehicul. public OnPlayerExitVehicle(playerid, vehicleid) { if(Casca[playerid]) { Casca[playerid] = false; RemovePlayerAttachedObject(playerid, 1); KillTimer(pornestetimer); } if(Centura[playerid]) { Centura[playerid] = false; } return 1; } Al saselea pas este sa creeam un forward in care va apela publicul creat la pasul 7 pentru a verifica daca acesta a picat de pe motoreta deoarece cand jucatorul pica de pe motoreta nu se apeleaza publicul OnPlayerExitVehicle. forward VerificaCascaJucator(playerid); Al saptelea pas reprezinta publicul forward-ului VerificaCascaJucator. public VerificaCascaJucator(playerid) { new vehicleid; vehicleid = GetPlayerVehicleID(playerid); if(!IsAMotoATV(vehicleid) && Casca[playerid]) { RemovePlayerAttachedObject(playerid, 1); Casca[playerid] = false; KillTimer(pornestetimer); } return 1; } Al optulea pas este sa distrugem timerul de verificare casca cand jucatorul se deconecteaza. Al noualea pas reprezinta mesajul meu pt voi: -sper sa nu intampinati probleme. -acest tutorial este un tutorial propriu-zis,acesta in gamemode poate fi dezolvtat dupa dorinte. Exemplu de dezvoltare: a) Comanda la factiunea LSPD pentru verificare. (+amenda in caz contrar). Tutorial realizat de catre HonciucGabriel.
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