Du kannst .col dateien einbinden.
Schon klar, also muss ich quasi in 3DS Max ein Modell erstellen, welches dem Objekt 3781 mehr oder weniger gleicht um somit die Kollisionen realisieren zu können?
Du kannst .col dateien einbinden.
Schon klar, also muss ich quasi in 3DS Max ein Modell erstellen, welches dem Objekt 3781 mehr oder weniger gleicht um somit die Kollisionen realisieren zu können?
ZB den ColEditor für GTA
Das Tool hatte ich auch schon entdeckt, aber es gibt ja soweit ich weiß für das Objekt keine .col-Datei? Ich konnte zum mindest nicht herausfinden, wie ich mit dem Tool ein vernünftiges Kollisionsmodell für mein Objekt anlegen kann.
Hallo zusammen,
ist es möglich einem Objekt nachträglich ein Kollisionsmodell hinzuzufügen?
Es geht konkret um das Objekt 3781 (http://dev.prineside.com/en/gtasa_samp_…Lan2officeflrs/)
Normal fällt man da ja einfach durch, aber ich habe auch schon mal Server gesehen, auf denen man dieses Gebäude betreten konnte ohne durchzufallen.
Welche Tools bräuchte ich dafür, um das zu realisieren?
LG
Habe ich auch mal drüber nachgedacht und z.B. auch den Deagle-Damage mal auf 2 gesetzt, aber beim Boxen wird immer noch zu viel Schaden abgezogen.
OnPlayerDamage könntest du auf jeden Fall dafür benutzen. Du kannst die Waffe, mit der man angeschossen wird ausgeben lassen und einfach ein bisschen Leben dabei auffüllen.
onPlayerDamage benutze ich auch, aber kann man dort auch explizit abfragen, ob mit der Waffe geschossen wird ober ob mit der Waffe geschlagen wird? Ansich funktioniert das System ja und der Damage wird vernünftig abgezogen, aber wenn ein Spieler direkt neben dem anderen steht und dann die linke Maustaste drückt und somit mit der Waffe boxt wird halt auch ziemlich viel Damage abgezogen.
Hallo,
ich habe das Problem, dass bei meinem Damagesystem das Damage, wenn man mit einer Waffe geboxt wird, zu hoch ist. Allerdings weiß ich nicht, wie man diesen Schaden verringern kann.
Hier der Code:
if isElement ( player ) then
local armor = getPedArmor ( player )
local health = getElementHealth ( player )
if armor > 0 then
if armor >= amount then
setPedArmor ( player, armor - amount )
else
setPedArmor ( player, 0 )
amount = math.abs ( armor - amount )
setElementHealth ( player, health - amount )
if getElementHealth ( player ) - amount <= 0 then
killPed ( player, damager, weapon, 3, false )
end
end
else
if getElementHealth ( player ) - amount <= 0 then
killPed ( player, damager, weapon, 3, false )
end
setElementHealth ( player, health - amount )
end
end
Alles anzeigen
Kann mir dabei jemand weiterhelfen?
LG
Hallo,
in der dmgsys_server.lua wird etwas weiter unten die Funktion damagePlayer() aufgerufen. In welcher Datei finde ich diese Funktion?
LG
Am Handy geht es sowohl über das mobile Netz als auch über WLAN. Am PC geht es über einen Proxy im Browser auch. Der Fehler liegt also offenbar bei mir, ich habe allerdings im Moment keine Idee mehr, wo der Fehler liegen könnte
Hallo,
Ich komme seit gestern schon nur über mein Handy ins Forum. Am PC kommt immer ERR_CONNECTION_CLOSED bei Chrome. Habe schon den DNS-Cache geleert und verschiedene DNS-Server getestet, daran scheint es nicht zu liegen. Auch in anderen Browsern funktioniert das Forum nicht.
Hat sonst noch wer eine Idee? Bin bis jetzt leider nicht weiter gekommen
Wenn ich in der Language File vom Tactics-Skript den entsprechenden Eintrag rausnehme wird nur eine leere Zeile angezeigt, von daher müsste es vom Tactics-Skript kommen
_outputChatBox = outputChatBox
function outputChatBox(message, element, r, g, b, colorcoded)
if (not message:find("is now known as")) then
_outputChatBox(message, element, r or 255, g or 255, b or 255, colorcoded or false)
end
end
Auch so kommt die Meldung leider weiterhin
Wenn ich im Chat "is now known" eingebe, zeigt er die Nachricht auch weiterhin an, bei "is now known as" funktioniert das Skript und unterdrückt die Nachricht.
PewX das habe ich schon getan
PewX ansich eine gute Idee.
Habe das jetzt auch so eingefügt und es wird auch vor dem anderen ausgeführt, die Meldung im Chat ist aber leider immer noch da
function onNick(oldNick, newNick)
removeEventHandler("onPlayerChangeNick", getRootElement(), function() end)
outputChatBox("Du darfst deinen Namen nicht ändern.", source,0,255,0)
cancelEvent()
end
addEventHandler("onPlayerChangeNick", getRootElement(), onNick)
So habe ich das ganze bisher gescriptet, ist ja im Prinzip das selbe. Das Problem ist, dass anscheinend in der kompilierten Datei vom Tactics Script noch ein weiterer Event-Handler steckt, der den Output erzeugt. Irgenwie muss es aber möglich sein, da bei anderen Servern mit dem gleichen Skript auch kein Output kommt
Hallo,
ich habe im Moment das Tactics-Skript im Einsatz und füge dort einige Features hinzu. Da ich Nickchanges unterbinden möchte, habe ich das entsprechende Event gecancelt. Dies funktioniert auch. Jedoch kommt trotzdem im Chat noch die Nachricht "*Player is now known as Player2". Die Resource joinquit ist deaktiviert, also kommt der Output direkt vom Tactics-Skript. Der Code-Teil kann allerdings nicht bearbeitet werden, da die Datei kompiliert ist.
Gibt es eine Möglichkeit die Chat-Nachricht irgendwie zu unterdrücken?
LG
Den ersten Fehler habe ich behoben. Es erscheint also nun der passende Marker. Fährt man mit dem Auto dadurch, soll die Funktion destroyMarkerHit ausgeführt werden, was auch passiert. Allerdings kommen dann folgende Errors in der Console:
[21:02:18] WARNING: [gamemodes]/[vio]/vio/carsys/destroyer/destroyer.lua:50: Bad
'vehicle' pointer @ 'getVehicleOccupant'(1)
[21:02:18] ERROR: [gamemodes]/[vio]/vio/carsys/destroyer/destroyer.lua:67: attem
pt to concatenate global 'player' (a userdata value)
Hier das Script:
destroyIcon = createPickup (-1897.7077636719, -1677.8612060547, 23.015625,3, 1239, 50, 0 )
setElementInterior ( destroyIcon, 0 )
function destroyhit ( player )
infobox ( player, "Tippe /verschrotten ,um \nein Auto zu zerstören.", 5000, 200, 200, 0 )
end
--[[
function destroy_func(player)
triggerClientEvent ( player, "infobox_start", getRootElement(), "Test!", 7500, 125, 0, 0 )
local x, y, z = getElementPosition ( player )
local px, py, pz = -1897.7077636719, -1677.8612060547, 23.015625
infobox(player, "Du bist richtig", 5000,200,200,0)
if getDistanceBetweenPoints3D ( x, y, z, px, py, pz ) <= 5 then
marker = createMarker ( -1853.8931884766, -1679.1461181641, 21.756410598755, "cylinder", 3, 125, 0, 0, 150, player )
addEventHandler ( "onMarkerHit", marker, destroyMarkerHit )
else
infobox ( player, "Du bist nicht an der richtigen Stelle.", 5000, 200, 200, 0 )
end
end
]]
function zers(player)
triggerClientEvent ( player, "infobox_start", getRootElement(), "Test!", 7500, 125, 0, 0 )
local x, y, z = getElementPosition ( player )
local px, py, pz = -1897.7077636719, -1677.8612060547, 23.015625
infobox(player, "Du bist richtig", 5000,200,200,0)
outputChatBox ( "Juhu!", player, 125, 0, 0 )
if getDistanceBetweenPoints3D ( x, y, z, px, py, pz ) <= 5 then
local markerv = createMarker ( -1868.3536376953, -1685.3895263672, 21.75, "cylinder", 3, 125, 0, 0, 150, player )
addEventHandler ( "onMarkerHit", markerv, destroyMarkerHit )
else
infobox ( player, "Du bist nicht an der richtigen Stelle.", 5000, 200, 200, 0 )
end
end
function destroyMarkerHit(hitElement)
player = getVehicleOccupant(hitElement,0)
if getElementType( hitElement ) == "vehicle" then
if getVehicleOccupant ( hitElement, 0 ) ~= false and getVehicleOccupant ( hitElement, 1 ) == false and getVehicleOccupant ( hitElement, 2 ) == false and getVehicleOccupant ( hitElement, 3 ) == false then
if not copvehs[getElementModel ( hitElement )] then
--local player = getVehicleOccupant ( hitElement )
if player then
if vioGetElementData ( hitElement, "owner" ) then
if vioGetElementData ( hitElement, "owner" ) == getPlayerName ( player ) then
local veh = getPedOccupiedVehicle ( player )
MySQL_DelRow("vehicles", "Besitzer LIKE '"..player.."' AND Slot LIKE '"..vioGetElementData(veh, "carslotnr_owner" ).."'")
outputChatBox ( "Dein Fahrzeug in Slot NR"..vioGetElementData ( veh, "carslotnr_owner" ).." wurde erfolgreich verschrottet!", player, 125, 0, 0 )
SaveCarData ( player )
end
end
end
end
end
end
end
addEventHandler ( "onPickupHit", destroyIcon, destroyhit )
addCommandHandler("verschrotten", zers)
Alles anzeigen
Ich weiß leider nicht mehr weiter. Das hitElement hat als ElementType vehicle, also müsste es mit der Funktion getVehicleOccupant doch möglich sein, den Spielernamen herauszufinden?
LG
Der Commandhandler wird probiert festzulegen, bevor die Funktion überhaupt initialisiert wird
Setze den Commandhandler an das Ende des Scriptes.
Habe ich ausprobiert, jedoch passiert leider weiterhin nichts
Hallo,
ich hatte vor, eine Funktion zu scripten, welche es ermöglichen soll, Autos verschrotten zu lassen. Das ganze soll in das Vio-Script implementiert werden. Das ganze soll folgendermaßen ablaufen:
Man fährt zum festgelegten Punkt, wo ein Pickup ist. Dort gibt man dann /destroy ein. Anschließend erscheint ein Marker, wo man mit dem Auto durchfahren muss. Daraufhin wird das Auto dann zerstört.
Das Pickup ist auch schon da, wenn man nun aber /destroy eingibt, passiert gar nichts. Es kommt auch keine Fehlermeldung. Ich habe deshalb einfach mal testweise versucht, dass beim Aufruf eine Infobox dargestellt wird, aber auch diese kommt nicht.
Hier der Code:
destroyIcon = createPickup (-1897.7077636719, -1677.8612060547, 23.015625,3, 1239, 50, 0 )
setElementInterior ( destroyIcon, 0 )
function destroyhit ( player )
infobox ( player, "Tippe /destroy ,um \nein Auto zu zerstören.", 5000, 200, 200, 0 )
end
addEventHandler ( "onPickupHit", destroyIcon, destroyhit )
addCommandHandler("destroy", destroy_func)
function destroy_func(player)
triggerClientEvent ( player, "infobox_start", getRootElement(), "\n\nDu bist bei\nkeinem Haus!", 7500, 125, 0, 0 )
local x, y, z = getElementPosition ( player )
local px, py, pz = -1897.7077636719, -1677.8612060547, 23.015625
infobox(player, "Du bist richtig", 5000,200,200,0)
if getDistanceBetweenPoints3D ( x, y, z, px, py, pz ) <= 5 then
marker = createMarker ( -1853.8931884766, -1679.1461181641, 21.756410598755, "cylinder", 3, 125, 0, 0, 150, player )
addEventHandler ( "onMarkerHit", marker, destroyMarkerHit )
else
infobox ( player, "Du bist nicht an der richtigen Stelle.", 5000, 200, 200, 0 )
end
end
function destroyMarkerHit(player)
if getElementType( hitElement ) == "vehicle" and matchingDimension then
if getVehicleOccupant ( hitElement, 0 ) ~= false and getVehicleOccupant ( hitElement, 1 ) == false and getVehicleOccupant ( hitElement, 2 ) == false and getVehicleOccupant ( hitElement, 3 ) == false then
if not copvehs[getElementModel ( hitElement )] then
local player = getVehicleOccupant ( hitElement )
if player then
if vioGetElementData ( hitElement, "owner" ) then
if vioGetElementData ( hitElement, "owner" ) == getPlayerName ( player ) then
local veh = getPedOccupiedVehicle ( player )
MySQL_DelRow("vehicles", "Besitzer LIKE '"..player.."' AND Slot LIKE '"..vioGetElementData(veh, "carslotnr_owner" ).."'")
outputChatBox ( "Dein Fahrzeug in Slot NR"..vioGetElementData ( veh, "carslotnr_owner" ).." wurde erfolgreich verschrottet!", player, 125, 0, 0 )
SaveCarData ( player )
end
end
end
end
end
end
end
Alles anzeigen
Vielleicht kann mir da ja wer helfen, Vielen Dank!