Jump to content

Auto positie + angle + owner opslaan


Recommended Posts

Geplaatst:

hoi,

ik ben (nogsteeds) bezig met een vehicle ownership alleen ik kan hier geen (goede) tutorial over vinden.

ik heb wel een paar filterscripts gevonden maar geen van allen werkt :S

wat het ook lastig maakt om het doortenemen.

zou iemand mij hierbij kunnen helpen?

het is de bedoeling dat je de code hier onder kan maken + uitlezen

513,291.1346,2535.5850,17.3778,180.2974,21,36, Owner;

dus: "Model, X, Y, Z, Angle, C1, C2(geloof ik), Owner"

ik weet bijna zeker dat het mogelijk is, maar hoe? :S

Heel erg bedankt alvast!

Geplaatst:

Ik gebruik zelf de 'split' functie om regels op te splitsen in de data die ik wil (vooral uit MySQL, maar dat heeft hier geen belang).

enum cInfo
{
   cmodel,
   cx,
   cy,
   cz,
   ca,
   cc1,
   cc2,
   cowner[24]
}

new CarInfo[MAX_VEHICLES][cInfo]; // MAX_VEHICLES kan je nog vervangen door het aantal voertuigen dat je hebt.

// OnGameModeInit

new File:file; // hiermee gaan we de file openen
file = fopen("carownership.ini", io_read); // vul de juiste naam in, het bestand moet zich in de scriptfiles folder bevinden

if(file)
{

   new string[256];
   new LoadData[8][24];
   new count = 1;

   while(fread(file, string)) // Lees alle lijnen een voor een uit
   {
       split(string, LoadData, ",");

       CarInfo[count][cmodel] = strval(LoadData[0]);
       CarInfo[count][cx] = strval(LoadData[1]);
       CarInfo[count][cy] = strval(LoadData[2]);
       CarInfo[count][cz] = strval(LoadData[3]);
       CarInfo[count][ca] = strval(LoadData[4]);
       CarInfo[count][cc1] = strval(LoadData[5]);
       CarInfo[count][cc2] = strval(LoadData[6]);
       format(CarInfo[count][cowner], "%s", LoadData[7]);

       AddStaticVehicleEx(cmodel, cx, cy, cz, ca, cc1, cc2, 1800);
       count++;
   }
   fclose(file);
   printf("[info] Created %d vehicles from file.", count);

}

else
{
   print("[info] File was not found or could not be opened!");
}

Niet getest, maar zou moeten werken.

Geplaatst: (bewerkt)

Hey, dankje!!

ik wist niet dat er z'n leuke functie al bestond XD

ik ga het morgen/overmorgen pas proberen aangezien ik nu niet thuis ben :S

maar ik zal nog plaatsen als/of het werkt, voor als mensen ook zoiets zoeken

EDIT: hey, ik heb het er in, moest nog wel even Split downloaden, maar dat was geen probleem, maar nu krijg ik 2 errors + 4 warnings(die ik niet erg vind) :S

F:\samp\filterscripts\SpawnVeh2.pwn(36) : error 035: argument type mismatch (argument 3)
F:\samp\filterscripts\SpawnVeh2.pwn(44) : error 035: argument type mismatch (argument 2)
F:\samp\filterscripts\SpawnVeh2.pwn(45) : warning 213: tag mismatch
F:\samp\filterscripts\SpawnVeh2.pwn(45) : warning 213: tag mismatch
F:\samp\filterscripts\SpawnVeh2.pwn(45) : warning 213: tag mismatch
F:\samp\filterscripts\SpawnVeh2.pwn(45) : warning 213: tag mismatch
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.

ik heb het gewoon gecopieerd maar wat is er fout aan?

voor de duidelijk heid heb ik:

regel 36: split(string, LoadData, ",");
regel 44: format(CarInfo[count][cowner], "%s", LoadData[7]);

Gr. Kwik

Bewerkt: door kwik360
  • 2 weken later...
Geplaatst:

Hey, dankje!!

ik wist niet dat er z'n leuke functie al bestond XD

ik ga het morgen/overmorgen pas proberen aangezien ik nu niet thuis ben :S

maar ik zal nog plaatsen als/of het werkt, voor als mensen ook zoiets zoeken

EDIT: hey, ik heb het er in, moest nog wel even Split downloaden, maar dat was geen probleem, maar nu krijg ik 2 errors + 4 warnings(die ik niet erg vind) :S

F:\samp\filterscripts\SpawnVeh2.pwn(36) : error 035: argument type mismatch (argument 3)
F:\samp\filterscripts\SpawnVeh2.pwn(44) : error 035: argument type mismatch (argument 2)
F:\samp\filterscripts\SpawnVeh2.pwn(45) : warning 213: tag mismatch
F:\samp\filterscripts\SpawnVeh2.pwn(45) : warning 213: tag mismatch
F:\samp\filterscripts\SpawnVeh2.pwn(45) : warning 213: tag mismatch
F:\samp\filterscripts\SpawnVeh2.pwn(45) : warning 213: tag mismatch
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.

