Events
Mitschreiben, nachdem die Station bedient hat.
Ein Event sagt dir, was gerade passiert ist: Eine Station ging auf oder zu, jemand hat bezahlt, jemand wurde wieder auf die Beine gestellt. Vier davon gibt es auf dem Client, drei auf dem Server.
Alle Events sind normale Events mit AddEventHandler, nicht RegisterNetEvent. Das ist Absicht: als Net-Event registriert könnte die Gegenseite sie fälschen und dir eine Wiederbelebung melden, die es nie gab.
| Event | Seite | Parameter |
|---|---|---|
cs_revivestation:opened | Client | stationId |
cs_revivestation:closed | Client | stationId |
cs_revivestation:revive | Client | stationId, targetId, price |
cs_revivestation:revived | Client | stationId |
cs_revivestation:opened | Server | source, stationId |
cs_revivestation:closed | Server | source, stationId |
cs_revivestation:revive | Server | source, data |
Auf dem Client sind revive und revived zwei verschiedene Dinge: revive ist dieser Spieler, der für jemand anderen bezahlt, revived ist dieser Spieler, der selbst wieder auf die Beine kommt. Bei revived ist die Stations-ID nil, wenn die Wiederbelebung nicht von einer Station kam, sondern über RevivePlayer.
Auf dem Server ist source beim revive-Event der Sanitäter, der bezahlt hat und data.target der, der wieder steht.
{
station = 1, -- die ID der Station
label = 'CORECITY',
target = 12, -- Server-ID des Wiederbelebten
name = 'John Doe',
cause = 'Fire', -- der Name aus deathcauses.lua, nicht übersetzt
price = 1600, -- wirklich bezahlt
fee = 1000, -- der Anteil der Sanitäter-Gebühr darin
medics = 2, -- woraus diese Gebühr entstanden ist
account = 'cash', -- 'cash' | 'bank'
balance = 4200, -- Kontostand des Sanitäters danach
}-- Server: die Station führt ihren Umsatz an den Rettungsdienst ab
AddEventHandler('cs_revivestation:revive', function(src, data)
TriggerEvent('bank:addSociety', 'ambulance', data.price)
end)
-- Client: eigenes HUD ausblenden, solange die Liste offen ist
AddEventHandler('cs_revivestation:opened', function(id) hideMyHud() end)
AddEventHandler('cs_revivestation:closed', function(id) showMyHud() end)-- Client, auf dem Rechner dessen, der wieder steht
AddEventHandler('cs_revivestation:revived', function(station)
if not station then return end -- kam nicht von einer Station
Effects.blur(8000)
end)Das revive-Event auf dem Server läuft erst, nachdem die Wiederbelebung stattgefunden hat und der Sanitäter seine Antwort bekommen hat. Was du darin tust, kann eine bezahlte Wiederbelebung also weder aufhalten noch zurücknehmen. Zum Verhindern ist canRevive da, zum Mitschreiben dieses Event. Das HUD ein- und ausblenden kannst du auch ohne Event über Config.showUI und Config.hideUI und eine Nachwirkung beim Wiederbelebten auch über Config.AfterRevive.