Jump to content

Car Spawn


Recommended Posts

Geplaatst:

Hallo iedereen!

Ik heb een multiplayer map gemaakt voor onze vriendengroep.

Het probleem: We vinden dat bij de gewone maps het altijd zo lang duurt voordat je een auto gevonden hebt. En als je er een vindt, is die meestal veel te sloom.

Ik heb door de mogelijke script-commands gekeken, maar ik kan er geen wijs uit en heb ook geen zin om daar aan te beginnen. De hele code leren voor een klein scriptje vind ik zonde.

Ik zou dan ook willen vragen of iemand een kant en klaar car-respawn script heeft. Het liefst zou ik een auto willen laten respawnen op het moment dat er niemand in de buurt is en de auto van zijn plaats is verdwenen. Drie auto's per parkeerplaats, hierbij de restart-zones. Zo is er altijd een auto als je respawned.

Misschien dat iemand zo'n script al heeft gemaakt en heeft liggen, en het misschien hier wil posten? Of iemand die zo goed is dat hij/zij dat binnen een paar minuten voor me gemaakt heeft?

Alvast heel erg bedankt!

Met vriendelijke groet,

Jos.

Geplaatst:

Hee Jos, welkom op GTAForum.

Er is geen standaard code om voertuigen te laten respawnen zoals wapens, maar het is op verschillende manieren zelf te scripten. Een voorbeeld van een oplossing is als volgt:

CAR_DATA stinger
CAR_DATA shark

COUNTER loop = 1

LEVELSTART

stinger  =  CREATE_CAR ( 113.5 , 124.5 , 2.0 ) 35 180 STINGRAY END
shark  =  CREATE_CAR ( 116.5 , 125.5 , 2.0 ) 32 180 GRAHAM END

WHILE_EXEC ( loop = 1 )

IF ( ( ( ( IS_CAR_WRECKED ( stinger ) ) AND ( NOT ( IS_CHAR_IN_ZONE ( player1 , nav_zone ) ) ) ) AND ( NOT ( IS_CHAR_IN_ZONE ( player2 , nav_zone ) ) ) ) AND ( NOT ( IS_CHAR_IN_ZONE ( player3 , nav_zone ) ) ) )
 DELETE_ITEM ( stinger )
 stinger  =  CREATE_CAR ( 113.5 , 124.5 , 2.0 ) 35 180 STINGRAY END
ENDIF

IF ( ( ( ( IS_CAR_WRECKED ( shark ) ) AND ( NOT ( IS_CHAR_IN_ZONE ( player1 , nav_zone ) ) ) ) AND ( NOT ( IS_CHAR_IN_ZONE ( player2 , nav_zone ) ) ) ) AND ( NOT ( IS_CHAR_IN_ZONE ( player3 , nav_zone ) ) ) )
 DELETE_ITEM ( shark )
 shark  =  CREATE_CAR ( 116.5 , 125.5 , 2.0 ) 35 180 GRAHAM END
ENDIF

ENDWHILE

LEVELEND

Deze code creëert twee voertuigen. Wanneer een wagen vernietigd wordt controleert het script of player1, player2 of player3 in de buurt is en creëert een nieuwe wagen als dat niet het geval is. Zoals je ziet staan er twee "sets" codes: één voor de Stinger en één voor de Shark. Als je meer voertuigen wilt laten respawnen, zet je er simpelweg nog meer van deze sets bij. Om het script te laten werken moet je in de map een navigation zone over de spawnplek plaatsen, zodat spelers buiten de zone nooit de spawnplek van het voertuig kunnen zien. Geef deze zone de naam die je in het script opgeeft (in het voorbeeld "nav_zone").

Om hetzelfde script voor minder spelers te maken moet je hun IS_CHAR_IN_ZONE checks verwijderen. De plaatsing van de haakjes hierbij luistert heel erg nauw. Werkende codes zouden als volgt moeten zijn:

IF ( ( IS_CAR_WRECKED ( voertuig ) ) AND ( NOT ( IS_CHAR_IN_ZONE ( player1 , nav_zone ) ) ) )

IF ( ( ( IS_CAR_WRECKED ( voertuig ) ) AND ( NOT ( IS_CHAR_IN_ZONE ( player1 , nav_zone ) ) ) ) AND ( NOT ( IS_CHAR_IN_ZONE ( player2 , nav_zone ) ) ) )

Als je de voertuigen direct wilt laten respawnen wanneer ze van hun spawnplek weg zijn (en niet pas als ze vernietigd zijn), vervang je IS_CAR_WRECKED ( voertuig ) met NOT ( IS_CAR_IN_BLOCK ( voertuig , X.x , Y.y , Z.z ) ) en verwijder je de DELETE_ITEM-commando's. Mijn ervaring leert echter dat dit er voor zorgt dat je level in rap tempo vol komt te staan met dezelfde voertuigen. Bovendien kan het spel kuren gaan vertonen wanneer er erg veel objecten onder één naam worden gemaakt.

Succes, mochten er nog vragen zijn hoor ik het graag. Ik ben ook erg benieuwd naar je level. Enige kans op een downloadlink? Als je wilt, zou je het level zelfs in de download database kunnen zetten indien het gereed is.

Geplaatst:

Hoi Lantyz!

Bedankt voor het script.

Ik ga vanavond eerst de map testen met wat vrienden, en waarschijnlijk wordt die daarna nog een paar keer aangepast met wat tips van hen.

Als de map perfect is zal ik hem hier posten!

Met vriendelijke groet,

Jos.

Geplaatst:

Hallo alweer!

Ik heb de script geprobeerd, alleen hij werkte niet helemaal.

De Script Compilet komt tot "CREATE 3D CAR", maar daarna geeft die een foutmelding.

Iets als "No valid token".

Ik dacht eerst dat ik het script niet goed aangepast had naar eigen smaak, dus heb ik het script letterlijk gekopieerd. De enige verschillen zijn dat ik player1 als playera heb gedefinieerd, en dat ik de zone verandert heb van naam, zoals die in mijn map zit.

Ik hoop dat je me hierbij kan helpen.

Dan heb ik nog twee kleine vraagjes:

1. Hoe groot zou ik de zone maken? Ik heb hem nu 16x16.

2. Iets heel anders: We hebben bij multiplayer nogal vaak last van een speler waarbij GTA2 ermee stopt en hij dus disconnect, en soms zelfs dat iedereen een Memory Acces Violation krijgt en het spel er dus bij iedereen mee op houdt. Ik weet niet of hier zo oplossing voor zijn?

Alweer alvast bedankt!

Met vriendelijke groet,

Jos.

Geplaatst:
Ik heb de script geprobeerd, alleen hij werkte niet helemaal.

De Script Compilet komt tot "CREATE 3D CAR", maar daarna geeft die een foutmelding.

Iets als "No valid token".

"Error token failed, no valid token" geeft aan dat de compiler een karakter tegenkomt dat het niet herkent en wordt meestal veroorzaakt doordat er een ( of ) ontbreekt. Het voorbeeldscript wordt bij mij zonder problemen gecompileerd. Zou je je complete script kunnen posten zodat ik kan nagaan wat er scheelt?

Dan heb ik nog twee kleine vraagjes:

1. Hoe groot zou ik de zone maken? Ik heb hem nu 16x16.

De grootte van de zone maakt voor de werking van het script niet uit; voor het oog is het alleen logischer om ervoor te zorgen dat spelers buiten de zone nooit de plek waar het voertuig spawnt kunnen zien. Zo voorkom je de spelers het voertuig uit het niets zien verschijnen.

2. Iets heel anders: We hebben bij multiplayer nogal vaak last van een speler waarbij GTA2 ermee stopt en hij dus disconnect, en soms zelfs dat iedereen een Memory Acces Violation krijgt en het spel er dus bij iedereen mee op houdt. Ik weet niet of hier zo oplossing voor zijn?

Het helpt om er zeker van te zijn dat iedere speler een stabiele verbinding heeft met een ping onder de 100. Maar dan nog komen errors relatief vaak voor bij GTA2 multiplayer; dat is in de meeste gevallen niet te voorkomen.

Geplaatst:

Hij werkt!

Ik was de ENDWHILE functie vergeten...

En het was een heel gekloot met spaties, want sommige gekopieerde dingen waren volgensmij "tabs" waardoor die het niet goed herkende.

Nog een laatste vraag:

Als de auto nu respawnt als er niemand in de buurt is, dan zien de mensen die in de buurt van het wrak zijn toch een auto in het niets verdwijnen?

Is daar ook nog een functie voor om dat te scripten? Of kun je daar een "verdwijn-animatie" zien ofzoiets?

Nogmaals bedankt, en ik hoop dat ik niet te lastig ben :puh:

Met vriendelijke groet,

Jos.

Geplaatst:
Hij werkt!

Ik was de ENDWHILE functie vergeten...

En het was een heel gekloot met spaties, want sommige gekopieerde dingen waren volgensmij "tabs" waardoor die het niet goed herkende.

Goed om te horen dat het werkt. :) Mijn excuses voor de tabs; ik werk met GTA2 MIS Pad, een script-editor die wel tabs herkent.

Als de auto nu respawnt als er niemand in de buurt is, dan zien de mensen die in de buurt van het wrak zijn toch een auto in het niets verdwijnen?

Is daar ook nog een functie voor om dat te scripten? Of kun je daar een "verdwijn-animatie" zien ofzoiets?

Als het goed is verdwijnt het wrak pas als niemand het wrak kan zien, zoals gebruikelijk is bij normale voertuigwrakken. "DELETE_ITEM" geeft bij voertuigen alleen aan dat het geen 'entity' meer is en het spel het wrak mag verwijderen als dat mogelijk is. Het spel hoort hiermee te wachten totdat het wrak buiten beeld is. Bij bijvoorbeeld personages is dit anders; deze worden met DELETE_ITEM wel direct verwijderd.

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