ai-cityhall dla deweloperów
Metadane przedmiotów dokumentów, które zapisuje ai-cityhall (dowód osobisty, prawo jazdy), jak dać dokument z innego skryptu oraz jego prywatne zdarzenia.
ai-cityhall nie ma eksportów. Prace przyjęte w urzędzie pracy są ustawiane funkcjami prac ai-core, a dokumenty to zwykłe przedmioty ekwipunku, więc inny skrypt obsługuje je przez AI Core.
Metadane przedmiotu dokumentu
Dokument (id_card, driver_license lub każdy przedmiot z listy Documents) to jeden unikalny przedmiot, którego metadane zawierają posiadacza. Pola są takie jak w qbx_idcard, więc skrypty napisane dla Qbox czytają je bez zmian.
Prop
Type
Dawanie dokumentu z innego skryptu
Użycie przedmiotu pokazuje kartę bez względu na to, kto go dał: ai-cityhall rejestruje każdy przedmiot dokumentu jako przedmiot do użycia. Daj przedmiot z tymi samymi metadanymi, a zachowa się jak kupiony przy ladzie.
Strona: serwer · Czeka: nie
Przykład
Skrypt policji wydaje nowe prawo jazdy po egzaminie:
import { inventory, notify, online } from "@aicore-fivem/lib/server";
function giveLicense(source: number): boolean {
const c = online.character(source);
if (!c) return false;
const metadata = {
name: `${c.firstname} ${c.lastname}`,
firstname: c.firstname,
lastname: c.lastname,
birthdate: c.birthdate,
sex: c.sex,
nationality: c.nationality,
citizenid: c.citizenid,
};
if (!inventory.canCarryItem(source, "driver_license", 1, metadata)) {
notify(source, "No room in your inventory", "error");
return false;
}
return inventory.addItem(source, "driver_license", 1, metadata);
}Tylko przedmioty z listy Documents w panelu są rejestrowane przez ai-cityhall jako przedmioty do użycia. Przedmiot spoza tej listy nie pokazuje karty po użyciu.
Pieniądze
Dokumenty są opłacane przez RemoveMoney z ai-core z kont ustawionych w panelu, powód wpisu cityhall:<item> (na przykład cityhall:id_card).
Prywatne zdarzenia i callbacki
Własny kontrakt skryptu (resource/common/hall.ts). Serwer sprawdza odległość od ratusza przy każdym wywołaniu. Mogą się zmieniać między wersjami: nie wywołuj ich ani nie nasłuchuj ich z innych zasobów.
| Nazwa | Kierunek | Co przenosi |
|---|---|---|
ai-cityhall:offer | callback klienta | (hallId): odpowiada { ok, jobs, documents }, czyli co oferuje ten ratusz. |
ai-cityhall:takeJob | callback klienta | (hallId, job): przyjmij pracę z urzędu pracy. |
ai-cityhall:buy | callback klienta | (hallId, item): kup dokument. |
ai-cityhall:client:showCard | serwer -> każdy gracz w pobliżu pokazanego dokumentu | (card): pokaż kartę na ekranie. |
ai-cityhall:client:showing | serwer -> gracz, który pokazuje | (): odtwórz animację pokazywania. |