Half Life 2 Deathmatch

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Painkiller
User
Beiträge: 14
Registriert: Montag 10. September 2012, 18:56

Hi Leute,

ich habe hier ein script für die RPG (Raketenwerfer)
könnte jemand hier dieses als vorlage nehmen und das gleiche für die waffen combine ball und granate umbasteln.

Der Combine ball sollte denn wenn er auf ein model trifft blauen qualm erzeugen.
Und die granate sollte einfach nur feuer und schwarzen rauch erzeugen wnn sie das model tötet.

Hier habt ihr ein Vidieo dazu um euch mal etwas genauer zu zeigen was ich meine:
http://www.youtube.com/watch?v=Lyjkedb9GoI

Leider gibt es diesen Scripter nicht mehr, er hatt sich komplett aus der half life 2 deathmatch zene getrennt.
dieses script von mir wurde von einem python scripter bearbeitet somit es überhaubt auf dem neusten Update leuft.

Code: Alles auswählen

import es
import usermsg
import gamethread
import weaponlib

def player_death(ev):
        weapon = ev["weapon"]
        attacker = ev["attacker"]
        userid = ev["userid"]
        if weapon == "rpg_missile":
                usermsg.shake(attacker, 0.5, 5)
                usermsg.fade(attacker, 0, 0.15, 0, 255, 255, 220, 160)
                fragcloud(userid)
               
def fragcloud(userid):
        clouds = es.createentitylist("env_ar2explosion")
        es.server.queuecmd("es_xgive %s env_ar2explosion"% userid)
        es.server.queuecmd("es_fire %s env_ar2explosion addoutput 'Material particle/particle_smokegrenade1.vmt'"% userid)
        es.server.queuecmd("es_fire %s env_ar2explosion explode"% userid)
        gamethread.delayed(8, es.server.queuecmd, ("es_fire %s env_ar2explosion Kill"% userid))
        for cloud in clouds:
                gamethread.delayed(10, es.server.queuecmd, ("es_fire %s %s Kill"% (userid, cloud)))
               
               
def player_spawn(ev):
        for index in weaponlib.getIndexList("env_ar2explosion"):
                if es.getindexprop(index, 'CBaseEntity.m_hOwnerEntity') == -1:
                        es.server.queuecmd('es_xremove %s' % index)
Zuletzt geändert von Hyperion am Montag 10. September 2012, 19:55, insgesamt 2-mal geändert.
Grund: Code in Python-Code Tags gesetzt. Thread ins Allgemeine Fragen Forum verschoben
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ich fürchte hier hängen nicht so viele HL2 Zocker / Modder rum...

Wenn ich mir mal den Code so naiv angucke, dann sticht mir da eine Zeile ins Auge:

Code: Alles auswählen

if weapon == "rpg_missile":
Ich vermute mal, das `rpg_missile` der HL2 interne Name für diesen Raketenwerfer ist. Also könntest Du an dieser Stelle einfach mal den Namen einer anderen Waffe einsetzen und gucken, ob das schon alles ist!
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Painkiller
User
Beiträge: 14
Registriert: Montag 10. September 2012, 18:56

Leider geht das nicht
Benutzeravatar
sparrow
User
Beiträge: 4530
Registriert: Freitag 17. April 2009, 10:28

Ich weiß nicht wo man das ausführt, aber es wäre vielleicht sinnvoll sich den Namen der Waffe mal ausgeben zu lassen?

Code: Alles auswählen

print weapon
Du wärst aber wahrscheinlich in einem HL2-Mod-Forum deutlich besser aufgehoben.
deets

Da hat er das ja schon versucht. Man klaubt sich halt so den Code zusammen...

http://forums.eventscripts.com/viewtopi ... 40&t=45714
lunar

@deets Nun, dort zeigt der OP wenigstens, dass er zumindest versucht hat, das selbst zu lösen. Für mich wäre das Anlass genug, ihm zu helfen – wenn ich Ahnung von der Materie hätte.
Painkiller
User
Beiträge: 14
Registriert: Montag 10. September 2012, 18:56

Erstmal muss ich deutlichst betonen des hier nix geklaut wurde das RPG script gabs schon seit 2009-02-10 14:55:31

genau hier: http://addons.eventscripts.com/addons/v ... _SmokeRing

leider ist es bei einem großen Orangebox update kaputt gegangen

und da dieser sogenannte "bpoag" nicht mehr in der half life scene vertreten ist und auch nach mehreren Mails von mir an ihm nicht reagierte
"frage auf den Postal Mod den er geschrieben hatt" sich nicht geantwortet hatt.

Versuche ich seit mehreren jahren jemanden zu finden der diese effecte des "Brand New for 1979 Server" http://www.youtube.com/watch?v=Lyjkedb9GoI scripted.

Um Half Life 2 Deathmatch die chance zu geben nicht ganz vom Bildschirm der Gamer zu verschwinden.


Ich hoffe ihr könnt mich jetzt mehr verstehen warum dies so wichtig für mich.




Danke an euch für die AUfmerksamkeit wer mir da weiter helfen könnte möchte ich würde mich freuen.

GG Painkiller
deets

@Painkiller

Ich verstehe schon, dass dir das wichtig ist. Und ich habe dir auch nicht unterstellt, ge*KLAUT* zu haben, sondern geklau*B*t. Das ist ein himmelweiter Unterschied!

@lunar: ich sehe, dass ihm das wichtig ist, ich sehe, dass er sich mit aufsetzen & konfigurieren eines Servers beschaeftigt. Ich sehe nicht, dass er selbst an den Programmcode Hand angelegt hat, sondern dort von einem User etwas repariert bekommen hat, der aber offensichtlich nicht mehr machen mag und sich auch nicht weitergehend auskennt. Und jetzt fehlt noch ne ganze Menge zu seinem Glueck.

Ich habe ja auch kein Problem damit, dass er hier fragt. Kostet nix. Ich glaube nur nicht, dass er programmieren lernen will. Sondern jemanden finden, der ihm sein Problem loest. Das wird aber nur passieren, wenn's entweder Geld gibt (unwahrscheinlich), oder jemand das Thema selbst so wahnsinnig spannend findet (nicht viel wahrscheinlicher).
Painkiller
User
Beiträge: 14
Registriert: Montag 10. September 2012, 18:56

Mit deinem letzten Punkt könntest du Recht haben.

Denn vor 2 Jahren hab ich im Alliedmodder Forum Geld geboten auch da fand sich niemand.

Und nun verdien ich nicht mehr soviel wie früher.

Ansonsten würde ich euch gerne Entlohnen für dieses Projekt.




Ich möchte auch nich scripten lernen das stimmt das ist sicher ne menge arbeit.
Als leihe sehe ich nur paar zeilen in diesem script was nicht viel arbeit sein kann ? meiner meinung nach aber warscheinlich hängt dort noch eine menge mehr hinter.


WAS ICH ANBIETEN KÖNNTE: Ein Teamspeak 3 Server mit 50 Slots, Einen Game Server für Half Life 2 Deathmatch, Teamfortress 2, Adrenalien Gamer 2, Counterstrike Source vielleicht noch wenn ich mich mit beschäftige ^^ mit diesen Sachen könnte ich euch Entlohnen.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Die Arbeit ist nicht der Code, sondern HL2 installieren bzw die Mods die nötig sind um HL um Python zu erweitern. Ich habe zwar HL2, spiele aber kein Deatmatch und habe es mom nichtmal installiert.

Wie erweitert man sein Source Engine um die Scripting Möglichkeiten? Kann es sein das man dafür zwingend einen dedizierten Server von HL starten muss?
Painkiller
User
Beiträge: 14
Registriert: Montag 10. September 2012, 18:56

Ich könnte es auf meinen testen wenn sie wollen ?

also das heisst wenn sie soetwas scripten könnten?

Und ich könnte ihnen versuchen Fehler meldungen zu schicken wenn nötig.
deets

Das ist ungefaehr so wie der Versuch, den Vergaser eines Rennmotors einzustellen, indem man ihn per Meldereiter von der Rennstrecke zum Hersteller in den Schwarzwald schickt, und wieder zurueck. Sowas ist nicht praktikabel. Da muss direkter Zugriff auf den Server her, so dass man das Verhalten des Programmes direkt beobachten kann. Und wohl auch noch ne ganze Menge Erfahrung mit dem schreiben solcher HL2-Skripte.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Eventscripts ist eigentlich relativ einfach (für meinen Geschmack zu einfach, e.g. kein gescheites Event-System und die API fühlt sich auch manchmal schlecht an).

Allerdings habe ich Eventscripts nie mit HL2 benutzt sondern nur mit CSS, deshalb kann ich dir nicht wirklich helfen. Aber ein paar Tipps habe ich trotzdem.

Um "Skripten" zu lernen, brauchst du eigentlich nur Python-Kenntnisse, in die Eventscripts API hast du dich relativ schnell eingearbeitet, was dann noch hilft, ist die HL2 Developer Dokumentation einzustudieren (da gibt es ein Engine-Wiki), dort werden die Internals beschrieben (u.a. wie man Effekte setzt, außerdem findet man einen Großteil der Dokumentation die man für alle `es.server` commands braucht).

Ich würde dir gerne mehr helfen, leider ist meine Eventscripts-Zeit schon ~2 Jahre her und HL2 habe ich auch nicht.

Viel Glück.

Edit: Habe das Wiki gefunden: https://developer.valvesoftware.com/wiki/Main_Page

Edit: Ich könnte mir vorstellen, man könnte den gewünschten Effekt mit diesen hier erzeugen:
https://developer.valvesoftware.com/wik ... nergy_core
https://developer.valvesoftware.com/wiki/Env_fire
https://developer.valvesoftware.com/wiki/Env_embers
https://developer.valvesoftware.com/wiki/Point_tesla

Allerdings weiß ich nicht wie man diese erzeugt (sollte mit es_fire machbar sein, allerdings weiß ich auch nicht welche Argumente erwartet werden).
the more they change the more they stay the same
Painkiller
User
Beiträge: 14
Registriert: Montag 10. September 2012, 18:56

Hi Leute and (Dav1d)

ich habe das mir mal angeschaut aber für mich ist das zu schwierig.

Ich würde es super finden wenn jemand von euch so etwas fertigen könnte denn ihr seit in der materie drinne für euch ist es sicherlich nen kinderspiel.

Weil ihr die meisten begriffen schon auswendig könnt.


Vielen dank der Painkiller
lunar

@Painkiller Wir sind nicht in der Materie „drinne“. Ich kenne Half Life 2 nicht, vor allem nicht dessen Scripting-Schnittstelle, und ich bin mir sicher, dass ich da für die Mehrheit der Teilnehmer hier spreche.
Benutzeravatar
sparrow
User
Beiträge: 4530
Registriert: Freitag 17. April 2009, 10:28

@Painkiller: Um das kurz zu erklären: die Mehrzahl der Leute hier können wohl Python programmieren. Das heißt aber noch lange nicht, dass sie auch für Spiele (oder andere Anwendungen) scripten können. Die Programmiersprache legt den Syntax fest, damit der Interpreter weiß was zu tun ist. Kennt man die Syntax weiß man auch wie man Funktionen aufruft, aber noch lange nicht wie sie heißen und was sie tun. Mit Python kommt eine ziemlich umfangreiche "Standardbibliothek" mit, jeder der sich mit Python beschäftigt, wird sich früher oder später recht gut mit ihr auskennen. Das heißt aber noch lange nicht, dass man jede Schnittstelle jeglicher Bibliothek die existiert ansprechen kann, ohne sich vorher mit ihr befasst zu haben. Oder anders: Ich kann deutsch, kann hier im Forum so schreiben, dass mich jeder halbwegs versteht. Trotzdem sind Gesetzesbücher für mich böhmische Dörfer. Schreiben kann ich sie schon gar nicht.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Das was Sparrow Dir im langen erklärt hat, lässt sich mit dem Wort "Domäne" abkürzen. Wir kennen uns eben mit der Problemdomäne nicht aus! Das ist der Grund, wieso wir Dir nur schlecht helfen können.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
lunar

@Hyperion Das hast Du jetzt schön gesagt ;)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Painkiller hat geschrieben:Ich würde es super finden wenn jemand von euch so etwas fertigen könnte denn ihr seit in der materie drinne für euch ist es sicherlich nen kinderspiel.
Ich finde Arbeit auch immer einfach, wenn andere die für mich machen :evil: Wenn du, oder jemand anderes aus der HL2 Deathmatch Community, nicht bereit ist programmieren zu lernen um das Projekt am Leben zu erhalten, dann kann die Beliebtheit oder der Leidensdruck ja nicht so groß sein. Zumindest du scheinst dir ja nicht die Mühe machen zu wollen, vielleicht mal vier Wochen eine Sprache zu lernen und in dein Hobby zu investieren.
Das Leben ist wie ein Tennisball.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

EyDu hat geschrieben:Ich finde Arbeit auch immer einfach, wenn andere die für mich machen :evil: Wenn du, oder jemand anderes aus der HL2 Deathmatch Community, nicht bereit ist programmieren zu lernen um das Projekt am Leben zu erhalten, dann kann die Beliebtheit oder der Leidensdruck ja nicht so groß sein. Zumindest du scheinst dir ja nicht die Mühe machen zu wollen, vielleicht mal vier Wochen eine Sprache zu lernen und in dein Hobby zu investieren.
Nicht jeder hat die Zeit dazu.

Aber "EyDu" hat auch recht, so schwierig, wie es auf den ersten Blick scheint ist es nicht, man muss sich "nur" mal "4 Wochen" damit beschäftigen, dann wird das schon.
Ich denke, wenn du dich damit ein bisschen auseinander setzt, wird das schon was, falls du Probleme hast, kannst hier ja immer noch nach Hilfe fragen (evt. kann ich auch mit EventScripts helfen, ist zwar schon ein bisschen her, aber das ist wie Fahrrad-fahren ;)).
the more they change the more they stay the same
Antworten