Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-09-10, 14:52


paskal

gtaoffline.pl






Wiek: 29
Na forum: 5644 dni
Posty: 242

Piwa: 341

Respekt: 126,6
Respekt: 126,6

Ostrzeżeń: 20%
Witajcie

Zrobi?em komend? /parkuj,kt?ra zapisuje dany pojazd do
pliku gracza.Komenda:
Kod:

if(strcmp(cmdtext, "/parkuj", true)==0){
new id;
new Float:VehX,Float:VehY,Float:VehZ,Float:VehRot;
id = GetVehicleModel(playerid); //pobieramy ID pojazdu
GetVehiclePos(playerid, VehX, VehY, VehZ); //zapisujemy wsp??rz?dne X, Y, Z
GetVehicleZAngle(playerid, VehRot); //zapisujemy rotacje pojazdu
dini_FloatSet(udb_encode(Player(playerid)), "ID Pojazdu", id); //zapisujemy ID pojazdu
dini_FloatSet(udb_encode(Player(playerid)), "PosX", VehX); //wsp??rz?dne X
dini_FloatSet(udb_encode(Player(playerid)), "PosY", VehY); //wsp??rz?dne Y
dini_FloatSet(udb_encode(Player(playerid)), "PosZ", VehZ); //wsp??rz?dne Z
dini_FloatSet(udb_encode(Player(playerid)), "Rot", VehRot); //rotacje
return 1;
}


Wywo?ywanie pojazdu w OnPlayerSpawn:
Kod:

new id;
new Float:VehX,Float:VehY,Float:VehZ,Float:VehRot;
id = dini_Int(udb_encode(Player(playerid)),"ID Pojazdu");
VehX = dini_Int(udb_encode(Player(playerid)),"PosX");
VehY = dini_Int(udb_encode(Player(playerid)),"PosY");
VehZ = dini_Int(udb_encode(Player(playerid)),"PosZ");
VehRot = dini_Int(udb_encode(Player(playerid)),"Rot");
CreateVehicle(id,VehX,VehY,VehZ,VehRot,1,1,99999999);


1.Problem w tym ?e ID pojazdu si? nie zapisuje np.
zamiast id 533 jest id 5.
2.Zapisuje si? tylko PosX i nic wi?cej.

Je?eli ma kto? pomys? jak to naprawi? otrzyma piwka :piwo: :piwo: :piwo: :piwo: :piwo:

P.S kod wyda si? dla was idiotyczny,lecz pierwszy raz robi?
system zapisu pojazdu.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 15:17


neroPL







Wiek: 28
Na forum: 5671 dni
Posty: 79
Nick w MP: Kapec

Piwa: 584

Respekt: 75,7

Kod:

dini_FloatSet(udb_encode(Player(playerid)), "ID Pojazdu", id); //zapisujemy ID pojazdu

Serio ? Chcesz zapisac id jako float ? ;| zmie? na :
Kod:

dini_IntSet(udb_encode(Player(playerid)), "ID Pojazdu", id);


next :
Kod:

GetVehiclePos(playerid, VehX, VehY, VehZ); //zapisujemy wsp??rz?dne X, Y, Z

tutaj zrobi?es by pobra?o id gracza zamiast id pojazdu gracza w kt?rym on jest, zamie? na :
Kod:

GetVehiclePos(id VehX, VehY, VehZ); //zapisujemy wsp??rz?dne X, Y, Z

Zobacz teraz czy zadzia?a.Elo

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 15:41


paskal

gtaoffline.pl






Wiek: 29
Na forum: 5644 dni
Posty: 242

Piwa: 341

Respekt: 126,6
Respekt: 126,6

Ostrzeżeń: 20%
Nie zauwa?y?em tych b??d?w xD
A co do tego to w pliku pokazuje si?:

Kod:

ID Pojazdu=0
PosX=0.000000
PosY=0.000000
PosZ=0.000000
Rot=0.000000


Czyli dalej jest co? nie tak.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 16:27


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

GetVehicleModel(playerid); o.O ? Pobierasz model gracza (co jest niemo?liwe), a nie jakiegokolwiek pojazdu, lol .

-> GetVehicleModel(GetPlayerVehicleID(playerid)); jak ju.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 16:32


paskal

gtaoffline.pl






Wiek: 29
Na forum: 5644 dni
Posty: 242

Piwa: 341

Respekt: 126,6
Respekt: 126,6

Ostrzeżeń: 20%
Nie jestem dobry w te klocki :P

Teraz to pokazuje si? w pliku gracza:
Kod:

ID Pojazdu=402
PosX=0.000000
PosY=0.000000
PosZ=0.000000
Rot=0.000000


ID pobiera lecz pozycji dalej nie pobiera.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 17:05


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