ik heb het gewoon gecopieerd maar wat is er fout aan?

voor de duidelijk heid heb ik:

regel 36: split(string, LoadData, ",");
regel 44: format(CarInfo[count][cowner], "%s", LoadData[7]);

Gr. Kwik

ik weet niet zeker of dit het probleem is (het is het proberen waard) maar probeer dit eens in plaats van regel 44:

strmid(CarInfo[count][cowner], LoadData[7], 0, strlen(LoadData[7]), 255);

Geplaatst: (bewerkt)

ik weet niet zeker of dit het probleem is (het is het proberen waard) maar probeer dit eens in plaats van regel 44:

strmid(CarInfo[count][cowner], LoadData[7], 0, strlen(LoadData[7]), 255);

hey dankje! dat is al 1 error er uit!, nu nog 1 :S

en heb nu de ander er ook uit denk ik :S

inplaats van "" heb ik nu ''

split(string, LoadData, ',');

EDIT: ok, ik heb nu alle errors en warnings er uit..

maar hij spawnt nogsteeds geen voertuig :S

ik heb een bestand aan gemaakt in de map "scriptfiles" die heet "carownership.ini" met daar in:

35, 1495.711059, -706.165466, 94.333076, 210.400161, 1, 5, test;

wat gaat er nu nog fout? als het nodig is plaats ik wel even mijn test gamemode(met alleen dit er in)

Bewerkt: door kwik360
Geplaatst: (bewerkt)

ik denk dat het probleem niet ligt aan het .ini bestandje maar aan je spawn regeltje vervang deze regel:

  AddStaticVehicleEx(cmodel, cx, cy, cz, ca, cc1, cc2, 1800); 

eens door deze:

  AddStaticVehicleEx(CarInfo[count][cmodel], CarInfo[count][cx], CarInfo[count][cy], CarInfo[count][cz], CarInfo[count][ca], CarInfo[count][cc1], CarInfo[count][cc2], 1800);

ik denk dat dit het probleem is omdat er aangegeven moet worden in welke variable hij moet zoeken voor bijvoorbeeld "cmodel" of de coördinaten.

en je hebt

split(string, LoadData, ',');

al goed nu dus daar heb je niks meer op aan te passen

Bewerkt: door opacool6
Geplaatst:

hey, ik heb het er in gezet, maar hij laad het nogsteeds niet :S

dit is mijn script

Klik

heel erg bedankt alvast iedereen :A

Geplaatst: (bewerkt)

hey, ik heb het er in gezet, maar hij laad het nogsteeds niet :S

dit is mijn script

Klik

heel erg bedankt alvast iedereen :A

dan kan het probleem mischien liggen aan dat hij de hele lijst niet af gaat, als dat het geval is moet je dit vervangen:

while(fread(file, string)) // Lees alle lijnen een voor een uit

voor dit

while(count< sizeof(CarInfo)) // leest het aantal lijnen uit dat je aangeeft bij new CarInfo

vervang ook bij deze regel

 new CarInfo[MAX_VEHICLES][cInfo]; 

die MAX_VEHICLES eventjes door het aantal auto's dat je in het scriptfile hebt dus in dit geval èèn 1.

(wat je ook kan doen is bovenaan een #define aan maken met bijv #define MAX_CARS 1

dan kan je bij new CarInfo in plaats van een getal of MAX_VEHICLES

MAX_CARS

in vullen)

Gr fons

Bewerkt: door opacool6
Geplaatst:

hey, ik heb het er in gezet, maar hij laad het nogsteeds niet :S

dit is mijn script

Klik

heel erg bedankt alvast iedereen :A

dan kan het probleem mischien liggen aan dat hij de hele lijst niet af gaat, als dat het geval is moet je dit vervangen:

while(fread(file, string)) // Lees alle lijnen een voor een uit

voor dit

while(count< sizeof(CarInfo)) // leest het aantal lijnen uit dat je aangeeft bij new CarInfo

vervang ook bij deze regel

 new CarInfo[MAX_VEHICLES][cInfo]; 

die MAX_VEHICLES eventjes door het aantal auto's dat je in het scriptfile hebt dus in dit geval èèn 1.

(wat je ook kan doen is bovenaan een #define aan maken met bijv #define MAX_CARS 1

dan kan je bij new CarInfo in plaats van een getal of MAX_VEHICLES

MAX_CARS

in vullen)

Gr fons

Hey, sorry dat ik zo lastig ben :S

maar het werkt nogsteeds niet :S

Gr.

Geplaatst: (bewerkt)

Ik ben het nog is goed door gaan kijken heb het probleem gevonden!

de variables voor de coördinaten zijn niet op geslagen in floats :puh:

verander dit:

enum cInfo
{
   cmodel,
   cx,
   cy,
   cz,
   ca,
   cc1,
   cc2,
   cowner[24]
}

voor dit:

enum cInfo
{
   cmodel,
   Float:cx,
   Float:cy,
   Float:cz,
   Float:ca,
   cc1,
   cc2,
   cowner[24]
}

