Wysłany: 2012-08-19, 19:52
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
A sprobuj zamiast losowac zmienic kolor stala liczba
Kod: ChangeVehicleColor(GetNearestVehicle(playerid,8),2,1);
format(omg_wtf,50,"222222___ID pojazdu: %d",GetNearestVehicle(playerid,8));
SendClientMessage(playerid,-1,omg_wtf);
}
case 1:
{
ChangeVehicleColor(GetNearestVehicle(playerid,8),5,4);
format(omg_wtf,50,"333333___ID pojazdu: %d",GetNearestVehicle(playerid,8));
SendClientMessage(playerid,-1,omg_wtf);
Wysłany: 2012-08-19, 20:40
jona99
Wiek: 36 Na forum: 5234 dni Posty: 103
Nick w MP: Johny_Bloom
Piwa : 71
tak w?a?nie mi chodzi?o sta?? liczb?, ale nadal nie zmienia koloru
Wysłany: 2012-08-19, 21:30
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
jona99 , nie mam pomyslow xD
Jeszcze chcialbym sie upewnic czy to jest ten samochod ktory zwraca funkcja.
Kod: public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 377)
{
if(!response)
{
new vid=GetNearestVehicle(playerid,8.0);
new Float:abs3[3];
switch(listitem)
{
case 0:
{
GetVehiclePos(vid,abs3[0],abs3[1],abs3[2]);
ChangeVehicleColor(vid,random(127),random(127));
SetPlayerPos(playerid,abs3[0],abs3[1],abs3[2]);
}
case 1:
{
GetVehiclePos(vid,abs3[0],abs3[1],abs3[2]);
ChangeVehicleColor(vid,random(127),random(127));
SetPlayerPos(playerid,abs3[0],abs3[1],abs3[2]);
}
}
}
}
return 1;
}
Sprawdz czy Cie teleportuje do tego samochodu ktory 'malowales'.
Wysłany: 2012-08-19, 21:47
jona99
Wiek: 36 Na forum: 5234 dni Posty: 103
Nick w MP: Johny_Bloom
Piwa : 71
nawet nie teleportuje O.o tu jest chyba b?ad z OnDialogResponse
Wysłany: 2012-08-19, 21:54
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Kod:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 377)
{
if(!response)
{
new vid=GetNearestVehicle(playerid,8.0);
new Float:abs3[3];
switch(listitem)
{
case 0:
{
GetVehiclePos(vid,abs3[0],abs3[1],abs3[2]);
ChangeVehicleColor(vid,random(127),random(127));
SetPlayerPos(playerid,abs3[0],abs3[1],abs3[2]);
}
case 1:
{
GetVehiclePos(vid,abs3[0],abs3[1],abs3[2]);
ChangeVehicleColor(vid,random(127),random(127));
SetPlayerPos(playerid,abs3[0],abs3[1],abs3[2]);
}
}
}
return 1;
}
return 0;
}
sprawdz xd Chyba wiem co bylo nie tak xDDD
Wysłany: 2012-08-20, 14:06
jona99
Wiek: 36 Na forum: 5234 dni Posty: 103
Nick w MP: Johny_Bloom
Piwa : 71
no to ju? raczej wiem dlaczego. widze ze jest blad z ondialogresponse lub po pokazaniu GUI system staje Kod: #include <a_samp>
new Firehold[MAX_PLAYERS];
stock Float:GetDistanceBetweenPoints(Float:X, Float:Y, Float:Z, Float:PointX, Float:PointY, Float:PointZ)
{
new Float:Distance;
Distance = floatabs(floatsub(X, PointX)) + floatabs(floatsub(Y, PointY)) + floatabs(floatsub(Z, PointZ));
return Distance;
}
stock GetNearestVehicle(playerid, Float:Distance = 1000.0)
{
Distance = floatabs(Distance);
if(Distance == 0.0) Distance = 1000.0;
new Float:X[2], Float:Y[2], Float:Z[2];
new Float:NearestPos = Distance;
new NearestVehicle = INVALID_VEHICLE_ID;
GetPlayerPos(playerid, X[0], Y[0], Z[0]);
for(new i; i<MAX_VEHICLES; i++)
{
if(!IsVehicleStreamedIn(i, playerid) || i == GetPlayerVehicleID(playerid)) continue;
GetVehiclePos(i, X[1], Y[1], Z[1]);
if(NearestPos > GetDistanceBetweenPoints(X[0], Y[0], Z[0], X[1], Y[1], Z[1])) NearestPos = GetDistanceBetweenPoints(X[0], Y[0], Z[0], X[1], Y[1], Z[1]), NearestVehicle = i;
}
if(NearestPos < Distance) return NearestVehicle;
return INVALID_VEHICLE_ID;
}
forward ResprayTimer(playerid,vehicleid);
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys){
if(newkeys & KEY_FIRE &&(GetPlayerWeapon(playerid) == 41 && !IsPlayerInAnyVehicle(playerid))){
new nearveh=GetNearestVehicle(playerid,5);
if(IsPlayerFacingVehicle(playerid,nearveh)){
SetTimerEx("ResprayTimer",3000,0,"ii",playerid,GetNearestVehicle(playerid,5));
Firehold[playerid] = 1;
}
}
if(oldkeys & KEY_FIRE && (Firehold[playerid] == 1)) Firehold[playerid] = 0;
return 1;
}
public ResprayTimer(playerid,vehicleid){
if(GetPlayerWeapon(playerid) == 41 && GetNearestVehicle(playerid,8) == vehicleid && Firehold[playerid] == 1){
if(IsPlayerFacingVehicle(playerid,vehicleid)){
//ShowPlayerDialog(playerid, 377, DIALOG_STYLE_LIST, "Wybierz kolor", "R??owy\nZielony", "Wybierz", "");
ChangeVehicleColor(GetNearestVehicle(playerid,127),1,1);
GameTextForPlayer(playerid,"~g~Pojazd zostal przemalowany!",3000,4);
}
}
return 1;
}
stock IsPlayerFacingVehicle(playerid,vehicleid)
{
new Float:pX,Float:pY,Float:pZ,Float:X,Float:Y,Float:Z,Float:ang;
if(!IsPlayerConnected(playerid)) return 0;
GetVehiclePos(vehicleid, X, Y, Z);
GetPlayerPos(playerid, pX, pY, pZ);
if( Y > pY ) ang = (-acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
else if( Y < pY && X < pX ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 450.0);
else if( Y < pY ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
if(X > pX) ang = (floatabs(floatabs(ang) + 180.0));
else ang = (floatabs(ang) - 180.0);
new Float:russia;
GetPlayerFacingAngle(playerid,russia);
if(ang-russia<-130 || ang-russia>130) return 0;
else return 1;
}
i to dziala ale jest to tylko jeden kolor .
Wysłany: 2012-08-20, 14:36
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
jona99 , bledem jest return 1 ktory konczy callback. Powinno tam zwrocic 0 a nie 1!
Wysłany: 2012-08-20, 15:16
jona99
Wiek: 36 Na forum: 5234 dni Posty: 103
Nick w MP: Johny_Bloom
Piwa : 71
no i nadal nie dziala
Wysłany: 2012-08-20, 15:26
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
jona99 , pokaz jak zrobiles
Wysłany: 2012-08-20, 15:39
jona99
Wiek: 36 Na forum: 5234 dni Posty: 103
Nick w MP: Johny_Bloom
Piwa : 71
Kod: #include <a_samp>
new Firehold[MAX_PLAYERS];
stock Float:GetDistanceBetweenPoints(Float:X, Float:Y, Float:Z, Float:PointX, Float:PointY, Float:PointZ)
{
new Float:Distance;
Distance = floatabs(floatsub(X, PointX)) + floatabs(floatsub(Y, PointY)) + floatabs(floatsub(Z, PointZ));
return Distance;
}
stock GetNearestVehicle(playerid, Float:Distance = 1000.0)
{
Distance = floatabs(Distance);
if(Distance == 0.0) Distance = 1000.0;
new Float:X[2], Float:Y[2], Float:Z[2];
new Float:NearestPos = Distance;
new NearestVehicle = INVALID_VEHICLE_ID;
GetPlayerPos(playerid, X[0], Y[0], Z[0]);
for(new i; i<MAX_VEHICLES; i++)
{
if(!IsVehicleStreamedIn(i, playerid) || i == GetPlayerVehicleID(playerid)) continue;
GetVehiclePos(i, X[1], Y[1], Z[1]);
if(NearestPos > GetDistanceBetweenPoints(X[0], Y[0], Z[0], X[1], Y[1], Z[1])) NearestPos = GetDistanceBetweenPoints(X[0], Y[0], Z[0], X[1], Y[1], Z[1]), NearestVehicle = i;
}
if(NearestPos < Distance) return NearestVehicle;
return INVALID_VEHICLE_ID;
}
forward ResprayTimer(playerid,vehicleid);
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys){
if(newkeys & KEY_FIRE &&(GetPlayerWeapon(playerid) == 41 && !IsPlayerInAnyVehicle(playerid))){
new nearveh=GetNearestVehicle(playerid,5);
if(IsPlayerFacingVehicle(playerid,nearveh)){
SetTimerEx("ResprayTimer",3000,0,"ii",playerid,GetNearestVehicle(playerid,5));
Firehold[playerid] = 1;
}
}
if(oldkeys & KEY_FIRE && (Firehold[playerid] == 1)) Firehold[playerid] = 0;
return 1;
}
public ResprayTimer(playerid,vehicleid){
if(GetPlayerWeapon(playerid) == 41 && GetNearestVehicle(playerid,8) == vehicleid && Firehold[playerid] == 1){
if(IsPlayerFacingVehicle(playerid,vehicleid)){
ShowPlayerDialog(playerid, 377, DIALOG_STYLE_LIST, "Wybierz kolor", "Bia?y\nZielony", "Wybierz", "");
GameTextForPlayer(playerid,"~g~Pojazd zostal przemalowany!",3000,4);
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 377)
{
if(!response)
{
switch(listitem)
{
case 0:
{
ChangeVehicleColor(GetNearestVehicle(playerid,127),1,1);
}
case 1:
{
ChangeVehicleColor(GetNearestVehicle(playerid,127),16,16);
}
}
}
return 1;
}
return 0;
}
stock IsPlayerFacingVehicle(playerid,vehicleid)
{
new Float:pX,Float:pY,Float:pZ,Float:X,Float:Y,Float:Z,Float:ang;
if(!IsPlayerConnected(playerid)) return 0;
GetVehiclePos(vehicleid, X, Y, Z);
GetPlayerPos(playerid, pX, pY, pZ);
if( Y > pY ) ang = (-acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
else if( Y < pY && X < pX ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 450.0);
else if( Y < pY ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
if(X > pX) ang = (floatabs(floatabs(ang) + 180.0));
else ang = (floatabs(ang) - 180.0);
new Float:russia;
GetPlayerFacingAngle(playerid,russia);
if(ang-russia<-130 || ang-russia>130) return 0;
else return 1;
}
Wysłany: 2012-08-20, 15:54
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Zabije Ciebie i siebie!
Nie zauwazylem, ze w ShowPlayerDialog jest jeden przycisk!
Musi byc if(response) a nie if(!response)
Ostatnio zmieniony przez xqz 2012-08-20, 15:57, w całości zmieniany 1 raz
Wysłany: 2012-08-20, 15:57
jona99
Wiek: 36 Na forum: 5234 dni Posty: 103
Nick w MP: Johny_Bloom
Piwa : 71
dobra masz piwko za meczenstwo , dalbym reputke ale niestety nie uda?o sie rozwiazac problemu ;f
[ Dodano : 2012-08-20, 16:02 ]
noo! wlasnie sam na tym myslalem, ale niestety nie zrobilem. masz reputke ! ;D
Tagi: malowanie :: auta
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: