Beiträge von odin008
-
-
-
Solltest du auch denn es gibt noch bessere varianten es zu lösen =)
-
Ich hab es derzeit so gelöst
Lua
Alles anzeigenfunction CCEDie(player) local thePlayer = getVehicleController ( source ) local health = math.floor(getElementHealth ( source )) local prozentH = 100 * health / 1000 if getElementData( thePlayer, "cce.pos" ) then if (math.floor(getElementHealth ( source )) < 265) then setElementData( thePlayer, "cce.pos", false ) if ( i > 3 ) then outputChatBox("[ #FFFF00Event#00FFFF ] Du bist ausgeschieden!.", thePlayer, 0, 255, 255, true) CCEremoveVEH(source) destroyElement(source) CCEremove(thePlayer) outputChatBox("[ #FFFF00Event#00FFFF ] Es sind noch "..v.." Fahrer unterwegs", ArenaPlayers, 0, 255, 255, true) setElementPosition( thePlayer, 2861.389, 1289.566, 11.391) setElementInterior( thePlayer, 0) elseif ( i == 3 ) then outputChatBox("[ #FFFF00Event#00FFFF ] Du bist 3er geworden!!.", thePlayer, 0, 255, 255, true) CCEremoveVEH(source) destroyElement(source) CCEremove(thePlayer) givePlayerBarMoney(thePlayer, 1000) outputChatBox("[ #FFFF00Event#00FFFF ] Du hast als belohnung 1000$ erhalten.", thePlayer, 0, 255, 255, true) outputChatBox("[ #FFFF00Event#00FFFF ] Es sind noch "..v.." Fahrer unterwegs", ArenaPlayers, 0, 255, 255, true) setElementPosition( thePlayer, 2861.389, 1289.566, 11.391) setElementInterior( thePlayer, 0) elseif ( i == 2 ) then outputChatBox("[ #FFFF00Event#00FFFF ] Du bist 2er geworden!!.", thePlayer, 0, 255, 255, true) CCEremoveVEH(source) destroyElement(source) CCEremove(thePlayer) givePlayerBarMoney(thePlayer, 2500) outputChatBox("[ #FFFF00Event#00FFFF ] Du hast als belohnung 2500$ erhalten.", thePlayer, 0, 255, 255, true) outputChatBox("[ #FFFF00Event#00FFFF ] Es sind noch "..v.." Fahrer unterwegs", ArenaPlayers, 0, 255, 255, true) setElementPosition( thePlayer, 2861.389, 1289.566, 11.391) setElementInterior( thePlayer, 0) elseif ( i == 1 ) then outputChatBox("[ #FFFF00Event#00FFFF ] Du bist 1er geworden!!.", thePlayer, 0, 255, 255, true) CCEremoveVEH(source) destroyElement(source) CCEremove(thePlayer) givePlayerBarMoney(thePlayer, 5000) outputChatBox("[ #FFFF00Event#00FFFF ] Du hast als belohnung 5000$ erhalten.", thePlayer, 0, 255, 255, true) setElementPosition( thePlayer, 2861.389, 1289.566, 11.391) setElementInterior( thePlayer, 0) end end end end addEventHandler("onVehicleDamage", getRootElement(), CCEDie)
allerdings bekommt das Fahrzeug keinen schaden mehr wenn es brennt und das Script wird ignoriert
d.h es darf kein Fahrzeug auf dem Kopf liegen und keines darf explodieren das ist ein bissl doof -
Das ist auch ganz normal das dein Fahrzeug nicht respawnt da die If-Funktion nur aufgerufen wird wenn der befehl eingeben wird (/vehcreate)
und der AddEventHandler ist sinnlos da es den nicht gibt isVehicleBlown ist eine funktion
und selbst wenn er angenommen wird wird jedesmal wenn ein Fahrzeug explodiert dein script ausgeführt wird und somit auch jedesmal ein neues Fahrzeug erstellt wirdLua
Alles anzeigenfunction carspawn (player, cmd) x, y, z = getElementPosition(player) MODEL = 411 auto = createVehicle (MODEL, x, y , z) warpPedIntoVehicle(player, auto) setVehicleColor(auto, 0, 0, 0, 0) setVehiclePaintjob(auto, 1) toggleVehicleRespawn(auto, true) setVehicleRespawnDelay ( auto, 60000 * 60) setVehicleRespawnPosition ( auto, x, y, z ) end addCommandHandler("vehcreate", carspawn) function IstdasFahrzeugZerstört(source) local thePlayer = getVehicleController ( source ) local x,y,z = 0, 0, 0 -- Musst du selbst definieren if isVehicleBlown(source ) then toggleVehicleRespawn(source , true) setVehicleRespawnPosition ( source , x, y, z ) respawnVehicle(source ) warpPedIntoVehicle(thePlayer, source ) end end addEventHandler("onVehicleDamage", getRootElement(), IstdasFahrzeugZerstört) -- Damit wirdt nun die Funktion IstdasFahrzeugZerstört aufgerufen sobalt ein Fahrzeug schaden bekommt und wenn isVehicleBlown true wieder gibt wird das fahrzeug das zerstört wurde wieder respawnt
-
Das problem ist immernoch das ich die Tabelle trigger und der dann allen spielern in der liste das bild zeichnen will was aber nicht klappt da er ja nicht mit der tabelle arbeiten kann (AddEventHandler("onClientRender") ) da er den wert nil ausgibt weil eine tabelle nicht als argument zählt und ich nicht weiß wie ich anders lösen kann das ich nicht die tabelle als argument angebe sondern etwas anderes
Wenn ich das richtig verstanden habe wäre das dann so
Server:Ich sende die Tabelle zum Client
Client
Zeichne das Bild mit getRootElement und überprüfe dann ob der Spieler in der Liste ist oder nicht ? -
Dein beispiel verstehe ich aber ich da ich bei getPlayerFromName den Spielernamen angeben muss
gibt es nicht hier auch ne einfache lösung wie: -
Ja aber ich brauche es ja nicht zu prüfen denn sobalt der Spieler in der Tabelle ist ist er auch Online
denn in der Tabelle kommt er nur durch nen befehl rein und wird dann nach dem Spiel wieder aus der tabelle gelöscht und kann dann auch nicht wieder rein bevor das spiel resettet wurde -
Nein man kann sie leider nicht so scripten das sie dauerhaft fahren auch wenn kein Spieler in der nähe ist da es in MTA noch nicht die funktion gibt maps bzw "weg punkte" zu speichern auf denen der Zug dann fährt
desswegen muss immer ein Spieler in der nähe sein damit der zug fährt -
Mit einer schleife z.B würde es gehen
Lua
Alles anzeigenfunction carspawn (player, cmd) local x, y, z = getElementPosition(player) local MODEL = 411 local AnzahlAutos = 6 while (AnzahlAutos > 0 ) do AnzahlAutos = AnzahlAutos - 1 auto = createVehicle (MODEL, x, y + 2, z) setVehicleColor(auto, 0, 0, 0, 0) setVehiclePaintjob(auto, 1) toggleVehicleRespawn(auto, false) setVehicleRespawnDelay ( auto, 60000 * 60) setVehicleRespawnPosition ( auto, x, y, z ) end if isVehicleBlown then setVehicleRespawnPosition ( auto, x, y, z ) end end addCommandHandler("vehcreate", carspawn)
-
Count ist grad egal hat nichts zu bedeuten
Ich speicher das Element Spieler
-
Ich kann garnicht mit getPlayerFromName arbeiten da es niemals die gleichen 20 Spieler sein werden die in der Tabelle sind
nochmal zur verdeutlichung
Server:
Luafunction drawCDCCE () for i, v in pairs( CCEPlayers ) do local count = 5 triggerClientEvent("drawCountdownCCE", v, count, CCEPlayers) end end
Client:
Lua
Alles anzeigenfunction drawCountdownCCE (count2,v) local count = count2 --for i, v in pairs( CCEPlayers ) do if (count > 0) then text = count addEventHandler("onClientRender", v, drawCDTEXTCCE) setTimer( function() removeEventHandler("onClientRender", v, drawCDTEXTCCE) drawCountdownCCE(count-1) end, 1000, 1 ) else text = "GO" addEventHandler("onClientRender", v, drawCDTEXTCCE) setTimer( function() removeEventHandler("onClientRender", v, drawCDTEXTCCE) end, 1000, 1 ) end --end end addEvent( "drawCountdownCCE", true ) addEventHandler( "drawCountdownCCE", getRootElement(), drawCountdownCCE )
//Tut mir leid aber das Forum hats grad nicht richtig hinbekommen mit dem einrücken...
So hab ich das jetzt
wie gesagt die Spieler in der Tabelle bleiben nicht gleich d.h getPlayerFromName fällt flach da ich ja den Spielernamen angeben muss -
Das heißt ich kann das garnicht für 20 Spieler ausführen sondern nur einen oder den gesamten Server?
-
Das bringt mich nicht weiter
sagen wir es mal so ich habe ca. 20 Spieler in der Tabelle diese sollen alle den dxDrawText angezeigt bekommen und die anderen Spieler aufm Server nicht
das heißt ich muss meine Tabelle ja so schon nutzen können ohne noch andere abfragen einzufügen wie deren Spielernamen
und beiaddEventHandler("onClientRender", getRootElement, draw)
getRootElement steht doch für ALLE Spieler d.h in diesen fall würde das Bild auch für alle Spieler wieder gezeichnet werden oder stehe ich nun komplett aufm schlauch...
-
Wenn du das ganze als befehl haben willst dann solltest du den befehl und den Spieler eintragen also
bei anderen sachen wie z.B wenn Argumente überwegen werden sollen wie wenn du z.B /car 411 machen willst um einen Infernus zu spawnen musst du ebendfals den Spieler angeben den Command und Zahl (zum beispiel)
also -
Ich möchte mit dxDraw etwas zeichen das nur spieler die ausgewählten spieler sehen
diese sind in einer Tabelle gespeichert
Sagt Bad Argument @ addEventHandler argument 2 got nilSo sende ich den Client die Spieler Tabelle
als CCEPlayers = bad argument
sende ich es als v so wie ich es bei outputChatbox verwende sagt er bad argument -
Morgen,
Ich hab eine Arena soweit fertig nun fehlt mir nur noch das Respawn
dazu muss ich allerdings das (Haupt) respawn script unterbinden
mit cancelEvent() klappt das allerdings nicht oder ich hab es falsch
naja aufjedenfall soll das (haupt) respawn script nur für die Spieler in der Arena unterbunden werden logischJemmand ne Idee wie ich das lösen kann ?
-
Steht oben bereits
-
-
Okay aber ich brauche doch eine solche schleife um später allen Spielern in der Arena einen TEXT zuschreiben und um zu überprüfen welche spieler noch leben und welche nicht etc