vervang ook dit:

               CarInfo[count][cx] = strval(LoadData[1]);
               CarInfo[count][cy] = strval(LoadData[2]);
               CarInfo[count][cz] = strval(LoadData[3]);
               CarInfo[count][ca] = strval(LoadData[4]);

door dit:

               CarInfo[count][cx] = floatstr(LoadData[1]);
               CarInfo[count][cy] = floatstr(LoadData[2]);
               CarInfo[count][cz] = floatstr(LoadData[3]);
               CarInfo[count][ca] = floatstr(LoadData[4]);

als het goed is, moet nu alles werken zo niet, ja dan moet ik nog is een keertje goed kijken.

en PS. je bent niet lastig hoor je script was lastig

Bewerkt: door opacool6
Geplaatst:

Ok, het werkt nog niet :S

ik heb inmiddels alles bij dit topic er in gezet, 2x, en alles nog een keer doorgelopen of er wel genoeg info verwerkt word.

maar ik heb niks kunnen vinden :S, nu is dit ook (nog) niet echt mijn ding.

ik heb het script +script file hier staan

heel erg bedankt!

Geplaatst:

Plaats dit eens boven je AddStaticVehicleEx lijn:

printf("[DEBUG] AddStaticVehicleEx(%d, %.3f, %.3f, %.3f, %.3f, %d, %d, 1800);", 
   CarInfo[count][cmodel],  
   CarInfo[count][cx],  
   CarInfo[count][cy],  
   CarInfo[count][cz],  
   CarInfo[count][ca],  
   CarInfo[count][cc1],  
   CarInfo[count][cc2]);

Als er iets niet goed is zie je dat meteen.

Geplaatst:

Plaats dit eens boven je AddStaticVehicleEx lijn:

printf("[DEBUG] AddStaticVehicleEx(%d, %.3f, %.3f, %.3f, %.3f, %d, %d, 1800);", 
   CarInfo[count][cmodel],  
   CarInfo[count][cx],  
   CarInfo[count][cy],  
   CarInfo[count][cz],  
   CarInfo[count][ca],  
   CarInfo[count][cc1],  
   CarInfo[count][cc2]);

Als er iets niet goed is zie je dat meteen.

hey,

ik heb het er in en krijg dit:

[13:47:06] [DEBUG] AddStaticVehicleEx(0, 0.000, 0.000, 0.000, 0.000, 0, 0, 1800);
[13:47:06] [info] Created 2 vehicles from file.

dus ik denk dat het probleem is dat hij geen gegevens ophaalt :S

kan iemand anders 1 test bestand maken van hoe het wel zou moeten?

Erg bedankt alvast!

Geplaatst: (bewerkt)

new count = 1;

vervangen door dit:

new count = 0;

want nu wordt er gezegt wanneer 1 lager is dan 1 dat hij iets gaat doen, dat is dan weer 1 probleem minder.

en wat me ook opvalt is dat het Carmodel in je scriptfile veel te laag is namelijk 35 ?? de carmodels beginnen bij 400 klik hier voor een link van alle car model id's

Bewerkt: door opacool6
Geplaatst:

new count = 1;

vervangen door dit:

new count = 0;

want nu wordt er gezegt wanneer 1 lager is dan 1 dat hij iets gaat doen, dat is dan weer 1 probleem minder.

en wat me ook opvalt is dat het Carmodel in je scriptfile veel te laag is namelijk 35 ?? de carmodels beginnen bij 400 klik hier voor een link van alle car model id's

Hey, ik ga jullie (+ mezelf) weer teleurstellen, het werkt niet :S

ik krijg nogsteeds allemaal 0'en bij het "nieuwe" Debug textje..

heb nu dit(bij uitlezen):

    	while(count< sizeof(CarInfo)) // leest het aantal lijnen uit dat je aangeeft bij new CarInfo
   	{
       	split(string, LoadData, ',');

       	CarInfo[count][cmodel] = strval(LoadData[0]);
       	CarInfo[count][cx] = floatstr(LoadData[1]);
        	CarInfo[count][cy] = floatstr(LoadData[2]);
               CarInfo[count][cz] = floatstr(LoadData[3]);
               CarInfo[count][ca] = floatstr(LoadData[4]);
       	CarInfo[count][cc1] = strval(LoadData[5]);
       	CarInfo[count][cc2] = strval(LoadData[6]);
       	strmid(CarInfo[count][cowner], LoadData[7], 0, strlen(LoadData[7]), 255);
       	printf("[DEBUG] AddStaticVehicleEx(%d, %.3f, %.3f, %.3f, %.3f, %d, %d, 1800);",
   		CarInfo[count][cmodel],
   		CarInfo[count][cx],
   		CarInfo[count][cy],
   		CarInfo[count][cz],
  	 	CarInfo[count][ca],
   		CarInfo[count][cc1],
   		CarInfo[count][cc2]);

       	AddStaticVehicleEx(CarInfo[count][cmodel], CarInfo[count][cx], CarInfo[count][cy], CarInfo[count][cz], CarInfo[count][ca], CarInfo[count][cc1], CarInfo[count][cc2], 1800);
       	count++;
   	}

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...