Funkis prieš 10 metų
Pasidaryt pasidareu, bet biški kitaip ir če žopa gaunasi didelė žopa:
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(GetVehicleModel(vehicleid) == 420) // Tikriname ar taxi masina
{
new money = floatround(taxi_distance[playerid]*5, floatround_ceil)*2; // Skaiciuojame kiek pinigu vairuotojas turi gauti uz nuvaziuota atstuma
printf("%f",taxi_distance[playerid]);
if(IsPlayerTaxi_passenger[playerid] == 1 ) // Tikriname ar islipes zaidejas yra keleivis
{
format(zinute, 120, "{5980FF}•{ffffff} gavote {5980FF}%i €{ffffff}, kadangi keleivis išlipo iš tr. priemonės.", money); // Suformatuojame zinute
SendClientMessage(TaxiDriver[playerid], -1, zinute); // Issiunciame zinute
format(zinute, 120, "{5980FF}•{ffffff} sumokėjote {5980FF}%i €{ffffff}, kadangi išlipote iš taxi.", money); // Suformatuojame zinute
SendClientMessage(playerid, -1, zinute); // Issiunciame zinute
givePlayerMoney(playerid, -money); // Nuimame keleiviui pinigus
givePlayerMoney(TaxiDriver[playerid], money); // Duodame vairuotojui pinigus
new idas = TaxiDriver[playerid];
for(new i; i < 3; i++) { // Darome cikla is visu 3 keleivio vietu
if(TaxiPassengers[idas][i] == playerid) { // Tikriname ar zaidejo id yra lygi vienai is keleivio vietu
TaxiPassengers[idas][i] = -1; // Nuimame zaidejo id reiksme nuo keleivio vietos
break; // sustabdome cikla
}
}
TaxiDriver[playerid] = -1; // Zaidejui nuimame vairuotojo reiksme
IsPlayerTaxi_passenger[playerid] = 0; // Nustatome, kad zaidejas nebera keleivis
taxi_distance[playerid] = 0.0; // Nustatome, kad atstumas yra pradinis
PlayerTextDrawHide(playerid, taksometras1[playerid]);
PlayerTextDrawHide(playerid, taksometras2[playerid]);
PlayerTextDrawHide(playerid, taksometras3[playerid]);
return 1;
}
}
return 1;
}
ir šioje vietoje:
new money = floatround(taxi_distance[playerid]*5, floatround_ceil)*2;
Tas money nepasirodo toks, koks turi būti iš tikrųjų, panaudojus printf išgaunu štai tokį dalyką:
[20:06:17] 0.000000
[20:06:21] 3.654547
Pirmas printas, net neįsivaizduoju kodėl, bet būna 0.0000, bet va po kelių sekundžių išlenda normalus print'as, ta patį bandžiau ir po OnPlayerStateChange, bet ten išvis pasirodė tik vienas print'as : 0.0000
Kaip sudarau tą taxi_distance:
updateSpeedomether(playerid)
{
new
trID = GetPlayerVehicleID ( playerid ) , vMod = GetVehicleModel ( trID ) ,
Float:speed_ [ 4 ], engine, lights, alarm, doors, bonnet, boot, objective;
if(masina[trID][Gas] < 0.1)
{
GetVehicleParamsEx(trID, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(trID, 0, lights, alarm, doors, bonnet, boot, objective); // ONLY the engine param was changed (to 1)
}
//GetVehicleHealth ( vehID , carHP ) ;
GetVehicleVelocity ( trID , speed_ [ 0 ] , speed_ [ 1 ] , speed_ [ 2 ] );
speed_ [ 3 ] = floatsqroot ( ( speed_ [ 0 ] * speed_ [ 0 ] ) + ( speed_ [ 1 ] * speed_ [ 1 ] ) + ( speed_ [ 2 ] * speed_ [ 2 ] ) ) * 200.666667 ;
masina [ trID ] [ vehRida ] += speed_ [ 3 ] / 35000;
format ( g_szBuffer , sizeof ( g_szBuffer ) , "~y~%d~w~ KM/H" , GetPlayerSpeed ( playerid ) ) ;
PlayerTextDrawSetString ( playerid , speede[1][playerid] , g_szBuffer ) ;
//format ( string , sizeof ( string ) , "%0.1f%" , carHP/10 ) ;
//PlayerTextDrawSetString ( playerid , speedo [ 6 ] [playerid] , string ) ;
format ( g_szBuffer , sizeof ( g_szBuffer ) , "~y~ %0.2f~w~ L." , masina[trID][Gas] ) ; // speedo [ 10 ] [playerid]
PlayerTextDrawSetString ( playerid , speede[2][playerid] , g_szBuffer ) ;
format ( g_szBuffer , sizeof ( g_szBuffer ) , "~y~%s" , aVehicleNames [ vMod - 400 ] ) ; // speedo [ 10 ] [playerid]
PlayerTextDrawSetString ( playerid , speede[0][playerid] , g_szBuffer ) ;
format ( g_szBuffer , sizeof ( g_szBuffer ) , "~y~ %0.2f ~w~KM." , masina [ trID ] [ vehRida ] ) ;
PlayerTextDrawSetString ( playerid , speede[3][playerid] , g_szBuffer ) ;
if(GetVehicleModel(trID) == 420 && TaxiPassenger[playerid] != -1)
{
taxi_distance[playerid] += speed_ [ 3 ] / 35000;
format ( g_szBuffer , sizeof ( g_szBuffer ) , "Jusu vairuotojas %s~n~Nuvaziuotas atstumas: %0.2f~n~Moketi: %i EUR" , GetPlayerNameEx(playerid), taxi_distance[playerid], floatround(taxi_distance[playerid]*5, floatround_ceil)*2 ) ;
PlayerTextDrawSetString ( TaxiPassenger[playerid] , taksometras3[TaxiPassenger[playerid]] , g_szBuffer ) ;
}
return 1;
}
Funkis prieš 10 metų
Kaip tokias šiukšles žemė nešioja, niekada nesuprasiu. Gadyca, ten su byrka po šūdus lakstyt, ane? ;]
Funkis prieš 10 metų
Bet tai pala, tu iškeli temą, klausi mūsų nuomonės - ir paaiškinti taip, jog "lyg aš būčiau klausęs", tai čia tipo negalima atsakynėt šitoje temoje ar kas tau yra?
Funkis prieš 10 metų
Aš tai neturiu nieko blogo prieš juos, o tu čia su savo nesamonėm kažką bandai suburt? :D Man jie visiškai netrukdo, jei jie nerodo savo santykių atvirai, atviruose vietuose ir pan.
Funkis prieš 10 metų
Buvau kaip ir sugalvojąs viską, bet mano variantu viskas suveiktu tik ant vieno žaidėjo.
Funkis prieš 10 metų
SendDistanceMessage( playerid, String[ ],Radius,RadiusColor )
stock SendDistanceMessage( playerid, String[ ],Radius,RadiusColor )
{
new Float: Player[ 3 ];
GetPlayerPos( playerid, Player[ 0 ],Player[ 1 ],Player[ 2 ] );
for( new i = 0; i != MAX_PLAYERS; i++ )
{
if( !IsPlayerConnected( i ) ) continue;
if( IsPlayerInRangeOfPoint( i, Radius, Player[ 0 ],Player[ 1 ],Player[ 2 ] ) )
{
SendClientMessage( i, RadiusColor, String );
}
}
}