Wysłany: 2013-03-30, 20:11
bali15
Wiek: 30 Na forum: 4880 dni Posty: 123
Piwa : 1
Witam, posiadam pewien system aut ale niestety mam z nim problem. Gdy kupi? auto to wy?wietla mi si? 3dText z nickiem w?a?ciciela ale gdy wpisze /vsprzedaj cena to nachodzi na to 3dtext z "Auto nale?y do : dealer(co? tam dalej). Do tego gdy stworz? auto (nie jestem jego w?a?cicielem) to mog? nim normalnie je?dzi? a powinno by? freze ..
Kod na komendy :
Kod:
//Sprzedaj auto
if (strcmp(cmd, "/vsprzedaj", true) ==0)
{
if(!IsPlayerInAnyVehicle(playerid)){return 1;}
if(GetCreatorID(vehicleid)!=0)
{
if (IsPlayerAdmin(playerid))
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)){SendClientMessage(playerid,WHITE,"INFO: /vsprzedaj [CENA]");return 1;}
new Float:vx,Float:vy,Float:vz,Float:va;
GetVehiclePos(GetPlayerVehicleID(playerid),vx,vy,vz);
GetVehicleZAngle(GetPlayerVehicleID(playerid),va);
VehicleSystem[GetCreatorID(vehicleid)][x]=vx;
VehicleSystem[GetCreatorID(vehicleid)][y]=vy;
VehicleSystem[GetCreatorID(vehicleid)][z]=vz;
VehicleSystem[GetCreatorID(vehicleid)][a]=va;
VehicleSystem[GetCreatorID(vehicleid)][preis]=strval(tmp);
VehicleSystem[GetCreatorID(vehicleid)][owned]=0;
VehicleSystem[GetCreatorID(vehicleid)][cLock]=1;
strmid(VehicleSystem[GetCreatorID(vehicleid)][owner],"dealercar",0,128,128);
SendClientMessage(playerid,WHITE,"Ten samoch?d teraz jest na sprzeda?!");
SaveTool();
Delete3DTextLabel(TextUpCar[vehicleid]);
format(TextCar,sizeof(TextCar),"Samoch?d na sprzeda?, Cena: %d",VehicleSystem[GetCreatorID(vehicleid)][preis]);
TextUpCar[vehicleid] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
Attach3DTextLabelToVehicle(TextUpCar[vehicleid],vehicleid,0.0,0.0,0.0);
}
else
{
SendClientMessage(playerid,WHITE,"INFO: Nie jeste? adminem by tego u?ywa?!");
}
}
return 1;
}
//Kup auto
if (strcmp(cmd, "/vkup", true) ==0 )
{
/*if(dini_Int(PFile(playerid),"HaveCar")== 1) return SendClientMessage(playerid,ORANGE,"[ERROR]Posiadasz ju? auto !");*/
/*if(dini_Int(PFile(playerid),"HaveCar")== 1) { }
else { SendClientMessage(playerid, ORANGE,"[ERROR]Posiadasz ju? auto !"); return 1; }*/
new HaveCar = (dini_Int(PFile(playerid),"HaveCar"));
if(!IsPlayerInAnyVehicle(playerid)){return 1;}
if(GetCreatorID(vehicleid)!=0)
{
if(HaveCar == 0)
{
if (strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],Spielername(playerid))){SendClientMessage(playerid,WHITE," Tylko dla admina !");return 1;}
if (strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],"dealercar"))
{
if(VehicleSystem[GetCreatorID(vehicleid)][preis] < GetPlayerMoney(playerid))
{
strmid(VehicleSystem[GetCreatorID(vehicleid)][owner],Spielername(playerid),0,128,128);
VehicleSystem[GetCreatorID(vehicleid)][owned]=1;
SetVehicleNumberPlate(vehicleid, VehicleSystem[GetCreatorID(vehicleid)][owner]);
GivePlayerMoney(playerid,-VehicleSystem[GetCreatorID(vehicleid)][preis]);
SendClientMessage(playerid,YELLOW," Gratulacje ! Kupi?e? w?a?nie samoch?d!");
SendClientMessage(playerid,WHITE," Mo?esz zobaczy? swoje osobiste komendy samochodu poprzez /vpomoc");
TogglePlayerControllable(playerid,1);
Delete3DTextLabel(TextUpCar[vehicleid]);
SaveTool();
}
else
{
SendClientMessage(playerid,WHITE,"Nie masz wystarczaj?cej got?wki !");
}
}
else
{
SendClientMessage(playerid,WHITE,"Ten samoch?d nie jest na sprzeda?!");
}
}
else
{
SendClientMessage(playerid, ORANGE,"[ERROR]Ju? posiadasz auto !");
}
}
else
{
SendClientMessage(playerid,WHITE,"Nie na sprzeda? !");
}
if(!dini_Exists(PFile(playerid)))
{
dini_Create(PFile(playerid));
dini_IntSet(PFile(playerid),"HaveCar",1);
dini_IntSet(PFile(playerid),"CarID",vehicleid);
}
else if(dini_Exists(PFile(playerid)))
{
dini_IntSet(PFile(playerid),"HaveCar",1);
dini_IntSet(PFile(playerid),"CarID",vehicleid);
}
return 1;
}
Wysłany: 2013-03-31, 11:04
Wafelowski
Wiek: 29 Na forum: 5347 dni Posty: 428
Piwa : 100
Spr?buj zamieni? t? komend? /vsprzedaj na t?:
Kod:
//Sprzedaj auto
if (strcmp(cmd, "/vsprzedaj", true) ==0)
{
if(!IsPlayerInAnyVehicle(playerid)){return 1;}
if(GetCreatorID(vehicleid)!=0)
{
if (IsPlayerAdmin(playerid))
{
tmp = strtok(cmdtext,idx);
if(!strlen(tmp)){SendClientMessage(playerid,WHITE,"INFO: /vsprzedaj [CENA]");return 1;}
new Float:vx,Float:vy,Float:vz,Float:va;
GetVehiclePos(GetPlayerVehicleID(playerid),vx,vy,vz);
GetVehicleZAngle(GetPlayerVehicleID(playerid),va);
VehicleSystem[GetCreatorID(vehicleid)][x]=vx;
VehicleSystem[GetCreatorID(vehicleid)][y]=vy;
VehicleSystem[GetCreatorID(vehicleid)][z]=vz;
VehicleSystem[GetCreatorID(vehicleid)][a]=va;
VehicleSystem[GetCreatorID(vehicleid)][preis]=strval(tmp);
VehicleSystem[GetCreatorID(vehicleid)][owned]=0;
VehicleSystem[GetCreatorID(vehicleid)][cLock]=1;
strmid(VehicleSystem[GetCreatorID(vehicleid)][owner],"dealercar",0,128,128);
SendClientMessage(playerid,WHITE,"Ten samoch?d teraz jest na sprzeda?!");
SaveTool();
format(TextCar,sizeof(TextCar),"Samoch?d na sprzeda?, Cena: %d",VehicleSystem[GetCreatorID(vehicleid)][preis]);
Update3DTextLabelText(Text3D:TextUpCar[vehicleid], -1, TextCar);
}
else
{
SendClientMessage(playerid,WHITE,"INFO: Nie jeste? adminem by tego u?ywa?!");
}
}
return 1;
}
Usun??em z niej Delete3DTextLabel i Create3DTextLabel, Attach3DTextLabel... poniewa? te 3 funkcje mo?na zamieni? jako Update3DTextLabelText poniewa? jest to pewien bug sampa, ?e jak chcesz usun?? powiedzmy ikon? na mapie (jest ona przypisana do tablicy np. ikona1) no i jak zrobisz t? komend? z usuni?ciem oraz od razu po niej tworzenie ikony z t? sam? tablic? ikona1 to kod si? nie wykona.
W skr?cie:
Kod:
if (strcmp(cmd, "/usunstworz", true) ==0)
{
DestroyDynamicMapIcon(ikona1);
ikona1 = CreateDynamicMapIcon(x, y, z, 31, -1);
return 1;
}
- Nie zadzia?a. Dlatego mo?na stworzy? timer kt?ry wykona si? za 2-3 sekundy i wtedy stworzy MapIcona czy co tam chcesz .
Co do tego freeza w poje?dzie poka? callbacka OnPlayerStateChange je?eli co? tam masz a je?eli nie to callbacka OnPlayerEnterVehicle
Wysłany: 2013-03-31, 17:49
bali15
Wiek: 30 Na forum: 4880 dni Posty: 123
Piwa : 1
Prosze bardzo ;
Kod: public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(GetCreatorID(vehicleid)!=0)
{
Tunen(vehicleid);
if ((strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],Spielername(playerid))))
{
SendClientMessage(playerid,GREEN,"Witamy ponownie w samochodzie wybierz /vpomoc by zobaczy? Twoje komendy.");
for(new c = 0; c < MAX_VEHICLES; c++)
{
Delete3DTextLabel(TextUpCar[c]);
}
}
else if(strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],"dealercar"))
{
if(!IsPlayerAdmin(playerid)){
TogglePlayerControllable(playerid,0);}
new fffx[128];
format(fffx,sizeof(fffx),"Auto na sprzeda?, cena : %d$",VehicleSystem[GetCreatorID(vehicleid)][preis]);
SendClientMessage(playerid,WHITE,fffx);
SendClientMessage(playerid,YELLOW,"INFO: U?yj: /vkup by kupi? go albo wyj?? z niego :'/exitcar'.");
}
else
{
TogglePlayerControllable(playerid,0);
TogglePlayerControllable(playerid,1);
new ex[128];
format(ex,sizeof(ex)," Ten samch?d nale?y do: %s",VehicleSystem[GetCreatorID(vehicleid)][owner]);
SendClientMessage(playerid,YELLOW,ex);
for(new c = 0; c < MAX_VEHICLES; c++)
{
Delete3DTextLabel(TextUpCar[c]);
}
}
}
}
return 1;
}
Wysłany: 2013-03-31, 18:03
Wafelowski
Wiek: 29 Na forum: 5347 dni Posty: 428
Piwa : 100
Wy?wietla si? wiadomo?? na czacie ?e ten pojazd nale?y do x?
Kod:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(GetCreatorID(vehicleid)!=0)
{
Tunen(vehicleid);
if ((strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],Spielername(playerid))))
{
SendClientMessage(playerid,GREEN,"Witamy ponownie w samochodzie wybierz /vpomoc by zobaczy? Twoje komendy.");
for(new c = 0; c < MAX_VEHICLES; c++)
{
Delete3DTextLabel(TextUpCar[c]);
}
}
else if(strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],"dealercar"))
{
if(!IsPlayerAdmin(playerid)){
TogglePlayerControllable(playerid,0);}
new fffx[128];
format(fffx,sizeof(fffx),"Auto na sprzeda?, cena : %d$",VehicleSystem[GetCreatorID(vehicleid)][preis]);
SendClientMessage(playerid,WHITE,fffx);
SendClientMessage(playerid,YELLOW,"INFO: U?yj: /vkup by kupi? go albo wyj?? z niego :'/exitcar'.");
}
else
{
new ex[128];
format(ex,sizeof(ex)," Ten samch?d nale?y do: %s",VehicleSystem[GetCreatorID(vehicleid)][owner]);
SendClientMessage(playerid,YELLOW,ex);
for(new c = 0; c < MAX_VEHICLES; c++)
{
Delete3DTextLabel(TextUpCar[c]);
}
RemovePlayerFromVehicle(playerid);
}
}
}
return 1;
}
- Sprawd? to.
Wysłany: 2013-03-31, 18:13
bali15
Wiek: 30 Na forum: 4880 dni Posty: 123
Piwa : 1
Teraz to do auta w og?le nie da si? wej?? ;/ Jest zamkni?te (Nawet na "g" nie da si? wej?? )
Tagi: komenda
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: