Entregas y atracos
Modos disponibles
Sección titulada «Modos disponibles»mailbox: el item o dinero queda en el buzón.meetup: recogida en punto definido.npc: entrega por NPC con coste extra.person: encuentro presencial entre comprador y vendedor.
Coste por modo para el comprador
Sección titulada «Coste por modo para el comprador»Config.DeliveryBuyerFee define el extra que paga el comprador según el modo elegido:
- mailbox: 0
- meetup: 100
- npc: 0
- person: 300
Puntos de meetup
Sección titulada «Puntos de meetup»Config.MeetupPoints define los puntos fijos de recogida en el mapa.
Entrega NPC
Sección titulada «Entrega NPC»Config.Gameplay.NPCDelivery controla:
- coste extra
- si es interceptable
- valor mínimo para poder ser robado
- coste de seguro
- payout del seguro
- velocidad del vehículo
- timeout de entrega
- visibilidad del blip
- modelos de peds y vehículos
- prop del repartidor
- intentos de robo por jugador y furgoneta (
ExtractionAttempts) - suelo de tiempo que valida el servidor (
ExtractionMinSeconds) - animación del ladrón mientras fuerza el maletero (
ExtractionAnim)
Robo de una entrega
Sección titulada «Robo de una entrega»Una entrega interceptable se puede robar por el maletero, y para llegar ahí
primero hay que dejar al repartidor fuera de juego: encañonarlo con un arma
-se rinde solo, a la distancia de IntimidationDistance- o matarlo.
Un repartidor retenido deja de entregar. El comprador no puede recoger su pedido mientras el conductor este encañonado, ni aunque sea el propio comprador quien lo haya hecho: el paquete esta en el maletero y de ahí hay que sacarlo.
Forzar el maletero es el minijuego de Config.SkillCheck (sección 9.4.2). Se
corta si el ladrón se aleja más de 3,5 metros, si dispara, si corre o si recibe
daño. Fallar el minijuego gasta uno de los intentos; que le disparen o que la
furgoneta arranque, no. Gastados todos, ese maletero ya no se abre para el, pero
sigue disponible para cualquier otro.
Si el ladrón es el propio comprador, forzar el maletero cuenta como entrega anticipada y el vendedor cobra igual. Si es un tercero, es un robo y el vendedor solo cobra si habia seguro.
Quién puede robarla. Cualquier jugador, siempre que la entrega sea robable
(Interceptable = true y el pedido valga al menos MinValueForIntercept). Por
defecto los ladrones no tienen blip: tienen que encontrar la furgoneta en el
mundo. Si NotifyJob tiene el nombre de un trabajo (por ejemplo 'robber'), los
jugadores con ese trabajo reciben un aviso y un blip parpadeante en el punto de
salida de la furgoneta cuando empieza una entrega robable.
Qué se lleva cada parte:
| Caso | Ladrón | Comprador | Vendedor |
|---|---|---|---|
| Robo de un tercero | Se lleva el paquete | Pierde el pedido (sin reembolso) y se le dice quién se lo llevó | Cobra InsurancePayout (80 %) solo si el comprador contrató seguro |
| Robo del propio comprador | — | Recibe el pedido (entrega anticipada) | Cobra con normalidad |
Furgoneta destruida o fuera de tiempo (DeliveryTimeout) |
— | Reembolso completo al buzón | Cobra el seguro si la furgoneta se destruyó y había seguro |
| Comprador desconectado | — | El pedido va al punto de recogida más cercano | Cobra el seguro si lo había |
Policía e integraciones. Config.OnDeliveryRobbed(thiefSrc, deliveryId, value, trigger)
en config.lua y Handlers.OnDeliveryRobbed en server/handlers.lua saltan una
vez por robo (trigger es 'driver_killed' o 'cargo_stolen'), listos para un
aviso de dispatch. En el cliente están sl-marketplace:onDeliveryRobbed y los
tres eventos del minijuego en client/handlers.lua.
Seguridad. El servidor valida los modelos de vehículo y conductor, la
distancia, el tiempo mínimo del robo (ExtractionMinSeconds), un token de un
solo uso por intento y el límite deliveryRobbery. Un cliente modificado no
puede robar una furgoneta a distancia ni saltarse el minijuego.
El minijuego de puntería
Sección titulada «El minijuego de puntería»Config.SkillCheck define el anillo que aparece al forzar el maletero: da una
vuelta con un tramo pintado en el borde y hay que pulsar la tecla cuando la
punta pasa por ese tramo.
Phases— las fases, en orden.duraciones la vuelta en milisegundos yarcolo ancho que es el tramo, en grados de 360. Ensanchar el tramo o alargar la vuelta lo hacen más fácil; el tramo es lo más contundente de los dos.Keys— de donde salen las teclas, barajadas en cada partida.controles el id de control de GTA, que el juego no entiende de letras. Se desactivan mientras dura el minijuego para que acertar una fase no abra además una puerta.ZoneMin/ZoneMax— donde puede caer el tramo, en grados. Nunca al principio: a 5 grados no daria tiempo a verlo y seria una moneda al aire.LockMovement— clava los pies del jugador mientras dura. La cámara no se toca. Por defecto activo: el anillo esta clavado en el maletero, así que andando se sale del encuadre.Sounds— los cuatro sonidos: arranque de fase, acierto, fallo y superarlo entero.falselos apaga.LatencyMs— el desfase entre el reloj que decide si has acertado (el juego) y el que dibuja el anillo (el navegador). Subirlo si los aciertos se registran antes de tiempo.
El minijuego no sabe de robos: es generico, y de que va cada partida lo dice
quien lo lanza. Los tres eventos que emite estan en client/handlers.lua.
Trade presencial
Sección titulada «Trade presencial»Config.InPersonTrade controla:
- distancia de proximidad para iniciar el trade
- radio válido del punto
- timeout
- si se permite ubicación custom
- cancelación si alguno se aleja demasiado