G?ra:

Kod:

new _playaVeha[MAX_PLAYERS] = {INVALID_VEHICLE_ID, ...};


Komenda:

Kod:

if(cmdtext[1] == 'p' && cmdtext[2] == 'a' && cmdtext[3] == 'r' && cmdtext[4] == 'k' && cmdtext[5] == 'u' && cmdtext[6] == 'j')
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, -1, "Nie jeste? w poje?dzie!"), true;
new Float:VehPose[4], id = GetPlayerVehicleID(playerid);
if(id != _playaVeha[playerid]) return SendClientMessage(playerid, -1, "Nie mo?esz zaparkowa? nie swojego pojazdu!"), true;
GetVehiclePos(id, VehPose[0], VehPose[1], VehPose[2]); //zapisujemy wsp??rz?dne X, Y, Z
GetVehicleZAngle(id, VehPose[3]); //zapisujemy rotacje pojazdu
dini_IntSet(udb_encode(Player(playerid)), "ID Pojazdu", GetVehicleModel(id)); //zapisujemy ID pojazdu
dini_FloatSet(udb_encode(Player(playerid)), "PosX", VehPose[0]); //wsp??rz?dne X
dini_FloatSet(udb_encode(Player(playerid)), "PosY", VehPose[1]); //wsp??rz?dne Y
dini_FloatSet(udb_encode(Player(playerid)), "PosZ", VehPose[2]); //wsp??rz?dne Z
dini_FloatSet(udb_encode(Player(playerid)), "Rot", VehPose[3]); //rotacje
return true;
}


Wczytywanie:

Kod:

new Float:VehPose[4], id;
id = dini_Int(udb_encode(Player(playerid)),"ID Pojazdu");
VehPose[0] = dini_Float(udb_encode(Player(playerid)),"PosX");
VehPose[1] = dini_Float(udb_encode(Player(playerid)),"PosY");
VehPose[2] = dini_Float(udb_encode(Player(playerid)),"PosZ");
VehPose[3] = dini_Float(udb_encode(Player(playerid)),"Rot");
_playaVeha[playerid] = CreateVehicle(id, VehPose[0], VehPose[1], VehPose[2], VehPose[3], 1, 1, -1);


OnPlayerEnterVehicle:

Kod:

if(!ispassenger)
{
for(new i;i<MAX_PLAYERS;i++)
{
if(i == playerid || _playaVeha[i] == INVALID_VEHICLE_ID || _playaVeha[i] != vehicleid) continue;

ClearAnimations(playerid);
break;
}
}


Dialog:

Kod:

if(dialogid == DIALOG_AUTO_FELTZER)
{
if(response)
{
if(_playaVeha[playerid] != INVALID_VEHICLE_ID) return SendClientMessage(playerid, -1, "Posiadasz ju? prywatny pojazd!"), true;
if(GetPlayerMoney(playerid) <= 25000) return SetTimerEx("Kasa", 100, false, "i", playerid);
kupilpojazd[playerid] = 1;
GivePlayerMoney(playerid, -25000);
SendClientMessage(playerid,COLOR_GREEN,"Kupi?e? Feltzer'a za {0000FF}25.000{FFFFFF}$");
_playaVeha[playerid] = CreateVehicle(533,2149.2175,-1136.0005,25.2832,266.4764,1,1,-1);//Feltzer
dini_IntSet(udb_encode(Player(playerid)), "ID Pojazdu", 533);
}
else SendClientMessage(playerid,COLOR_GREEN,"Pojazd nie zosta? zakupiony.");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
return 1;
}


OnPlayerDisconnect:

Kod:

if(IsValidVehicle(_playaVeha[playerid])) DestroyVehicle(_playaVeha[playerid]);
_playaVeha[playerid] = INVALID_VEHICLE_ID;


Ostatnio zmieniony przez IgrexolonO 2013-09-12, 20:45, w całości zmieniany 8 razy  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 17:25


paskal

gtaoffline.pl






Wiek: 29
Na forum: 5644 dni
Posty: 242

Piwa: 341

Respekt: 126,6
Respekt: 126,6

Ostrzeżeń: 20%
Thanks dude.Teraz dzia?a,lecz mam jeszcze jedno pytanie.
Czy da si? do tego dorobi?,aby osoba,kt?ra posiada ten pojazd
mog?a jako jedyna do niego wej???

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 17:29


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

Ile taki gracz mo?e posiada? maksymalnie 'w?asnych pojazd?w'?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 17:40


paskal

gtaoffline.pl






Wiek: 29
Na forum: 5644 dni
Posty: 242

Piwa: 341

Respekt: 126,6
Respekt: 126,6

Ostrzeżeń: 20%
Maksymalnie mo?e mie? 1 pojazd.
A o jeszcze chodzi?o by mi o to aby zrobi? blokad? na
komend? /parkuj dla samochodu kt?ry ma gracz w
pliku DINI.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 17:59


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

Patrz post wy?ej.

P.S.: Pami?taj o usuwaniu pojazdu przy wyj?ciu gracza z serwera.

Kod:

if(IsValidVehicle(_playaVeha[playerid])) DestroyVehicle(_playaVeha[playerid]);


+ Gdzie? w mapie, o ile nie masz ju? zdefiniowane:

Kod:

native IsValidVehicle(vehicleid);


P.S.2.: To prawda.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 18:11


paskal

gtaoffline.pl






Wiek: 29
Na forum: 5644 dni
Posty: 242

Piwa: 341

Respekt: 126,6
Respekt: 126,6

Ostrzeżeń: 20%
Kod:

_playaVeha[MAX_PLAYERS] = {INVALID_VEHICLE_ID, ...};

gdzie to wklei? bo mam error:
Kod:

error 017: undefined symbol "_playaVeha"

czy to mie? tak? form?:
Kod:

new _playaVeha[MAX_PLAYERS] = {INVALID_VEHICLE_ID, ...};


Ostatnio zmieniony przez paskal 2013-09-10, 18:13, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 18:12


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

Dodaj so new przed to, zapomnia?em co nie. Papie? te? cz?owiek, ma prawo si? pomyli?, jo.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 18:15


paskal

gtaoffline.pl






Wiek: 29
Na forum: 5644 dni
Posty: 242

Piwa: 341

Respekt: 126,6
Respekt: 126,6

Ostrzeżeń: 20%
te? da?em new przed tym w poprzednim po?cie jako pytanie czy to ma by? xD
teraz mam taki error:
Kod:

error 029: invalid expression, assumed zero
warning 215: expression has no effect

linijka:
Kod:

if(i != playerid && _playaVeha[i] != INVALID_VEHICLE_ID && _playaVeha[i] == vehicleid) ClearAnimations(playerid), break;


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 18:18


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

Kod:

if(i != playerid && _playaVeha[i] != INVALID_VEHICLE_ID && _playaVeha[i] == vehicleid){ ClearAnimations(playerid); break; }


A tak, jo?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-09-10, 18:19


paskal

gtaoffline.pl






Wiek: 29
Na forum: 5644 dni
Posty: 242

Piwa: 341

Respekt: 126,6
Respekt: 126,6

Ostrzeżeń: 20%
You are my master dude :D
Jak b?d? mia? jaki? problem to napisze.

[ Dodano: 2013-09-12, 17:48 ]
Przerobi?em kod jak potrzebowa?em.Podam tylko cz???
o kt?r? mi chodzi.Komenda:
Kod:

if(strcmp(cmd, "/parkuj", true)==0)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendClientMessage(playerid, COLOR_LIGHTRED, "Nie jeste? w poje?dzie!"), true;
new Float:VehPose[4], id = GetPlayerVehicleID(playerid);
GetVehiclePos(id, VehPose[0], VehPose[1], VehPose[2]);
GetVehicleZAngle(id, VehPose[3]);
dini_IntSet(udb_encode(Player(playerid)), "ID Pojazdu", GetVehicleModel(id));
dini_FloatSet(udb_encode(Player(playerid)), "PosX", VehPose[0]);
dini_FloatSet(udb_encode(Player(playerid)), "PosY", VehPose[1]);
dini_FloatSet(udb_encode(Player(playerid)), "PosZ", VehPose[2]);
dini_FloatSet(udb_encode(Player(playerid)), "Rot", VehPose[3]);
return 1;
}

Dialog w kt?rym auto zostaje kupione:
Kod:

if(dialogid == DIALOG_AUTO_FELTZER)
{
if(response)
{
if(GetPlayerMoney(playerid) <= 25000) return SetTimerEx("Kasa", 100, false, "i", playerid);
kupilpojazd[playerid] = 1;
GivePlayerMoney(playerid, -25000);
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid,COLOR_GREEN,"Kupi?e? Feltzer'a za {0000FF}25.000{FFFFFF}$");
CreateVehicle(533,2149.2175,-1136.0005,25.2832,266.4764,1,1,-1);//Feltzer
}
else
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid,COLOR_GREEN,"Pojazd nie zosta? zakupiony.");
}
return 1;
}


1.Chodzi mi o to by tylko w?a?ciciel m?g? wej?? do pojazdu,poniewa?
tamte kody nie dzia?a?y.
2.Aby komenda /parkuj dzia?a?a tylko na zakupiony pojazd.

Postaw piwo autorowi tego posta
 

 
Tagi: zapis :: auta :: pliku :: gracza :: dini
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku