Mod koji koristim: CLRP
Opis problema: Oko ovoga se mucim vec duze vrijeme stoga bih htio samo iskusne za pomoc. Trebam napraviti provjeru i kod pod OnPlayerEnterVehicle... Znaci, ako je vozilo zakljucano, samo ako je vozilo kupljeno ( ne bilo koje vozilo u serveru ), da mu izbaci formatirani SCM "Ovo vozilo je zakljuÄano. Vlasnik: >>> Tu se najvise mucim jer mi je tesko napraviti tu provjeru, odnosno nikada ne radi :/ <<<
Dio moda: Pogledaj ispod!
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Ovo je vec bilo za vlasnika vozila u modu... Evo vam i enum
enum pInfo
{
blabla
blabla
pVlasnikAuta[MAX_PLAYER_NAME],
}
enum ahCar
{
Typ,
Float:X3,
Float:Y3,
Float:Z3,
Float:Rotation,
Status,
Lock,
Carid,
Paintjob,
Color1,
Color2,
mod1,
mod2,
mod3,
mod4,
mod5,
mod6,
mod7,
mod8,
mod9,
mod10,
mod11,
mod12,
mod13,
mod14,
mod15,
mod16,
mod17,
Vlasnik[MAX_PLAYER_NAME],
};
new Carlist[MAX_PLAYERS][ahCar];
Ovo "Vlasnik" se napravi automatski cim se igrac registrira, samo mu zapise ime prezime tamo u folderu gdje radi za vozila fajl, ali se za nista ne koristi!
A gdje je enum za vozila koja nisu kupljena? Jer ova CarList varijabla je samo za kupljena vozila.
Tako je, CarList je za kupljena... Pa nemam to za nekupljena, mislim ostala su sva AddStaticVehicleEx i tako, nemaju svoj enum... Imam jos enume za BuyList ali to ti ne treba... Cek, ima jos ovo, mislim da je to to što mislis
enum vInfo
{
mod1,
mod2,
mod3,
mod4,
mod5,
mod6,
mod7,
mod8,
mod9,
mod10,
mod11,
mod12,
mod13,
mod14,
mod15,
mod16,
mod17,
owner
};
new VehicleInfo[701][vInfo];
Nije to to, nemas niti jedan array u kojem pamtis podatke o tim ne kupljenim vozilima. Tak' da ne mozes nikako provjeriti da li je neko vozilo zakljucano osim ako neki online igrac nije vlasnik tog vozila.
Pa to mi i treba, jer vozilo se stvara samo kada je se igrac spoji, znaci vozilo ne ostaje kada izadje... Kako bih to mogao napraviti?
Moras napraviti svoj COS sustav, to je nesto slicno house sustavu ili biznis sustavu.
Nemoj mi samo reci da je to k'o ono u Ravensu "IsAnOwnableCar" ??? :/
Ne znam kak' je to napravljeno u Raven's-u, al' moguce.
Ah, a ne znas nikakav drugi nacin? Mozda nesto slicno, ali da je lakse.... Usput, hvala ti na brzim odgovorima!
Ne mozes lakse napravit COS, jedino da skines vec napravljen i onda ga modificiras za sebe.
pod onplayerentervehicle stavi ovo
new Float:Pos[3],string[128]; GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
if(Carlist[vehicleid][Lock] == 1) return SCM(playerid,-1,"[osobno vozilo] Zakljucano, Vlasnik:%s",Carlist[vehicleid][Vlasnik]),SetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
Probao sam to Nixtone...
[quote author=[X]Low link=topic=69570.msg485082#msg485082 date=1362517535]
Probao sam to Nixtone...
[/quote] sta je prob onda radil ili?
Aj sacekaj da opet probam, ali mislim da sam to i ja napravio neki dan pa nije radilo... Al nema veze, vrijedi probati opet zar ne? :)
[quote author=[X]Low link=topic=69570.msg485089#msg485089 date=1362518026]
Aj sacekaj da opet probam, ali mislim da sam to i ja napravio neki dan pa nije radilo... Al nema veze, vrijedi probati opet zar ne? :)
[/quote]triput mjeri jednom sijeci :D
Za ovo Å¡to ti trebaÅ¡ Äak ni ne trebaÅ¡ provjeravati dali je COS vozilo jer zapravo to možeÅ¡ lako saznati preko enumatora za vozilo, primjer:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(VehicleInfo[vehicleid][Lock] >= 1) /* Ovo ce ti raditi samo ako spremas vozila po ID-evima */
{
new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
SetPlayerPos(playerid, Pos[0]+0.5, Pos[1]-0.5, Pos[2]);
GameTextForPlayer(playerid, "Zajljucano!", 2000, 3);
}
return (true);
}
Ovo mi je jedino palo na pamet pošto vidim da se baš ne snalaziš.
Ovo će ti raditi po logici, da svako vozilo u koje ulaziÅ¡ će provjeravati dali je zakljuÄano iz COS enumatora, po logici, samo COS vozila možeÅ¡ zakljuÄati, pa će samo njima varijabla Lock biti povećana, a na kraju kada ulazi ako je povećana (ako je zakljuÄan) to može biti samo COS.
Ne pada mi na pamet ništa jednostavnije od ovoga.
Razumijem ja tebe, ali ovo je kada igrac zakljuca vozilo...
Carlist[playerid][Lock] = 1; >>>> Znaci trebalo bi biti CarList, al ta provjera uopce ne funkcionira(ona Nixtonova provjera takoÄ'er)
@Slay_, to je oke, al' problem je u tome sto on uopce nema osnovni COS u modu nego nesto kao COS..
@tema, normalno da ti ne radi kad je to samo za igracevo vozilo i to samo za jedno.
Pa dajte, ne zelim raditi COS ispocetka... Ovo sto imam da mogu kupiti 1 auto, 1 motor, 1 bicikl, 1 brod i 1 helic mi je predobro.. ne bih ga htio mijenjati za nista
[quote author=[X]Low link=topic=69570.msg485189#msg485189 date=1362527058]
Pa dajte, ne zelim raditi COS ispocetka... Ovo sto imam da mogu kupiti 1 auto, 1 motor, 1 bicikl, 1 brod i 1 helic mi je predobro.. ne bih ga htio mijenjati za nista
[/quote]
Kada bi dao neki kod tog COSA (suvisli kod) od kojeg bi možda razumjeli na kojem principu uopće on funkcionira možda bi i mogli pomoći, a kako da ja sada znam Å¡ta tvoj COS uopće ima tj. s Äim "raspolažem", nisam vidovit...
Dat cu ti ja sve kodove, nema potrebe za ljutnjom... Inace, mod je CLRP , ako ti to ista pomaze...
Evo neki kodovi...Prvo cu ti dati za vozila kodove, jer ako ovo skužimo onda ce za motore i ostala sranja biti lagano...
// OWNERSHIP AUTI
forward SetVehicleParamsForAll(carid,objective,doorslocked);
forward DelaySetVehicleParams(playerid);
forward CreateTunedCar(playerid);
forward ResetAutohausSpawns();
new Text3D:CarLabels[MAX_VEHICLES];
enum ahCar
{
Typ,
Float:X3,
Float:Y3,
Float:Z3,
Float:Rotation,
Status,
Lock,
Carid,
Paintjob,
Color1,
Color2,
mod1,
mod2,
mod3,
mod4,
mod5,
mod6,
mod7,
mod8,
mod9,
mod10,
mod11,
mod12,
mod13,
mod14,
mod15,
mod16,
mod17,
Vlasnik[MAX_PLAYER_NAME],
};
new Carlist[MAX_PLAYERS][ahCar];
enum ahSpawn
{
Float:X3,
Float:Y3,
Float:Z3,
Float:Rotation,
};
new Carspawns[2][ahSpawn] =
{
{1331.3917,-858.1544,39.2835,179.8459},
{1331.3917,-858.1544,39.2835,179.8459}
};
enum ahModel
{
Name[128],
Autohaus,
Modelid,
Carid,
Price,
Repair,
Float:X3,
Float:Y3,
Float:Z3,
Float:Rotation,
Color1,
Color2,
};
new Buylist[25][ahModel] =
{
//Sports cars
{"Euros",0,587,1,180000,5200,1315.69995117,-873.50,39.40000153,0.0,1,1},
{"Elegy",0,562,1,230000,4300,1309.30004883,-864.29998779,39.29999924,278.0,1,1},
{"Sultan",0,560,1,320000,3300,1309.09997559,-860.29998779,39.40000153,270.0,1,1},
{"Bullet",0,541,1,312999,3200,1320.50000000,-872.59997559,39.29999924,34.0,1,1},
{"Comet",0,480,1,150000,5200,1321.59997559,-868.00000000,39.40000153,56.0,1,1},
{"Infernus",0,411,1,490000,3200,1308.80004883,-856.29998779,39.40000153,270.0,1,1},
{"Turismo",0,451,1,550000,4200,1309.69995117,-868.29998779,39.29999924,294.0,1,1},
{"Banshee",0,429,1,530000,2500,1311.59997559,-871.79998779,39.29999924,322.0,1,1},
//Offroad
{"Landstalker",0,400,1,80000,2200,2249.60009766,-85.59999847,26.60000038,308.00012207,1,1},
{"Rancher",0,489,1,230000,2200,2255.89990234,-85.59999847,26.89999962,308.00000000,1,1},
{"Huntley",0,579,1,120000,3000,2262.19921875,-85.39941406,26.60000038,307.99621582,1,1},
{"Mesa",0,500,-1,60000,2600,2249.10009766,-80.69999695,26.70000076,230.99963379,1,1},
{"Sandking",0,495,-1,430000,2100,2267.69921875,-86.00000000,27.10000038,307.99621582,1,1},
//Autosalon
{"Camper",0,483,-1,53000,2000,980.50000000,-1306.80004883,13.50000000,338.00000000,1,1},
{"Windsor",0,555,-1,89000,2000,985.20001221,-1306.40002441,13.19999981,338.00000000,1,1},
{"Uranus",0,558,-1,65000,2000,989.59997559,-1306.50000000,13.10000038,338.00000000,1,1},
{"Flash",0,565,-1,90000,1900,994.29998779,-1306.80004883,13.10000038,338.00000000,1,1},
{"Blista Compact",0,496,-1,49000,1600,999.20001221,-1307.00000000,13.19999981,338.00000000,1,1},
{"Stratum",0,561,-1,100000,1950,1010.00000000,-1306.80004883,13.30000019,338.00000000,1,1},
{"Merit",0,551,-1,45000,1600,1004.59997559,-1306.30004883,13.30000019,338.00000000,1,1},
//Lowriders
{"Blade",0,536,-1,135000,1200,2134.4890,-1128.9629,25.3552,60.5153,1,1},
{"Remington",0,534,-1,150000,1200,2135.3423,-1135.7841,25.4016,56.2684,1,1},
{"Savanna",0,567,-1,165000,1200,2135.1030,-1143.0087,24.8813,50.7483,1,1},
{"Slamvan",0,535,-1,201000,1200,2120.3633,-1129.1707,25.2040,299.1808,1,1},
{"Voodoo",0,412,-1,115000,1200,2119.3660,-1136.9222,24.9411,301.1239,1,1}
};
enum vInfo
{
mod1,
mod2,
mod3,
mod4,
mod5,
mod6,
mod7,
mod8,
mod9,
mod10,
mod11,
mod12,
mod13,
mod14,
mod15,
mod16,
mod17,
owner
};
new VehicleInfo[701][vInfo];
[b]Evo ti i save..[/b]
[code]
ublic OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid, playername, sizeof(playername));
format(dateiname, sizeof(dateiname), "Vozila/%s.ini", playername);
new File: CarFile = fopen(dateiname, io_write);
format(var, 256, "AH_Typ=%i\n", Carlist[playerid][Typ]); fwrite(CarFile, var);
format(var, 256, "AH_X=%f\n", Carlist[playerid][X3]); fwrite(CarFile, var);
format(var, 256, "AH_Y=%f\n", Carlist[playerid][Y3]); fwrite(CarFile, var);
format(var, 256, "AH_Z=%f\n", Carlist[playerid][Z3]); fwrite(CarFile, var);
format(var, 256, "AH_Rot=%f\n", Carlist[playerid][Rotation]); fwrite(CarFile, var);
format(var, 256, "AH_Status=%i\n", Carlist[playerid][Status]); fwrite(CarFile, var);
format(var, 256, "AH_Lock=%i\n", Carlist[playerid][Lock]); fwrite(CarFile, var);
format(var, 256, "AH_Paintjob=%i\n", Carlist[playerid][Paintjob]); fwrite(CarFile, var);
format(var, 256, "AH_Color1=%i\n", Carlist[playerid][Color1]); fwrite(CarFile, var);
format(var, 256, "AH_Color2=%i\n", Carlist[playerid][Color2]); fwrite(CarFile, var);
format(var, 256, "AH_mod1=%i\n", Carlist[playerid][mod1]); fwrite(CarFile, var);
format(var, 256, "AH_mod2=%i\n", Carlist[playerid][mod2]); fwrite(CarFile, var);
format(var, 256, "AH_mod3=%i\n", Carlist[playerid][mod3]); fwrite(CarFile, var);
format(var, 256, "AH_mod4=%i\n", Carlist[playerid][mod4]); fwrite(CarFile, var);
format(var, 256, "AH_mod5=%i\n", Carlist[playerid][mod5]); fwrite(CarFile, var);
format(var, 256, "AH_mod6=%i\n", Carlist[playerid][mod6]); fwrite(CarFile, var);
format(var, 256, "AH_mod7=%i\n", Carlist[playerid][mod7]); fwrite(CarFile, var);
format(var, 256, "AH_mod8=%i\n", Carlist[playerid][mod8]); fwrite(CarFile, var);
format(var, 256, "AH_mod9=%i\n", Carlist[playerid][mod9]); fwrite(CarFile, var);
format(var, 256, "AH_mod10=%i\n", Carlist[playerid][mod10]); fwrite(CarFile, var);
format(var, 256, "AH_mod11=%i\n", Carlist[playerid][mod11]); fwrite(CarFile, var);
format(var, 256, "AH_mod12=%i\n", Carlist[playerid][mod12]); fwrite(CarFile, var);
format(var, 256, "AH_mod13=%i\n", Carlist[playerid][mod13]); fwrite(CarFile, var);
format(var, 256, "AH_mod14=%i\n", Carlist[playerid][mod14]); fwrite(CarFile, var);
format(var, 256, "AH_mod15=%i\n", Carlist[playerid][mod15]); fwrite(CarFile, var);
format(var, 256, "AH_mod16=%i\n", Carlist[playerid][mod16]); fwrite(CarFile, var);
format(var, 256, "AH_mod17=%i\n", Carlist[playerid][mod17]); fwrite(CarFile, var);
format(var, 256, "AH_Vlasnik=%s\n", Carlist[playerid][Vlasnik]); fwrite(CarFile, var);
fclose(CarFile);
if(Carlist[playerid][Typ]!=-1)
{
DestroyVehicle(Carlist[playerid][Carid]);
}
// ima tu jos stvari.... al nisu bitne
}
Ovo je kada se igras ulogira
public CreateTunedCar(playerid)
{
if(IsPlayerConnected(playerid))
{
new carid=CreateVehicle(Buylist[Carlist[playerid][Typ]][Modelid],Carlist[playerid][X3],Carlist[playerid][Y3],Carlist[playerid][Z3],Carlist[playerid][Rotation],Carlist[playerid][Color1],Carlist[playerid][Color2],600);
if(Carlist[playerid][mod1]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod1]); }
if(Carlist[playerid][mod2]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod2]); }
if(Carlist[playerid][mod3]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod3]); }
if(Carlist[playerid][mod4]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod4]); }
if(Carlist[playerid][mod5]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod5]); }
if(Carlist[playerid][mod6]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod6]); }
if(Carlist[playerid][mod7]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod7]); }
if(Carlist[playerid][mod8]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod8]); }
if(Carlist[playerid][mod9]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod9]); }
if(Carlist[playerid][mod10]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod10]); }
if(Carlist[playerid][mod11]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod11]); }
if(Carlist[playerid][mod12]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod12]); }
if(Carlist[playerid][mod13]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod13]); }
if(Carlist[playerid][mod14]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod14]); }
if(Carlist[playerid][mod15]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod15]); }
if(Carlist[playerid][mod16]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod16]); }
if(Carlist[playerid][mod17]!=-1) { AddVehicleComponent(carid,Carlist[playerid][mod17]); }
if(Carlist[playerid][Paintjob]!=-1) { ChangeVehiclePaintjob(carid,Carlist[playerid][Paintjob]); }
if(Carlist[playerid][Color1]!=-1) { ChangeVehicleColor(carid,Carlist[playerid][Color1],Carlist[playerid][Color2]); }
return carid;
}
return -1;
}
Stavi ovak:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new playerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
if (CarList[playerid][Lock] >= 1 && strcmp(CarList[playerid][Vlasnik, playerName))
{
new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
SetPlayerPos(playerid, Pos[0]+0.5, Pos[1]-0.5, Pos[2]);
GameTextForPlayer(playerid, "Zajljucano!", 2000, 3);
}
return 1;
}
Hvala ti, testirat cu sutra s nekim.. A kako da onda sastavim "Ovo vozilo je zakljucano. Vlasnik: %s " ? Mislim da meni nece valjati kao i do sada... :/
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new playerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, playerName, MAX_PLAYER_NAME), string[MAX_PLAYER_NAME+32];
if (CarList[vehicleid][Lock] >= 1 && strcmp(CarList[vehicleid][Vlasnik], playerName))
{
new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
SetPlayerPos(playerid, Pos[0]+0.5, Pos[1]-0.5, Pos[2]);
format(string, (sizeof string), "~r~Zakljucano!~n~~w~Vlasnik: ~g~%s", CarList[vehicleid][Vlasnik]);
GameTextForPlayer(playerid, string, 2000, 3);
}
return (true);
}
Aj hvala ti, idemo testirati sada radi li kako treba :)
Samo da ti kazem da u CLRPa COS ne valja nicemu,.....nestaju auta mozes vise puta prodat jedno auto
Citat: Slay_ poslato Mart 07, 2013, 13:51:04 POSLE PODNE
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new playerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, playerName, MAX_PLAYER_NAME), string[MAX_PLAYER_NAME+32];
if (CarList[vehicleid][Lock] >= 1 && strcmp(CarList[vehicleid][Vlasnik], playerName))
{
new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
SetPlayerPos(playerid, Pos[0]+0.5, Pos[1]-0.5, Pos[2]);
format(string, (sizeof string), "~r~Zakljucano!~n~~w~Vlasnik: ~g~%s", CarList[vehicleid][Vlasnik]);
GameTextForPlayer(playerid, string, 2000, 3);
}
return (true);
}
Ovo ne fukncionira, mozda da testiram od Joeya, ali hoce li"playerid" umjesto "vehicleid" uciniti razliku, probat cu....Citat: BC Aldin Delic poslato Mart 07, 2013, 14:50:05 POSLE PODNE
Samo da ti kazem da u CLRPa COS ne valja nicemu,.....nestaju auta mozes vise puta prodat jedno auto
Popravio sam sve bugove, nastane bug oko vozila samo ako napravim GMX, tako da izbjegavam... P.S. Znas mozda ovakav COS, da mozes imati 1 auto, 1 moto blabla ?
Zapravo hoće, prepravi to u playerid nisam vidio
new Carlist[MAX_PLAYERS][ahCar];
InaÄe, jako glup naÄin rada COS-a.
Evo idem prepraviti...
A znam, malo sjebano, ali promijenit cu ga kasnije... odnosno napravit cu svoj
Ne radi, mislim kada je vozilo zakljucano bilo tko moze uci :/
CLRP cos ti ne valja mozes da ga brises jer ima dosta bugova vracaju se pare poslije kupovine nakon nekok vremena vozila nestaju ma mijenjaj cos.
Kao što sam rekao, svi bugovi su rijeseni osim eto taj COS... Htio bih takav COS, jedan motor jedan auto blabla
Htio bih ljude koji su mi vec pomagali da mi opet pomognu... Znaci namjeravam obrisati one kodove da se vozilo obrise kada igrac ode offline i da mu se opet stvori.. Znaci napravit cu kao u Ravensu da vozilo ostane na serveru iako je igrac offline... E sad, je li to dobar potez ili ne'? Mislim, moze li doci do bugova ili kakvog mijesanja ID-eva ???
Ako se dobro napravi, onda ne moze doc' do mijesanja ID-eva vozila. A sama ideja je cist oke.
U redu, možeš zakljucati temu slobodno.
Lock na zahtjev autora.