Jump to content

[WIP|SA] K.O.'s IDE/IPL Debugger


Recommended Posts

Geplaatst: (bewerkt)

K.O.'s IDE/IPL Debugger

Intro

Naar aanleiding van dit topic van Tim ben ik begonnen met het schrijven van een soort van Debugger voor de .IDE en .IPL bestanden in GTA San Andreas. Deze bestanden geven in feite vorm aan de hele map. Wanneer een modder in zo'n bestandje een klein typfoutje maakt, kan het zijn dat heel San Andreas niet meer werkt. Het is dan erg lastig om uit te zoeken waar je precies je foutje hebt gemaakt. Het doel van deze tool is om dit zoekwerk te vergemakkelijken en te versnellen.

Achterliggende techniek

Een stand-alone .exe bestand dat je zo kunt downloaden zou misschien wel zo gemakkelijk zijn, maar dit zou ik zelf nooit voor elkaar krijgen. Visual Basic kan ik niet en mijn C++ is bij lange na niet goed genoeg om iets dergelijks te maken. Daarom heb ik besloten om een web-based tool te maken, iets wat mij beter ligt; dat wil zeggen een internetpagina waar je je .IPL bestand kunt selecteren en kunt laten checken. De tool is geschreven in de taal PHP en maakt veelvuldig gebruik van RegEx (PCRE), ofwel reguliere expressies.

Wat kan de tool reeds?

Tot nu toe nog niet heel geweldig veel, om eerlijk te zijn. Je kunt een .IPL bestand uploaden en de inst, cull, grge, enex, pick en auzo blokjes zullen dan volledig op een juiste syntax gecheckt worden. Dus als je bijvoorbeeld een komma ergens hebt staan waar een punt had moeten staan, of wanneer je ergens een decimaal getal hebt staan waar een integer (heel getal) hoort te staan, geeft het script een foutmelding.

Wat zal de tool kunnen?

Natuurlijk kunnen erg nog IPL-blokjes worden toegevoegd om op hun syntax te checken, maar wat ik vooral nog wens toe te voegen is een functie die checkt of namen/ID's in de IDE wel overeenkomen met de namen/ID's in de IPL. Ik weet echter nog niet precies hoe ik dit het beste aan kan pakken, maar in principe is het wel te doen.

Wanneer zal de tool af zijn?

Geen idee. Ik heb niet veel tijd om eraan te werken en om eerlijk te zijn heeft het momenteel ook geen hoge prioriteit. Ik hoop zeker nog wel meerdere functies eraan toe te voegen, maar ik weet nog niet wanneer.

Waar is die tool te vinden?

Een vroege versie kan hier worden bekeken.

De broncode

Momenteel 226/232 regels aan code! :7 De broncode is hier te downloaden:

debugger.zip

Kan ik meehelpen?

Natuurlijk! Zoals ik al zei is deze tool open-source en kan je alles wijzigen wat je wil. Als je wil dat het in deze versie wordt opgenomen vraag ik je wel om de door jou doorgevoerde wijzigingen naar mij te sturen, bij voorkeur via PB. :tu:

En verder...

Reacties, op- of aanmerkingen zijn allemaal zeer welkom! Let er aub wel op dat het script zich in feite nog in een vroeg stadium bevindt en dat het lang niet zo efficiënt mogelijk geoptimaliseerd is. Desalniettemin ben ik benieuwd naar wat jullie er van vinden! :Y

:cya:

Topic-updates

08-04-09 - codebox verwijderd die de pagina lay-out vernaaide.

15-04-09 - versie voor Linux geupload.

23-04-09 - link naar huidige versie erin gezet.

Bewerkt: door K.O.
Geplaatst:

Wauw K.O.!

Goed idee om zo'n programma te ontwikkelen, ik denk dat als het programma klaar is en je het verspreid over gtaforums.com, thegtaplace.com etc. er veel mensen interesse in zullen hebben. :Y

Vooral modders die bezig zijn met een TC of MC zullen hier veel aan kunnen hebben omdat zij veel te maken hebben met IDE en IPL.

Ik wens je veel succes en ik hoop dat het programma snel af zal zijn. :)

Grtz RD :cya:

Geplaatst:

Mooie Tool K.O. :klap: Handig dat je het web-based maakt, hoef je niet een tooltje te downloaden, en geen gehannes met "Mijn virrusscanner zegt" en "Ik krijg een error: ...". Ook fijn dat je het Open-Source maakt, dan kan je er altijd nog wat van leren. Kortom, topidee :tu:

KUTGW

Geplaatst: (bewerkt)

Wauw wat een regen van reacties zeg.. :7

Hoe dan ook, ik ben er inmiddels wel al achter waarom het script niet werkte op andere hosts. Dit had niks te maken met het feit dat gratis hosts bepaalde restricties hebben, maar simpelweg met het feit dat al deze hosts onder Linux draaien en mijn eigen webserver onder Windows. Het grote verschil zit 'm in de newline characters. Voor de geïnteresseerden: Linux gebruikt een 0x0A byte om een nieuwe regel aan te geven (\n, LF, hoe je het ook wilt noemen) terwijl Windows 0x0D 0x0A gebruikt (of \r\n of CR+LF). Kijk hier maar voor meer informatie.

Dat is inmiddels volledig gefixt, alleen heb ik momenteel even geen toegang tot de PC waar ik de bestanden op heb staan, dus ik zal later de beginpost updaten.

Tevens heeft Thundercover mij benaderd dat hij eventueel wel mijn script zou willen en kunnen hosten.

Ook kun je nu de bijbehorende IDE file uploaden, alleen wordt deze verder nog niet echt gelezen. Dit zal nog toegevoegd worden.

#Edit: nieuwe broncode zojuist in de beginpost geplaatst. Het 'debugger.php' bestand is bedoeld voor Windows servers, 'debuggerlinux.php' natuurlijk voor Linux servers (en ik neem aan ook op andere UNIX systemen). IDE bestanden kunnen worden nu geupload en hun bestandsnaam wordt wel vergeleken met die van het IPL bestand, maar de inhoud verder nog niet.

Bewerkt: door K.O.
Geplaatst:

Dit is echt chill, voor de mensen die dit soort dingen liever handmatig doen (ik dus). Ik ga het zeker gebruiken als ik wat foutjes heb gemaakt, want vaak genoeg werkt daardoor m'n sa niet meer (alhoewel het dan vaak gewoon een kwesite van een komma in een punt veranderen is). Momenteel ben ik niet zo met mappen bezig, maar ik wil nog een keer een klein eilandje toevoegen in de SA map, waarbij dit misschien van pas kan komen.

Geplaatst:

Wegens tijdelijke persoonlijke drukte heeft het project eventjes stilgelegen, maar in de meivakantie hoop ik weer tijd te kunnen vinden om verder te werken aan het project.

Desalniettemin wil ik toch even een link posten. Ik heb namelijk alweer een week geleden een vroege versie geupload, waarvan ik overigens niet zeker ben of alles naar behoren werkt. Ik geef jullie de link, zodat jullie een beetje een idee krijgen van hoe een dergelijke tool eruit zou kunnen zien. Je kunt gewoon eens wat proberen met wat IPL/IDE bestanden en kijken wat eruit rolt. Overigens worden IDE bestanden nog steeds niet daadwerkelijk gelezen, maar dat doet er even niet toe.

Let er ook aub op dat er nog niks aan opmaak gedaan is; dat komt pas op het laatst. Arrays worden ter controle gewoon met print_r() getoond en echt mooi is het dan ook (nog) niet.

Geplaatst:

Ik weet niet zeker of je eventuele errors om te fixen wil ontvangen, maar:

-Het checken van een originele IPL geeft de foutmelding dat het een fout bestandstype heeft.

Ja veel verder ben ik dan nog niet gekomen :puh: Misschien, als je dit zou kunnen fixen we er verder naar kunnen kijken? In ieder geval vind ik het heel vet dat je dit maakt, dit kan echt handig worden :tu: Top :tu:

Geplaatst:

Natuurlijk zijn foutmeldingen welkom. Zou je misschien even kunnen zeggen welk IPL bestand deze foutmelding geeft?

Geplaatst:

Tragisch genoeg, elke die ik kies die origineel zijn :7 Ik heb circa 5 IPL's genomen in de map "maps," maar geen enkele is het goede bestandstype. Ook heb ik bij de IDE checker een IDE ingevoerd, maar die deed het ook niet (wrong file type). Ik weet niet of je toevallig uit het volgende iets kan halen:

Array ( [iplfile] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) [idefile] => Array ( [name] => LAn2.ide [type] => [tmp_name] => /tmp/phpYoGpcx [error] => 0 [size] => 9565 ) )

Dit was van de IDE bestand LAn2.ide.

Veel succes K.O. :)

Geplaatst:
Tragisch genoeg, elke die ik kies die origineel zijn :7 Ik heb circa 5 IPL's genomen in de map "maps," maar geen enkele is het goede bestandstype. Ook heb ik bij de IDE checker een IDE ingevoerd, maar die deed het ook niet (wrong file type). Ik weet niet of je toevallig uit het volgende iets kan halen:

Array ( [iplfile] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) [idefile] => Array ( [name] => LAn2.ide [type] => [tmp_name] => /tmp/phpYoGpcx [error] => 0 [size] => 9565 ) )

Dit was van de IDE bestand LAn2.ide.

Veel succes K.O. :)

Uit dat stukje code kan ik in elk geval opmaken dat Error numero 4 wordt teruggegeven, wat gelijk staat aan UPLOAD_ERR_NO_FILE. Misschien dat het niet helemaal duidelijk is, maar je begrijpt wel dat je zowel een .IPL als een .IDE bestand tegelijkertijd moet uploaden hè? Dus niet alleen een IPL bestand kiezen en het 'IDE' vakje leeglaten.

Eigenlijk zou het script nu 'Something went wrong during upload.' moeten zeggen, en niet 'Wrong file type.', maar dat komt doordat het script eerst checkt op de extensie en t MIME-type en pas daarna op een eventuele foutmelding. Da's echter zo verholpen door de volgorde even te veranderen.

Anders kan ik nog wel ff een Javascriptje toevoegen dat checkt of beide velden wel daadwerkelijk ingevuld zijn alvorens de input te verzenden.

  • 3 weken later...
Geplaatst:

Ik denk ik meld het even:

Mijn projectje heeft een behoorlijke tijd stilgelegen, en de vooruitzichten zijn nog steeds niet echt bijzonder rooskleurig. De afgelopen tijd heb ik het gewoon best druk gehad en andere dingen aan mijn kop gehad, en nu zit ik met mijn eindexamens, waardoor ik geen zin/tijd heb om hieraan verder te werken. Hopelijk kan ik straks weer wat tijd vrij maken hiervoor en eens een update plaatsen in dit topic.

Geplaatst:

Ok K.O. ^_^ Ik had een vraag/opmerking. Ik had op GTAForums een soortgelijk iets gezien (denk ik :$). >deze<. Het is, wat ik er uit heb opgemaakt, een tool om handig IPL regels toe te voegen, garages en carspawns, cull zones, enz. Ik geloof dat het geen ide checkt, dus dat het daar ondera andere aan verschilt. Tevens aan het feit dat dit het controleert, en dat waarschijnlijk niet. Ik vroeg me hier dus af of je misschien niet per ongeluk aan iets werkt wat niet nodig is, of het is gewoon voor fun ^_^

Maar nog altijd, keep it up K.O. :tu:

  • 3 weken later...
Geplaatst:

En ik dacht nog wel dat ik na mijn eindexamens weer tijd zou hebben voor dit project. Verkeerd gedacht dus. :bonk: Mijn eindexamens zitten er nu dan wel op, maar juist doordat ik vakantie heb, heb ik eindelijk tijd om leuke dingen te doen. Dit soort projectjes hebben dan ook niet echt een hoge prioriteit bij mij. Maar goed, ik post toch even om te laten weten dat het topic niet helemaal dood is! Zie het meer als een diepe slaap van een dikke maand. :engel:

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...