Wysłany: 2016-09-27, 19:34
szymixooo
Uczeń Pawn
Wiek: 33 Na forum: 3644 dni Posty: 41
Nick w MP: szymixooo
Piwa : 62
Siema, mam maly problem z predkosciomierzem. Ot?? jak mam zaladowany towar w aucie i wysiadam z auta to licznik sie chowa, a jak ju? mam towar to licznik si? nie chowa. Oto kody odpowiedzialne za licznik:
Oczywi?cie na g?rze GM
Pawn new Text : Predkosciomierz [ MAX_PLAYERS ];
Textdraw w publicku "OnPlayerConnect"
Pawn Predkosciomierz [ playerid ] = TextDrawCreate ( 469.667114 , 356.325653 , "Pojazd: " );
TextDrawLetterSize ( Predkosciomierz [ playerid ], 0.449999 , 1.600000 );
TextDrawAlignment ( Predkosciomierz [ playerid ], 1 );
TextDrawColor ( Predkosciomierz [ playerid ], - 16776961 );
TextDrawSetShadow ( Predkosciomierz [ playerid ], 0 );
TextDrawSetOutline ( Predkosciomierz [ playerid ], 1 );
TextDrawBackgroundColor ( Predkosciomierz [ playerid ], 51 );
TextDrawFont ( Predkosciomierz [ playerid ], 1 );
TextDrawSetProportional ( Predkosciomierz [ playerid ], 1 );
W publicku "OnPlayerUpdate"
Pawn public OnPlayerUpdate ( playerid )
{
new vehicleid = GetPlayerVehicleID ( playerid );
new Float : predx ;
new Float : predy ;
new Float : predz ;
new Float : pred_a ;
new pred_b ;
new predstring [ 500 ];
new Float : StanPojazdu ;
new TowarText [ 200 ];
if( vehicleid != 0 )
{
TextDrawShowForPlayer ( playerid , Predkosciomierz [ playerid ]);
GetVehicleVelocity ( vehicleid , predx , predy , predz );
pred_a = floatsqroot ((( predx * predx )+( predy * predy ))+( predz * predz ))* 136.666667 ;
pred_b = floatround ( pred_a , floatround_round );
GetVehicleHealth ( vehicleid , StanPojazdu );
format ( predstring , sizeof ( predstring ), "~r~Nazwa: ~b~%s~n~~r~Predkosc: ~b~%i~n~~r~Towar: ~b~Brak~n~~r~Stan Pojazdu: ~b~%.0f" , Nazwapojazdu [ GetVehicleModel ( vehicleid )- 400 ], pred_b , StanPojazdu );
TextDrawSetString ( Predkosciomierz [ playerid ], predstring );
}
if( DaneGracza [ playerid ][ Towar ] > 0 )
{
TextDrawShowForPlayer ( playerid , Predkosciomierz [ playerid ]);
GetVehicleVelocity ( vehicleid , predx , predy , predz );
pred_a = floatsqroot ((( predx * predx )+( predy * predy ))+( predz * predz ))* 136.666667 ;
pred_b = floatround ( pred_a , floatround_round );
GetVehicleHealth ( vehicleid , StanPojazdu );
if( DaneGracza [ playerid ][ Towar ] == 1 ){ TowarText = "Mleko" ;}
if( DaneGracza [ playerid ][ Towar ] == 2 ){ TowarText = "Oleje" ;}
if( DaneGracza [ playerid ][ Towar ] == 3 ){ TowarText = "Jogurty" ;}
if( DaneGracza [ playerid ][ Towar ] == 4 ){ TowarText = "Paliwo" ;}
if( DaneGracza [ playerid ][ Towar ] == 5 ){ TowarText = "Swinie" ;}
format ( predstring , sizeof ( predstring ), "~r~Nazwa: ~b~%s~n~~r~Predkosc: ~b~%i~n~~r~Towar: ~b~%s~n~~r~Stan Pojazdu: ~b~%.0f" , Nazwapojazdu [ GetVehicleModel ( vehicleid )- 400 ], pred_b , TowarText , StanPojazdu );
TextDrawSetString ( Predkosciomierz [ playerid ], predstring );
}
if( DaneGracza [ playerid ][ Towar ] == 0 )
{
if(! IsPlayerInAnyVehicle ( playerid ))
{
TextDrawHideForPlayer ( playerid , Predkosciomierz [ playerid ]);
TextDrawHideForPlayer ( playerid , Predkosciomierz [ playerid ]);
}
}
if( DaneGracza [ playerid ][ Towar ] > 0 )
{
if(! IsPlayerInAnyVehicle ( playerid ))
{
TextDrawHideForPlayer ( playerid , Predkosciomierz [ playerid ]);
TextDrawHideForPlayer ( playerid , Predkosciomierz [ playerid ]);
}
}
return 1 ;
}
Co robi? ?le ?
Wysłany: 2016-09-27, 19:55
Combacior
Wiek: 29 Na forum: 5795 dni Posty: 1516
Piwa : 2161
Gdzie zerujesz t? warto?? dla gracza, bo nie widz?? Gdzie? powiniene? mie? taki kod
Kod: DaneGracza[playerid][Towar] = 0;
Wysłany: 2016-09-27, 21:07
szymixooo
Uczeń Pawn
Wiek: 33 Na forum: 3644 dni Posty: 41
Nick w MP: szymixooo
Piwa : 62
"Combacior" napisał/a :Gdzie zerujesz t? warto?? dla gracza, bo nie widz?? Gdzie? powiniene? mie? taki kod
Kod: DaneGracza[playerid][Towar] = 0;
Poszuka?em tej linijki w ca?ym GM i znalaz?em w:
Publicku "OnPlayerEnterCheckpoint"
Pawn public OnPlayerEnterCheckpoint ( playerid )
{
new vehicleid = GetPlayerVehicleID ( playerid );
new pid = GetVehicleModel ( vehicleid );
new string [ 500 ];
new towartext [ 100 ];
new Gname [ MAX_PLAYER_NAME ];
if( DaneGracza [ playerid ][ Towar ] >= 1 )
{
if( vehicleid == DaneGracza [ playerid ][ pojazdzleceniowy ])
{
if( pid == 482 || pid == 459 || pid == 455 || pid == 456 || pid == 440 || pid == 433 || pid == 414 || pid == 413 ) //Dostawczaki
{
if( IsPlayerInRangeOfPoint ( playerid , 30.0 , DaneGracza [ playerid ][ checkx ], DaneGracza [ playerid ][ checky ], DaneGracza [ playerid ][ checkz ]))
{
SendClientMessage ( playerid , COLOR_GREEN , "Towar zostal pomyslnie rozladowany ! Otrzymano 5000$, 1 Score !" );
if( DaneGracza [ playerid ][ Towar ] == 1 ){ towartext = "Mleko" ;}
if( DaneGracza [ playerid ][ Towar ] == 2 ){ towartext = "Oleje" ;}
if( DaneGracza [ playerid ][ Towar ] == 3 ){ towartext = "Jogurty" ;}
if( DaneGracza [ playerid ][ Towar ] == 4 ){ towartext = "Paliwo" ;}
if( DaneGracza [ playerid ][ Towar ] == 5 ){ towartext = "Swinie" ;}
if( DaneGracza [ playerid ][ Towar ] == 6 ){ towartext = "Krowy" ;}
if( DaneGracza [ playerid ][ Towar ] == 7 ){ towartext = "Komputery" ;}
GivePlayerMoney ( playerid , 5000 );
SetPlayerScore ( playerid , GetPlayerScore ( playerid ) + 1 );
DisablePlayerCheckpoint ( playerid );
DaneGracza [ playerid ][ Towar ] = 0 ;
GetPlayerName ( playerid , Gname , sizeof ( Gname ));
format ( string , sizeof (string), "Gracz %s rozladowal towar %s, i otrzymal/a jako nagrode 5000$ i 1 Score !" , Gname , towartext );
SendClientMessageToAll ( COLOR_YELLOW , string );
PlayerPlaySound ( playerid , 5205 , 0.0 , 0.0 , 0.0 );
return 1 ;
}
else
{
SendClientMessage ( playerid , COLOR_RED , "Nie jestes na miejscu rozladunkowym !" );
return 1 ;
}
}
else if( pid == 515 || pid == 514 || pid == 403 ) //Tiry
{
if( DaneGracza [ playerid ][ przyczepazleceniowy ] == GetVehicleTrailer ( vehicleid ))
{
if( IsPlayerInRangeOfPoint ( playerid , 5.0 , DaneGracza [ playerid ][ checkx ], DaneGracza [ playerid ][ checky ], DaneGracza [ playerid ][ checkz ]))
{
SendClientMessage ( playerid , COLOR_GREEN , "Towar zostal pomyslnie rozladowany ! Otrzymano 5000$, 1 Score !" );
GivePlayerMoney ( playerid , 5000 );
if( DaneGracza [ playerid ][ Towar ] == 1 ){ towartext = "Mleko" ;}
if( DaneGracza [ playerid ][ Towar ] == 2 ){ towartext = "Oleje" ;}
if( DaneGracza [ playerid ][ Towar ] == 3 ){ towartext = "Jogurty" ;}
if( DaneGracza [ playerid ][ Towar ] == 4 ){ towartext = "Paliwo" ;}
if( DaneGracza [ playerid ][ Towar ] == 5 ){ towartext = "Swinie" ;}
if( DaneGracza [ playerid ][ Towar ] == 6 ){ towartext = "Krowy" ;}
if( DaneGracza [ playerid ][ Towar ] == 7 ){ towartext = "Komputery" ;}
SetPlayerScore ( playerid , GetPlayerScore ( playerid ) + 1 );
GameTextForPlayer ( playerid , "~y~Kasa~n~~g~+125" , 5000 , 5 );
DisablePlayerCheckpoint ( playerid );
DaneGracza [ playerid ][ Towar ] = 0 ;
GetPlayerName ( playerid , Gname , sizeof ( Gname ));
format ( string , sizeof (string), "Gracz %s rozladowal towar %s, i otrzymal/a jako nagrode 5000$, 1 Score !" , Gname , towartext );
SendClientMessageToAll ( COLOR_YELLOW , string );
return 1 ;
}
else
{
SendClientMessage ( playerid , COLOR_RED , "Nie jestes na miejscu rozladunkowym !" );
return 1 ;
}
}
else
{
SendClientMessage ( playerid , COLOR_RED , "Gdzie jest twoja przyczepa ?" );
}
return 1 ;
}
}
SendClientMessage ( playerid , COLOR_RED , "Musisz byc w swoim pojezdzie zleceniowym !" );
}
return 1 ;
}
Oraz w komendzie "anuluj zlecenie"
Pawn dcmd_anulujzlecenie ( playerid , params [])
{
#pragma unused params
if( DaneGracza [ playerid ][ Towar ] > 0 )
{
DaneGracza [ playerid ][ Towar ] = 0 ;
DisablePlayerCheckpoint ( playerid );
if( GetPlayerMoney ( playerid ) >= 2000 )
{
GivePlayerMoney ( playerid , - 2000 );
}
SendClientMessage ( playerid , COLOR_RED , "Zanulowales / as swoje zlecenie kosztem 2000 $" );
}
else
{
SendClientMessage ( playerid , COLOR_RED , "Nie masz zadnego zlecenia !" );
}
return 1 ;
}
Podpis
Witam Cię
[you]
. Jestem początkującym programistom PAWN, pomagam tam gdzie potrafię
Wysłany: 2016-09-27, 21:11
macks
Wiek: 18 Na forum: 3577 dni Posty: 1002
Piwa : 2856
Za wy?wietlanie i chowanie TextDrawu odpowiada:
Pawn TextDrawShowForPlayer ( playerid , Predkosciomierz );
Pawn TextDrawHideForPlayer ( playerid , Predkosciomierz );
Przy komendzie, kt?ra nadaje ?adunek daj:
Pawn TextDrawHideForPlayer ( playerid , Predkosciomierz );
I zobacz czy dzia?a
Wysłany: 2016-09-27, 21:16
szymixooo
Uczeń Pawn
Wiek: 33 Na forum: 3644 dni Posty: 41
Nick w MP: szymixooo
Piwa : 62
Wysłany: 2016-09-27, 21:17
macks
Wiek: 18 Na forum: 3577 dni Posty: 1002
Piwa : 2856
"szymixooo" napisał/a : "PUM" napisał/a :Za wy?wietlanie i chowanie TextDrawu odpowiada:
Pawn TextDrawShowForPlayer ( playerid , Predkosciomierz );
Pawn TextDrawHideForPlayer ( playerid , Predkosciomierz );
Przy komendzie, kt?ra nadaje ?adunek daj:
Pawn TextDrawHideForPlayer ( playerid , Predkosciomierz );
I zobacz czy dzia?a
Dalej to samo. Gdy nie mam towaru Textdraw chowa si? normalnie, ale gdy ju? go mam si? nie chowa.
Daj komend?, kt?ra nadaje towar
Wysłany: 2016-09-27, 21:19
szymixooo
Uczeń Pawn
Wiek: 33 Na forum: 3644 dni Posty: 41
Nick w MP: szymixooo
Piwa : 62
Pawn dcmd_zaladuj ( playerid , params [])
{
new vehicleid = GetPlayerVehicleID ( playerid );
new pid = GetVehicleModel ( vehicleid );
new towar [ 200 ];
if( sscanf ( params , "s" , towar ))
{
SendClientMessage ( playerid , COLOR_WHITE , "Uzyj: /Zaladuj NAZWATOWARU" );
}
else if( DaneGracza [ playerid ][ Towar ] == 0 )
{
if( pid == 482 || pid == 459 || pid == 455 || pid == 456 || pid == 440 || pid == 433 || pid == 414 || pid == 413 ) //Dostawczaki
{
for(new pz ; pz < sizeof ( PunktyZaladunku ); pz ++)
{
if( IsPlayerInRangeOfPoint ( playerid , 10 , PunktyZaladunku [ pz ][ 0 ], PunktyZaladunku [ pz ][ 1 ], PunktyZaladunku [ pz ][ 2 ]))
{
if( strcmp ( towar , "mleko" , true ) == 0 )
{
DaneGracza [ playerid ][ Towar ] = 1 ;
StworzCheckpoint ( playerid );
SendClientMessage ( playerid , COLOR_GREEN , "TOWAR: Mleko zaladowane ! Jedz teraz na miejsce rozladunku ! Zaznaczono na mapie !" );
return 1 ;
}
if( strcmp ( towar , "oleje" , true ) == 0 )
{
DaneGracza [ playerid ][ Towar ] = 2 ;
StworzCheckpoint ( playerid );
SendClientMessage ( playerid , COLOR_GREEN , "TOWAR: Oleje zaladowane ! Jedz teraz na miejsce rozladunku ! Zaznaczono na mapie !" );
return 1 ;
}
if( strcmp ( towar , "jogurty" , true ) == 0 )
{
DaneGracza [ playerid ][ Towar ] = 3 ;
StworzCheckpoint ( playerid );
SendClientMessage ( playerid , COLOR_GREEN , "TOWAR: Jogurty zaladowane ! Jedz teraz na miejsce rozladunku ! Zaznaczono na mapie !" );
return 1 ;
}
if( strcmp ( towar , "paliwo" , true ) == 0 )
{
DaneGracza [ playerid ][ Towar ] = 4 ;
StworzCheckpoint ( playerid );
SendClientMessage ( playerid , COLOR_GREEN , "TOWAR: Paliwo zaladowane ! Jedz teraz na miejsce rozladunku ! Zaznaczono na mapie !" );
return 1 ;
}
else
{
SendClientMessage ( playerid , COLOR_RED , "Towar nie istnieje !" );
}
return 1 ;
}
}
SendClientMessage ( playerid , COLOR_RED , "Nie jestes na miejscu Zaladunkowym !" );
}
else
{
if( pid == 515 || pid == 514 || pid == 403 ) //Tiry
{
if( IsTrailerAttachedToVehicle ( vehicleid ))
{
for(new pz ; pz < sizeof ( PunktyZaladunku ); pz ++)
{
if( IsPlayerInRangeOfPoint ( playerid , 10 , PunktyZaladunku [ pz ][ 0 ], PunktyZaladunku [ pz ][ 1 ], PunktyZaladunku [ pz ][ 2 ]))
{
if( strcmp ( towar , "mleko" , true ) == 0 )
{
DaneGracza [ playerid ][ Towar ] = 1 ;
StworzCheckpoint ( playerid );
SendClientMessage ( playerid , COLOR_GREEN , "TOWAR: Mleko zaladowane ! Jedz teraz na miejsce rozladunku ! Zaznaczono na mapie !" );
return 1 ;
}
if( strcmp ( towar , "oleje" , true ) == 0 )
{
DaneGracza [ playerid ][ Towar ] = 2 ;
StworzCheckpoint ( playerid );
SendClientMessage ( playerid , COLOR_GREEN , "TOWAR: Oleje zaladowane ! Jedz teraz na miejsce rozladunku ! Zaznaczono na mapie !" );
return 1 ;
}
if( strcmp ( towar , "jogurty" , true ) == 0 )
{
DaneGracza [ playerid ][ Towar ] = 3 ;
StworzCheckpoint ( playerid );
SendClientMessage ( playerid , COLOR_GREEN , "TOWAR: Jogurty zaladowane ! Jedz teraz na miejsce rozladunku ! Zaznaczono na mapie !" );
return 1 ;
}
if( strcmp ( towar , "paliwo" , true ) == 0 )
{
DaneGracza [ playerid ][ Towar ] = 4 ;
StworzCheckpoint ( playerid );
SendClientMessage ( playerid , COLOR_GREEN , "TOWAR: Paliwo zaladowane ! Jedz teraz na miejsce rozladunku ! Zaznaczono na mapie !" );
return 1 ;
}
else
{
SendClientMessage ( playerid , COLOR_RED , "Towar nie istnieje !" );
}
return 1 ;
}
}
SendClientMessage ( playerid , COLOR_RED , "Nie jestes na miejscu zaladunku !" );
}
else
{
SendClientMessage ( playerid , COLOR_RED , "Musisz miec przyczepy !" );
}
return 1 ;
}
SendClientMessage ( playerid , COLOR_RED , "Nie jestes w odpowiednim pojezdzie !" );
return 1 ;
}
}
else
{
SendClientMessage ( playerid , COLOR_RED , "Przyjales/as juz Zlecenie !" );
}
TextDrawHideForPlayer ( playerid , Predkosciomierz [ playerid ]);
return 1 ;
}
Podpis
Witam Cię
[you]
. Jestem początkującym programistom PAWN, pomagam tam gdzie potrafię
Wysłany: 2016-09-27, 22:53
Mac
Wiek: 28 Na forum: 4136 dni Posty: 133
Nick w MP: Mac
Piwa : 27
Jak ma si? schowa?, skoro je?eli gracz b?dzie mia? towar to zawsze b?dzie si? ten pr?dko?ciomierz b?dzie pokazywa? (warunek). Daj tak i powinno to za?atwi? spraw?:
Pawn
public OnPlayerUpdate ( playerid )
{
new vehicleid = GetPlayerVehicleID ( playerid );
new Float : predx ;
new Float : predy ;
new Float : predz ;
new Float : pred_a ;
new pred_b ;
new predstring [ 256 ];
new Float : StanPojazdu ;
new TowarText [ 32 ];
if( vehicleid != 0 )
{
GetVehicleVelocity ( vehicleid , predx , predy , predz );
pred_a = floatsqroot ((( predx * predx )+( predy * predy ))+( predz * predz ))* 136.666667 ;
pred_b = floatround ( pred_a , floatround_round );
GetVehicleHealth ( vehicleid , StanPojazdu );
if( DaneGracza [ playerid ][ Towar ] > 0 )
{
if( DaneGracza [ playerid ][ Towar ] == 1 ){ TowarText = "Mleko" ;}
if( DaneGracza [ playerid ][ Towar ] == 2 ){ TowarText = "Oleje" ;}
if( DaneGracza [ playerid ][ Towar ] == 3 ){ TowarText = "Jogurty" ;}
if( DaneGracza [ playerid ][ Towar ] == 4 ){ TowarText = "Paliwo" ;}
if( DaneGracza [ playerid ][ Towar ] == 5 ){ TowarText = "Swinie" ;}
}
format ( predstring , sizeof ( predstring ), "~r~Nazwa: ~b~%s~n~~r~Predkosc: ~b~%i~n~~r~Towar: ~b~%s~n~~r~Stan Pojazdu: ~b~%.0f" , Nazwapojazdu [ GetVehicleModel ( vehicleid )- 400 ], pred_b , DaneGracza [ playerid ][ Towar ] == 0 ? ( "Brak" ) : ( TowarText ), StanPojazdu );
TextDrawSetString ( Predkosciomierz [ playerid ], predstring );
TextDrawShowForPlayer ( playerid , Predkosciomierz [ playerid ]);
}
else
{
TextDrawHideForPlayer ( playerid , Predkosciomierz [ playerid ]);
// chocia? chowaine textdrawu da?bym w public OnPlayerStateChange przy zmianie stanu z kierowcy na pieszego, bo tak
// ci?gle b?dzie chowa? textdraw je?eli gracz nie b?dzie w poje?dzie
}
return 1 ;
}
Wysłany: 2016-09-28, 14:59
szymixooo
Uczeń Pawn
Wiek: 33 Na forum: 3644 dni Posty: 41
Nick w MP: szymixooo
Piwa : 62
"Mac" napisał/a :Jak ma si? schowa?, skoro je?eli gracz b?dzie mia? towar to zawsze b?dzie si? ten pr?dko?ciomierz b?dzie pokazywa? (warunek). Daj tak i powinno to za?atwi? spraw?:
Pawn
public OnPlayerUpdate ( playerid )
{
new vehicleid = GetPlayerVehicleID ( playerid );
new Float : predx ;
new Float : predy ;
new Float : predz ;
new Float : pred_a ;
new pred_b ;
new predstring [ 256 ];
new Float : StanPojazdu ;
new TowarText [ 32 ];
if( vehicleid != 0 )
{
GetVehicleVelocity ( vehicleid , predx , predy , predz );
pred_a = floatsqroot ((( predx * predx )+( predy * predy ))+( predz * predz ))* 136.666667 ;
pred_b = floatround ( pred_a , floatround_round );
GetVehicleHealth ( vehicleid , StanPojazdu );
if( DaneGracza [ playerid ][ Towar ] > 0 )
{
if( DaneGracza [ playerid ][ Towar ] == 1 ){ TowarText = "Mleko" ;}
if( DaneGracza [ playerid ][ Towar ] == 2 ){ TowarText = "Oleje" ;}
if( DaneGracza [ playerid ][ Towar ] == 3 ){ TowarText = "Jogurty" ;}
if( DaneGracza [ playerid ][ Towar ] == 4 ){ TowarText = "Paliwo" ;}
if( DaneGracza [ playerid ][ Towar ] == 5 ){ TowarText = "Swinie" ;}
}
format ( predstring , sizeof ( predstring ), "~r~Nazwa: ~b~%s~n~~r~Predkosc: ~b~%i~n~~r~Towar: ~b~%s~n~~r~Stan Pojazdu: ~b~%.0f" , Nazwapojazdu [ GetVehicleModel ( vehicleid )- 400 ], pred_b , DaneGracza [ playerid ][ Towar ] == 0 ? ( "Brak" ) : ( TowarText ), StanPojazdu );
TextDrawSetString ( Predkosciomierz [ playerid ], predstring );
TextDrawShowForPlayer ( playerid , Predkosciomierz [ playerid ]);
}
else
{
TextDrawHideForPlayer ( playerid , Predkosciomierz [ playerid ]);
// chocia? chowaine textdrawu da?bym w public OnPlayerStateChange przy zmianie stanu z kierowcy na pieszego, bo tak
// ci?gle b?dzie chowa? textdraw je?eli gracz nie b?dzie w poje?dzie
}
return 1 ;
}
Dziekuje, dziala. Piwko dla ciebie
Podpis
Witam Cię
[you]
. Jestem początkującym programistom PAWN, pomagam tam gdzie potrafię
Tagi: textdraw :: się :: nie :: chowa
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: