onGamemodeMapStart wird meines wissens von Mapmanager getriggert, sobald die Map Resource gestartet wird. Wenn ich das nun richtig überdenke könnte es da zu einem Problem kommen.
Wenn die Resource gestartet wird, heißt es ja noch lange nicht das alle Spieler bereit sind. Während bei dem einen das Script schon läuft tut es das bei dem anderen noch nicht. Und bis der Countdown auf Go steht ist die Zeit wohl längst vorbei.Der Race Gamemode hat hierfür ein Event onRaceStateChanging. Jedoch nur Serverseitig verfügbar. Dies kannst du dir aber auch Clientseitig verfügbar machen, und zwar genau so wie Bonus es geschrieben hat. Habe ich für meine Zwecke ebenso gemacht.
Das onClientVehicleDamage Event zu canceln ist eine gute Idee. Das würde ich aktivieren, sobald der Spieler gespawnt wurde. Sobald das Event onRaceStateChanging den Status "Running" ausspuckt, setzt du die Variable auf den aktuellen TickCount und fragst entsprechend ab um zu canceln.Aber alles Schritt für Schritt. Wenn das eine Funktioniert, kannst du zum nächsten gehen.
Also Ich habe die ganzen Race Scripts mal überflogen und hab erstmals nach onGamemodeStart beim race_server gesucht und diese Stelle gefunden. triggerClientEvent have ich darunter hinzugefügt und
addEventHandler('onGamemodeStart', g_ResRoot,
function()
outputDebugString('Race onGamemodeStart')
addRaceScoreboardColumns()
if not g_GameOptions then
cacheGameOptions()
end
end
)
triggerClientEvent ( "onClientGamemodeStart", root )
bekomme beim debug die Fehlfunktion: "ERROR:Server triggered clientside Event onClientGamemodeStart, but Event is not added clientside."
Das Ganze Clientseitig verfügbar zu machen? Wie meinst du das?
Ich gib's zu, ich versuche die Schritte zu verstehen, aber ich bin halt ein Anfänger und bräuchte vielleicht eine etwas erweiterte Erklärung.
Und das getTickCount... wie fragt man dies denn ab?