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

Wysłany: 2013-02-25, 20:35


Pyramid Head

-- TruckeR --






Wiek: 29
Na forum: 5006 dni
Posty: 16
Nick w MP: [V]ektor

Piwa: 6

Respekt: 69

Ot?? mam taki problem: Mam kod na Licznik pojazdu i pojawia si? On zanim wejde do pojazdu i to w zniekszta?conej formie. Wygl?da to tak:

http://iv.pl/images/34724022904082530027.png

A gdy wejde do pojazdu pojawia si? obok ten wymagany przeze mnie TD Draw. Wygl?da to tak:
http://iv.pl/images/82907923058742948080.png

Chodzi mi o zlikwidowanie tego niechcianego Drawa ze ?rodka.

Kod:

Kod:

#include <a_samp>
#include <colors>

#if defined FILTERSCRIPT
#endif
new Text:pojazd[200];
new BrakPaliwa[MAX_PLAYERS];
forward Stacjepaliw(playerid);
#define auta 1000
#define benzine 150
#define MinusGas 15000
#define FUELCOST 3

#define CZERWONY 0xE62020FF
#define SZARY 0x8C8586FF
#define ZOLTY 0xE4F23FFF
new Gas[auta];
new string[256];
enum SavePlayerPosEnum{
Float:LastX,
Float:LastY,
Float:LastZ}
new Float:Przebieg[MAX_VEHICLES];
new SavePlayerPos[MAX_PLAYERS][SavePlayerPosEnum];
new carname[212][32] =
{
"Landstalker",
"Bravura",
"Buffalo",
"Linerunner",
"Perennial",
"Sentinel",
"Dumper",
"Firetruck",
"Trashmaster",
"Stretch",
"Manana",
"Infernus",
"Voodoo",
"Pony",
"Mule",
"Cheetah",
"Ambulance",
"Leviathan",
"Moonbeam",
"Esperanto",
"Taxi",
"Washington",
"Bobcat",
"Mr Whoopee",
"BF Injection",
"Hunter",
"Premier",
"Enforcer",
"Securicar",
"Banshee",
"Predator",
"Bus",
"Rhino",
"Barracks",
"Hotknife",
"Trailer",
"Previon",
"Coach",
"Cabbie",
"Stallion",
"Rumpo",
"RC Bandit",
"Romero",
"Packer",
"Monster Truck",
"Admiral",
"Squalo",
"Seasparrow",
"Pizzaboy",
"Tram",
"Trailer",
"Turismo",
"Speeder",
"Reefer",
"Tropic",
"Flatbed",
"Yankee",
"Caddy",
"Solair",
"Berkley's RC Van",
"Skimmer",
"PCJ-600",
"Faggio",
"Freeway",
"RC Baron",
"RC Raider",
"Glendale",
"Oceanic",
"Sanchez",
"Sparrow",
"Patriot",
"Quad",
"Coastguard",
"Dinghy",
"Hermes",
"Sabre",
"Rustler",
"ZR-350",
"Walton",
"Regina",
"Comet",
"BMX",
"Burrito",
"Camper",
"Marquis",
"Baggage",
"Dozer",
"Maverick",
"News Chopper",
"Rancher",
"FBI Rancher",
"Virgo",
"Greenwood",
"Jetmax",
"Hotring",
"Sandking",
"Blista Compact",
"Police Maverick",
"Boxville",
"Benson",
"Mesa",
"RC Goblin",
"Hotring Racer",
"Hotring Racer",
"Bloodring Banger",
"Rancher",
"Super GT",
"Elegant",
"Journey",
"Bike",
"Mountain Bike",
"Beagle",
"Cropdust",
"Stunt",
"Tanker",
"RoadTrain",
"Nebula",
"Majestic",
"Buccaneer",
"Shamal",
"Hydra",
"FCR-900",
"NRG-500",
"HPV1000",
"Cement Truck",
"Tow Truck",
"Fortune",
"Cadrona",
"FBI Truck",
"Willard",
"Forklift",
"Tractor",
"Combine",
"Feltzer",
"Remington",
"Slamvan",
"Blade",
"Freight",
"Streak",
"Vortex",
"Vincent",
"Bullet",
"Clover",
"Sadler",
"Firetruck",
"Hustler",
"Intruder",
"Primo",
"Cargobob",
"Tampa",
"Sunrise",
"Merit",
"Utility",
"Nevada",
"Yosemite",
"Windsor",
"Monster Truck",
"Monster Truck",
"Uranus",
"Jester",
"Sultan",
"Stratum",
"Elegy",
"Raindance",
"RC Tiger",
"Flash",
"Tahoma",
"Savanna",
"Bandito",
"Freight",
"Trailer",
"Kart",
"Mower",
"Duneride",
"Sweeper",
"Broadway",
"Tornado",
"AT-400",
"DFT-30",
"Huntley",
"Stafford",
"BF-400",
"Newsvan",
"Tug",
"Trailer",
"Emperor",
"Wayfarer",
"Euros",
"Hotdog",
"Club",
"Trailer",
"Trailer",
"Andromada",
"Dodo",
"RC Cam",
"Launch",
"Police Car (LSPD)",
"Police Car (SFPD)",
"Police Car (LVPD)",
"Police Ranger",
"Picador",
"S.W.A.T. Van",
"Alpha",
"Phoenix",
"Glendale",
"Sadler",
"Luggage Trailer",
"Luggage Trailer",
"Stair Trailer",
"Boxville",
"Farm Plow",
"Utility Trailer"
};

public OnFilterScriptInit()
{

SetTimer("odpojazdu", 450, true);
SetTimer("OdejmnijPaliwo", MinusGas, 1);

for(new g=0;g<200;g++)
{
pojazd[g] = TextDrawCreate(455.000000,248.000000, " ");
TextDrawUseBox(pojazd[g], 1);
TextDrawLetterSize(pojazd[g], 0.399999, 1.000000);
TextDrawBoxColor(pojazd[g], 0x00000066);
TextDrawTextSize(pojazd[g], 659.000000, 7.000000);
TextDrawSetOutline(pojazd[g], 0);
TextDrawSetShadow(pojazd[g], 1);
TextDrawColor(pojazd[g], 0xffffffff);
TextDrawFont(pojazd[g], 1);
TextDrawAlignment(pojazd[g], 0);
TextDrawBackgroundColor(pojazd[g], 0x000000ff);
TextDrawSetProportional(pojazd[g], 1);
}

for(new c=0;c<auta;c++){
Gas[c] = benzine;
}
return 1;
}

public OnPlayerSpawn(playerid)
{
TextDrawHideForPlayer(playerid,pojazd[playerid]);
return 1;
}


public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
TextDrawShowForPlayer(playerid,pojazd[playerid]);
return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid){
TextDrawHideForPlayer(playerid,pojazd[playerid]);
return 1;
}

forward OdejmnijPaliwo();
public OdejmnijPaliwo(){
for(new g=0;g<200;g++){
new id = GetPlayerVehicleID(g);
Gas[id]--;
}
return true;
}

public Stacjepaliw(playerid)
{
if(IsPlayerConnected(playerid))
{
if(PlayerToPoint(5.0, playerid, 1547.065185,23.461799,23.817667)){
return 1;
}
else if(PlayerToPoint(6.0,playerid,1004.0070,-939.3102,42.1797) || PlayerToPoint(6.0,playerid,1944.3260,-1772.9254,13.3906)){
return 1;
}
else if(PlayerToPoint(6.0,playerid,-90.5515,-1169.4578,2.4079) || PlayerToPoint(6.0,playerid,-1609.7958,-2718.2048,48.5391)){
return 1;
}
else if(PlayerToPoint(6.0,playerid,-2029.4968,156.4366,28.9498) || PlayerToPoint(8.0,playerid,-2408.7590,976.0934,45.4175)){
return 1;
}
else if(PlayerToPoint(5.0,playerid,-2243.9629,-2560.6477,31.8841) || PlayerToPoint(8.0,playerid,-1676.6323,414.0262,6.9484)){
return 1;
}
else if(PlayerToPoint(6.0,playerid,2202.2349,2474.3494,10.5258) || PlayerToPoint(10.0,playerid,614.9333,1689.7418,6.6968)){
return 1;
}
else if(PlayerToPoint(8.0,playerid,-1328.8250,2677.2173,49.7665) || PlayerToPoint(6.0,playerid,70.3882,1218.6783,18.5165)){
return 1;
}
else if(PlayerToPoint(8.0,playerid,2113.7390,920.1079,10.5255) || PlayerToPoint(6.0,playerid,-1327.7218,2678.8723,50.0625)){
return 1;
}
}
return 0;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/tankuj", true) == 0)
{
if(GetPlayerMoney(playerid) < FUELCOST)
{
new fuel[38];
format(fuel, 38, "Potrzebujesz $%i, aby nala? benzyne.", FUELCOST);
SendClientMessage(playerid, 0xFF0000FF, fuel);
return 1;
}
if(IsPlayerConnected(playerid))
{
if(Stacjepaliw(playerid))
{
new kasaben;
new lol ;
lol = GetPlayerVehicleID(playerid);
kasaben = benzine - Gas[lol];
if(GetPlayerMoney(playerid) >= kasaben+4)
{
Gas[lol] += kasaben;
kasaben = kasaben * 1;
format(string,sizeof(string),"Zatankowa?e? do pe?nego baku (%d Litry) za %d $ ",kasaben,kasaben*3);
SendClientMessage(playerid,CZERWONY,string);
GivePlayerMoney(playerid,-kasaben*3);
}
}
else
{
SendClientMessage(playerid,SZARY,"!Tylko na stacji paliw mo?esz tankowa? benzyne!");
}
}
return 1;
}
if(strcmp(cmdtext, "/zatankujall",true)==0 && IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(playerid)){
for(new i=0;i<200;i++){
new lol ;
new kasaben;
lol = GetPlayerVehicleID(i);
kasaben = benzine - Gas[lol];
Gas[lol] += kasaben;
kasaben = kasaben * 1;
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name, sizeof(name));
format(string, sizeof(string), "%s zatankowa? wszystkim pojazdy!Dzi?kujcie mu.",name, playerid);
SendClientMessage(i,ZOLTY,string);
}
}
return 1;
}
return 0;
}
forward odpojazdu();
public odpojazdu(){
new Float:HPcar;
new Float:x,Float:y,Float:z;
new Float:distance,value,id;
static licznik[MAX_VEHICLES];
for(new i=0;i<MAX_PLAYERS;i++){
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)){
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
value = floatround(distance * 11000);
id = GetPlayerVehicleID(i);
licznik[id]+=floatround(distance);
if(licznik[id]>=100){
licznik[id]=false;
Przebieg[id]+=0.1;
}
GetVehicleHealth(id, HPcar);
format(string, sizeof(string), "~r~Pojazd:~w~ %s ~n~~r~HP Pojazdu:~w~ %.0f~n~~r~Predkosc:~w~ %d Km/h ~n~~r~Paliwo:~w~ %d% ~g~litrow ~n~~r~Max Paliwa:~w~ 150 ~g~Litrow~n~~r~Przebieg:~w~ %.01f km",GetVehicleName(id),HPcar-250, floatround(value/1400),Gas[id],Przebieg[id]);
TextDrawSetString(pojazd[i], string);
SavePlayerPos[i][LastX] = x;
SavePlayerPos[i][LastY] = y;
SavePlayerPos[i][LastZ] = z;
if(Gas[id] < 1)
{
BrakPaliwa[i] = 1;
GameTextForPlayer(i,"~w~~n~~n~~n~Koniec Paliwa~n~Wpisz /wysiadz ,aby wyjsc z pojazdu",3000,3);
}
}
}
return true;
}
stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
return 0;
}
GetVehicleName(vehicleid){
new tmp = GetVehicleModel(vehicleid) - 400;
return carname[tmp];}
[/code]

Podpis

NO PAIN. NO GAIN.


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-25, 21:05


Quis

Wszechwiedzący






Wiek: 31
Na forum: 5146 dni
Posty: 464
Nick w MP: Quis

Piwa: 1110

Respekt: 325
Respekt: 325Respekt: 325Respekt: 325

Polecam zamieni? ten fragment:
Kod:

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
TextDrawShowForPlayer(playerid,pojazd[playerid]);
return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid){
TextDrawHideForPlayer(playerid,pojazd[playerid]);
return 1;
}

Na:
Kod:

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
TextDrawShowForPlayer(playerid,pojazd[playerid]);
else if(oldstate == PLAYER_STATE_DRIVER)
TextDrawHideForPlayer(playerid,pojazd[playerid]);
return 1;
}


Ale nie wiem czy to pomo?e. Przynajmniej b?dzie wy?wietlany w odpowiednim momencie. Dla mnie ewidentnie ten drugi TextDraw, to TextDraw z innego skryptu.

I ma?a porada: ten kod jest straszny i nie warto go u?ywa?. Napisany pod 0.2X, obs?u?y zawsze 200 graczy (zajmuje pami?? na 200 graczy, nawet jak nie ma tyle slot?w), do tego u?ywa zwyk?ych TextDraw?w, no a od czego Kalcor nam zrobi? TextDraw-Per-Player.

Pozdrawiam

Postaw piwo autorowi tego posta
 

 
Tagi: bug :: drawie :: pojazdu
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