Ich werd nicht mehr *thumbsup* ist eindeutig was neues xD
Beiträge von Sorginator
-
-
@SlaiiZ: versuchs mal mit dem Event hier https://wiki.multitheftauto.com/wiki/OnPlayerClick , und zu dem anderen, soll ein objekt dort erstellt werden, oder ein bild?
-
@Vine|Reason: er will eins das automatisch auf und zu geht, das macht man besser über colshapes, mit getDistanceBetweenPoints3D macht man Tore die per Command auf und zu gehen
-
@zAiming_StarZz: du kannst folgende Funktionen dafür benutzen:
das letzte Event nutzt du um das tor öffnen und schließen zu lassen falls du es nicht per command machen möchtest
-
das finde ich jetzt echt amüsant poste bitte mal den teil des codes wo du das feuer erstellst
-
versuch mal das "local" aus Zeile 1 vor das Wort "marker" zu setzen, denn ab und zu können alleinstehende "local"'s auch dafür sorgen dass das Script rumspinnt, dann gehört "getRootElement()" überhaupt nicht in die "createMarker" Funktion rein, lösch das am besten.
Dann solltest du den marker am besten marker1 nennen, denn deine funktion teleport baut auf einem marker namens marker1 auf ()
änder das auch in zeile 3 beidann sollte es keine Probleme mehr geben SlaiiZ:
-
ich weiß zwar nicht genau welches bild im vordergrund stehen soll, aber bei dxDraw gilt meines wissens der grundsatz "was zuletzt gerendert wird ist im vordergrund", von daher würde ich an deiner stelle mal versuchen die reihenfolgen in zeile 14-16 mal zu verändern, wenn ich richtig mit meiner vermutung liege dass du eins von den bildern in den vordergrund holen willst @Franklin:
-
reoarni: versuchs mal damit:
LuaaddCommandHandler("balabala", function() addEventHandler("onClientRender", localPlayer, function() dxDrawRectangle(x, y, w, h) end end )
wenn dus wieder deaktivieren möchtest nutze einfach wieder nen command und dann mit removeEventHandler
-
-
habe gerade nochmal nachgeschaut, und man kann die schwerkraft anscheinend nur innerhalb einer welt setzen, daher würde ich auch sagen befestige die kiste an ein objekt mit schwerkraft mit attachElements("schwerkraftObjekt", "Kiste") und mach das Objekt mit setElementAlpha(objekt, zahl(hier 0)) unsichtbar, sowie unbegehbar mit setCollisionsEnable(objekt, false), dann dürfte es fast nicht auffallen dass du dich eines Tricks bemächtigt hast
-
Ich persönlich würde math.floor(Variable) bevorzugen Twixx:
das rundet die Zahl ab, das heißt aus 2,8 wird 2 aus 5,1 wird 5 usw
wenn du allerdings auch aufrunden würde ich dir die andere Funktion empfehlen, aber meines wissens genügt die Funktion für eine Hud -
-
Versuchs doch mal mit der Funktion getPedWeapon (https://wiki.multitheftauto.com/wiki/GetPedWeapon)
und als Auslöser für deine HUD würde ich dir zu onClientPlayerWeaponSwitch (https://wiki.multitheftauto.com/wiki/OnClientPlayerWeaponSwitch) raten
zum Beispiel:LuaaddEvenHandler("onClientPlayerWeaponSwitch", getRootElement(), function() local waffe = getPedWeapon(localPlayer) end )
das Beispiel speichert die waffe unter dem Synonym "waffe" ,beachte halt nur dass das Event ein Clientseitiges ist -
Bilder sind hinzugefügt DKong: *thumbup*
-
Hallöchen Leute, ich bin zwar relativ neu in der Community was das Scripten angeht,
aber ich hab mal vor ein paar Wochen ein Boxscript geschrieben, und das wollte ich euch mal zeigen.
Die Gui ist das Element mit dem ich mich dafür allerdings am wenigsten beschäftigt habe, sie sieht auch dementsprechend aus.
Meinungen, Verbesserungsvorschläge usw erwünscht *thumbup*Serverseitig
Spoiler anzeigen
Lua
Alles anzeigen----------------------------------------------- ------Made and copyright by (c)Sorginator------ ----------------------------------------------- --Variablen local boxer local timer1 local derSpieler local KampfstyledesBoxers = 4 local istBereitsVoll = false local variable = 305 local Lebensspeicher local aufgegeben = false --Timer local timer = {} --Events addEvent("drehdichBoxer", true) addEvent("boxenstarten1", true) --Die Boxer werden erstellt und in den Interior geportet function botErstellen() boxer = createPed(81, 758.53125, -1.9306640625, 1001.5942382812, 315) --Boxer 1 setElementInterior(boxer, 5 ) setElementDimension(boxer, 1) end --Die Marker werden erstellt und in den Interior geportet wo nötig boxMarkerRein = createMarker( -2455.36328125, -135.8212890625, 25.196598815918, "cylinder", 1, 255, 0, 0 ) boxMarkerRaus = createMarker( 772.2177734375, -4.703125, 999.7786987305, "cylinder", 1, 255, 0, 0 ) boxMarkerInnenStart = createMarker( 757.1298828125, 5.650390625, 999.7786987305, "cylinder", 1, 255, 0, 0 ) setElementInterior( boxMarkerInnenStart, 5) setElementInterior( boxMarkerRaus, 5) --Die Markerevents addEventHandler("onMarkerHit", boxMarkerRein, function(player) setElementInterior(player, 5, 772.2109375, -2.697265625, 1000.729675293 ) setElementRotation(player, 0, 0, 0 ) setCameraTarget(player) end ) addEventHandler("onMarkerHit", boxMarkerRaus, function(player) setElementInterior(player, 0, -2458.6494140625, -135.8388671875, 25.947332382202 ) setElementRotation(player, 0, 0, 90 ) setCameraTarget(player) end ) addEventHandler("onMarkerHit", boxMarkerInnenStart, function(player) triggerClientEvent(player, "guiBoxenPed", player ) end) addEventHandler("boxenstarten1", getRootElement(), function(player) if istBereitsVoll == false then istBereitsVoll = true botErstellen() if getElementData(player, "boxlvl") == 2 then setPedArmor(boxer, 50) end derSpieler = player Lebensspeicher = getElementHealth(derSpieler) setElementPosition(player, 763.0126953125, 2.3515625, 1001.5942382812 ) setElementRotation(player, 0, 0, 130 ) setElementDimension(player, 1) timer[1] = setTimer( function() triggerClientEvent(derSpieler,"jih", derSpieler, player, boxer ) end, 500, 1 ) boxerLebtNochFrage() spielerLebtNoch() KampfstyledesBoxers = getPedFightingStyle(player) setPedFightingStyle( player, 4 ) timer[2] = setTimer(function() dreschBotDresch(boxer, derSpieler) end, 500, 1) addEventHandler("onPlayerQuit", derSpieler, function() timerkillen2() end ) aufgegeben = true timer[8] = setTimer(function() aufgegeben = false end, 15000, 1) else triggerClientEvent(player, "guiBoxenPed", player ) outputChatBox("Es ist bereits ein Spieler im Ring", player, 200, 20, 20 ) end end ) --Die Funktionen function dreschBotDresch(bot, ziel) --triggert das Clientseitige Event das den Bot auf einen eindreschen lässt triggerClientEvent(derSpieler, "dreschen", derSpieler, bot, ziel) timer[3] = setTimer(dreschBotDresch, variable, 1, bot, ziel ) end addEventHandler("drehdichBoxer", getRootElement(), function(bot) if (derSpieler) and (bot) then local x, y, z = getElementPosition(derSpieler) local x1, y1, z1 = getElementPosition(bot) local rot = math.atan2(y - y1, x - x1) * 180 / math.pi rot = rot-90 setElementRotation(bot, 0, 0, rot) end end ) function boxerLebtNochFrage() --Diese Funktion prüft nach ob der Boxer noch lebt/der spieler gewonnen hat if isPedDead(boxer) then setTimer(function() destroyElement(boxer) end, 500, 1 ) timerkillen() setPedFightingStyle(derSpieler, KampfstyledesBoxers) setElementPosition( derSpieler, 760.6298828125, 5.6533203125, 1000.7082519531 ) setElementDimension(derSpieler, 0) setElementFrozen(derSpieler, true) timer[4] = setTimer(setElementFrozen, 2000, 1, derSpieler, false) setElementHealth(derSpieler, Lebensspeicher) if getElementData(derSpieler, "boxlvl") == 2 then setElementData(derSpieler, "boxlvl", 0) variable = 305 outputChatBox("Du hast den Boxkampf gewonnen, und erhältst ein Preisgeld von 300$", derSpieler, 0, 200, 10) setElementData(derSpieler, "geld", getElementData(derSpieler, "geld") + 300) givePlayerMoney(derSpieler, 300) elseif getElementData(derSpieler, "boxlvl") == 1 then setElementData(derSpieler, "boxlvl", 2) variable = 155 outputChatBox("Gratuliere, du hast auch die zweite Runde gemeistert!",derSpieler, 20, 180, 50) outputChatBox("Schlage den Boxer noch ein letztes mal, um den endgültigen Sieg zu erringen!",derSpieler, 20, 180, 50) elseif getElementData(derSpieler, "boxlvl") == 0 then setElementData(derSpieler, "boxlvl", 1) variable = 230 outputChatBox("Gratuliere, du hast die erste Runde gemeistert!",derSpieler, 20, 150, 50) outputChatBox("Gewinns du auch die anderen beiden Runden, so wartet eine Belohnung auf dich!",derSpieler, 20, 150, 50) end derSpieler = nil else timer[5] = setTimer(function() boxerLebtNochFrage() end, 500, 1 ) end end function spielerLebtNoch() if getElementHealth(derSpieler) < 10 then setTimer(function() destroyElement(boxer) end, 500, 1 ) timerkillen() setElementPosition( derSpieler, 760.6298828125, 5.6533203125, 1000.7082519531 ) setElementDimension(derSpieler, 0) setElementFrozen(derSpieler, true) timer[6] = setTimer(setElementFrozen, 2000, 1, derSpieler, false) setElementHealth(derSpieler, Lebensspeicher) outputChatBox("Du hast diese Runde leider verloren!", derSpieler, 130, 10, 10 ) outputChatBox("Aber du kannst es jederzeit wieder versuchen.", derSpieler, 130, 10, 10 ) setElementData(derSpieler, "boxlvl", 0) derSpieler = nil else timer[7] = setTimer(spielerLebtNoch, 300, 1 ) end end function timerkillen() for i = 1, 8, 1 do if isTimer(timer[i]) then killTimer(timer[i]) end end istBereitsVoll = false removeEventHandler("onPlayerQuit", derSpieler, function() timerkillen2() end ) end function timerkillen2() for i = 1, 8, 1 do if isTimer(timer[i]) then killTimer(timer[i]) end end istBereitsVoll = false removeEventHandler("onPlayerQuit", derSpieler, function() timerkillen2() end ) end addCommandHandler("spieler", function() outputChatBox("Der spieler ist Momentan "..getPlayerName(derSpieler), source) end ) addCommandHandler("aufgeben", function(player) if player == derSpieler then if aufgegeben == true then outputChatBox("Du hast innerhalb der Anfangszeit aufgegeben,", derSpieler, 130, 10, 10 ) outputChatBox("daher wird dieser Kampf nicht als verloren gewertet.", derSpieler, 130, 10, 10 ) else outputChatBox("Du hast aufgegeben, und daher den Kampf verloren!", derSpieler, 130, 10, 10 ) setElementData(derSpieler, "boxlvl", 0) end setTimer(function() destroyElement(boxer) end, 500, 1 ) timerkillen() setElementPosition( derSpieler, 760.6298828125, 5.6533203125, 1000.7082519531 ) setElementFrozen(derSpieler, true) setElementDimension(derSpieler, 0) timer[6] = setTimer(setElementFrozen, 2000, 1, derSpieler, false) setElementHealth(derSpieler, Lebensspeicher) derSpieler = nil end end )
Clientseitig:
Spoiler anzeigen
Lua
Alles anzeigen----------------------------------------------- ------Made and copyright by (c)Sorginator------ ----------------------------------------------- --Variablen local box1 local box2 local entwaffnenTimer local falsevar1 = 100 local falsevar2 = 300 local KampfstyledesBoxers = 4 --Events addEvent("dreschen", true) addEvent("jih", true) addEvent("guiBoxenPed", true) --EventHandler addEventHandler("jih", getRootElement(), function() --Dieses Event gibt den Text zur jeweiligen Runde aus if getElementData(getLocalPlayer(), "boxlvl") == 0 then outputChatBox("Willkommen in der ersten Runde!", 20, 150, 50) outputChatBox("Für die Gesamte Zeit des Kampfes gilt: ", 20, 150, 50) outputChatBox("Du kannst den Ring innerhalb der ersten 15 Sekunden mit /aufgeben verlassen.", 20, 150, 50) outputChatBox("Solltest du ihn danach verlassen, oder disconnecten, gilt der Kampf als verloren!", 20, 150, 50) outputChatBox("Erledige den Boxer um die erste Runde für dich zu entscheiden!", 20, 150, 50) --falsevar2 = 300 elseif getElementData(getLocalPlayer(), "boxlvl") == 1 then outputChatBox("Willkommen in der zweiten Runde!", 20, 180, 50) outputChatBox("Die Regeln dürften dir bekannt sein!", 20, 180, 50) outputChatBox("Besiege den Boxer in dieser Runde, um zur letzten Runde Antreten zu können!", 20, 180, 50) --falsevar2 = 225 elseif getElementData(getLocalPlayer(), "boxlvl") == 2 then outputChatBox("Willkommen in der dritten und letzten Runde!", 20, 200, 50) outputChatBox("Die Regeln dürften dir bekannt sein!", 20, 200, 50) outputChatBox("Besiege den Boxer nun endgültig um den gesamten Kampf für dich entscheiden zu können!", 20, 200, 50) --falsevar2 = 150 end end ) addEventHandler("dreschen", getRootElement(), function(bot, ziel) --Dieses Event lässt den Boxer auf den Spieler einprügeln if (bot) and (ziel) then local x, y, z = getElementPosition(ziel) local x1, y1, z1 = getElementPosition(bot) local rot = math.atan2(y - y1, x - x1) * 180 / math.pi rot = rot-90 setElementRotation(bot, 0, 0, rot) box1 = setTimer(function() if bot and not (bot == 1) then setPedControlState(bot, "fire", false) end end, falsevar1, 1 ) box2 = setTimer(function() if bot and not (bot == 1) then setPedControlState(bot, "fire", true) end end, falsevar2, 1 ) end end ) addEventHandler("guiBoxenPed", getRootElement(), function() local sWidth, sHeight = guiGetScreenSize() local Width,Height = 234,140 local x = (sWidth/2) - (Width/2) local y = (sHeight/2) - (Height/2) local fenster = guiCreateWindow(x, y, Width, Height, "Willkommen beim Boxring", false) guiWindowSetSizable(fenster, false) local Label = guiCreateLabel(73, 24, 98, 15, "Hier kannst du", false, fenster) guiSetFont(Label, "default-bold-small") local Label2 = guiCreateLabel(45, 39, 156, 16, "gegen einen Boxer kämpfen", false, fenster) guiSetFont(Label2, "default-bold-small") local knopf = guiCreateButton(14, 100, 69, 30, "Kampf starten", false, fenster) local knopf2 = guiCreateButton(154, 102, 70, 28, "Abbrechen", false, fenster) guiSetVisible(fenster, true) showCursor(true) addEventHandler("onClientGUIClick", knopf, function() triggerServerEvent("boxenstarten1", root, getLocalPlayer()) guiSetVisible(fenster, false) showCursor(false) end ) addEventHandler("onClientGUIClick", knopf2, function() guiSetVisible(fenster, false) showCursor(false) end ) end )
Bilder:
Spoiler anzeigen
Externer Inhalt www7.pic-upload.deInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt www7.pic-upload.deInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt www7.pic-upload.deInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt www7.pic-upload.deInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt www7.pic-upload.deInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt www7.pic-upload.deInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Spoiler anzeigen
Dieselben bilder für diejenigen bei denen picupload nicht funktioniertExterner Inhalt img5.fotos-hochladen.netInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt img5.fotos-hochladen.netInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt img5.fotos-hochladen.netInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt img5.fotos-hochladen.netInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt img5.fotos-hochladen.netInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Externer Inhalt img5.fotos-hochladen.netInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Zum Ablauf:
Man muss 3 Runden in folge gegen den Boxer gewinnen, um den gesamten Boxkampf zu gewinnen, von Runde zu Runde wird der Boxer begrenzt schneller.
Sobald man in den Marker im Interior geht erscheint ein Fenster, in welchem man den Boxkampf gegen den Bot beginnen kann, oder abbrechen.
Sobald man auf "Boxkampf starten" klickt, wird man in den Ring und eine andere Dimension geportet, wo man gegen den Boxer die erste Runde kämpfen muss.
Nachdem man diese Runde gewonnen hat, kann man das noch 2 mal wiederholen, dann bekommt man Geld (300$) und eine Nachricht dass Man gewonnen hat.
Sollte man eine dieser 3 Runden verlieren, wird das "boxlevel" wieder auf 0 gesetzt, und man muss sich von vorne hocharbeiten.
Sobald ein Kampf gewonnen oder verloren ist, verschwindet der Boxer, und man wird zurückgeportet. -
kurze frage, wann genau wird bei deinem script die variable "new" = true ?