PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Easy Sweps



LaKunâR
07.07.2008, 13:46
Hi,

Ich habe ein kleines php Script geschrieben, das das erstellen von sweps vereinfachen soll:
Deutsch: http://dark-side-one.de.vu/swep/swep.php
Englisch: http://dark-side-one.de.vu/swep/swep.php?lang=en

Schaut es euch einfach mal an und sagt mir wie ihr es findet.
Ps: Die Erklärung der einzelnen Punkte ist noch nicht ganz fertig. Wenn ihr meint ich hätte etwas falsch gemacht, bitte sofort sagen damit ich es verbessern kann.


-lakunar

Stoned
07.07.2008, 14:55
joa, nice, ist nicht wie swep generator sondern schon ein bisschen mehr in richtung "erfahrung mit sweps" da man bei attack usw selber sachen rein machen kann :D


das Entfernen dieses Eintrages ist verboten

was willst du dagegen machen? S:


wenns wer wegmacht wirst du es kaum merken
es ist ein dummer punkt den viele kritisieren
es klingt kindisch, da es ein code und nicht was wirklich großes ist ;)


sonst wie gesagt recht gelungen :D

LaKunâR
07.07.2008, 15:18
... da man bei attack usw selber sachen rein machen kann :D
Habe mir auch gedacht, das ich es erst einfacher machen sollte, das problem war dann , das man keine spezielen attack eigenschaften erstellen konnte.
Ich habe zu dem auch noch vor eine ausführlich Hilfeseite dazu zu machen und alles schön zu verpacken. Dafür breuchte ich warscheinlich sogar ein bisschen Hilfe, weil ich auch nicht weiß was jede funktion macht.



was willst du dagegen machen? S:

nichts... das ist das problem. Ich finde aber jeder sollte so ehrlich sein und es zugeben wenn er eine kleine hilfe benuzt.
Edit: habe es geänder



sonst wie gesagt recht gelungen :D
Danke

Bahmut
07.07.2008, 15:41
Sieht echt gut aus.

Scarecrow
07.07.2008, 15:49
Ja also das schaut doch gut aus. Was mich überzeugt hat sind die Text-Eintragungsfelder für eigene Scripts. ;)

Also, gute Idee, gute Umsetzung.

LaKunâR
09.07.2008, 23:11
So habe das script noch ein bisschen erweitert:
Nach dem erstellen des Sweps wird eine shared-x.lua datei erstellt, die dan gedownloaded wird.
Die shared-x.lua dateien werden automatisch täglich wieder vom server gelöscht.

Was wird noch kommen?:
2 Sprachen support(deutsch englisch)(fehlt nur noch die auswahlseite)

Stoned
11.07.2008, 09:20
So habe das script noch ein bisschen erweitert:
Nach dem erstellen des Sweps wird eine shared-x.lua datei erstellt, die dan gedownloaded wird.
Die shared-x.lua dateien werden automatisch täglich wieder vom server gelöscht.

Was wird noch kommen?:
2 Sprachen support(deutsch englisch)(fehlt nur noch die auswahlseite)


welcher server? deiner? wenn ja ip ? D:

Witcher
11.07.2008, 16:24
if (SERVER) then

/*---------------------------------------------------------
SWEP wude mit dem DSO Swep Script erstellt
URL: dark-side-one.de.vu
---------------------------------------------------------*/

AddCSLuaFile ("shared.lua");
SWEP.Weight = 5;
SWEP.AutoSwitchTo = false;
SWEP.AutoSwitchFrom = false;

end

if (CLIENT) then

SWEP.PrintName = "Test Swep"
SWEP.Slot = 0
SWEP.SlotPos = 0
SWEP.DrawAmmo = true
SWEP.DrawCrosshair = true
SWEP.DrawWeaponInfoBox = true
SWEP.BounceWeaponIcon = true
SWEP.SwayScale = 1.0
SWEP.BobScale = 1.0

end

// Variables that are used on both client and server

SWEP.Author = "DSO Team"
SWEP.Contact = "[email protected]"
SWEP.Purpose = "Meine Absicht"
SWEP.Instructions = "links: Feuer "

SWEP.ViewModelFOV = 62
SWEP.ViewModelFlip = true
SWEP.ViewModel = "models/weapons/v_rif_aks74u.mdl"
SWEP.WorldModel = "models/weapons/w_rif_aks74u.mdl"
SWEP.AnimPrefix = "python"

SWEP.Spawnable = true
SWEP.AdminSpawnable = true

SWEP.Primary.ClipSize = 7
SWEP.Primary.DefaultClip = 30
SWEP.Primary.Automatic = true
SWEP.Primary.Ammo = "AR2"

SWEP.Secondary.ClipSize = 1
SWEP.Secondary.DefaultClip = 10
SWEP.Secondary.Automatic = true
SWEP.Secondary.Ammo = "AR2"


function SWEP:Initialize()
/*kann man leer lassen*/
end

function SWEP:Precache()
/*kann man leer lassen*/
end

function SWEP:PrimaryAttack()
/* Make sure we can shoot first*/
if ( !self:CanPrimaryAttack() ) then return end

/* Play shoot sound*/
self.Weapon:EmitSound("Weapon_AR2.Single")

/* 50 damage, Shoot 1 bullets, 0.01 aimcone = Streuung der kugeln*/
self:ShootBullet( 50, 1, 0.01 )

/* Remove 1 bullet from our clip*/
self:TakePrimaryAmmo( 1 )

/* Punch the player's view = Die Sicht wird nach oben gehauen*/
self.Owner:ViewPunch( Angle( -1, 0, 0 ) )

/* Zeit bis erneut geschossen wird*/
self:SetNextPrimaryFire( CurTime() + 0.05 )
end

function SWEP:SecondaryAttack()
/*Make sure we can shoot first*/
if ( !self:CanSecondaryAttack() ) then return end

/* Play shoot sound*/
self.Weapon:EmitSound("Weapon_Shotgun.Single")

/* 50 damage, Shoot 3 bullets, 0.03 aimcone*/
self:ShootBullet( 50, 3, 0.03 )

/* Remove 1 bullet from our clip*/
self:TakeSecondaryAmmo( 1 )

/* Punch the player's view*/
self.Owner:ViewPunch( Angle( -3, 0, 0 ) )

/* Zeit bis erneut geschossen wird*/
self:SetNextSecondaryFire( CurTime() + 0.05 )
end

function SWEP:CheckReload()

end

function SWEP:Reload()
self.Weapon:DefaultReload( ACT_VM_RELOAD );
end

function SWEP:Think()
/*kann man leer lassen*/
end

function SWEP:Holster( wep )
return true
end

function SWEP:Deploy()
return true
end

function SWEP:ShootEffects()
self.Weapon:SendWeaponAnim( ACT_VM_PRIMARYATTACK )
self.Owner:MuzzleFlash()
self.Owner:SetAnimation( PLAYER_ATTACK1 )
end

function SWEP:ShootBullet( damage, num_bullets, aimcone )
local bullet = {}
bullet.Num = num_bullets
bullet.Src = self.Owner:GetShootPos()
bullet.Dir = self.Owner:GetAimVector()
bullet.Spread = Vector( aimcone, aimcone, 0 )
bullet.Tracer = 5
bullet.Force = 1
bullet.Damage = damage
bullet.AmmoType = "Pistol"

self.Owner:FireBullets( bullet )

self:ShootEffects()
end

function SWEP:TakePrimaryAmmo( num )
/* Doesn't use clips*/
if ( self.Weapon:Clip1() <= 0 ) then

if ( self:Ammo1() <= 0 ) then return end

self.Owner:RemoveAmmo( num, self.Weapon:GetPrimaryAmmoType() )

return end

self.Weapon:SetClip1( self.Weapon:Clip1() - num )
end

function SWEP:TakeSecondaryAmmo( num )
/* Doesn't use clips*/
if ( self.Weapon:Clip2() <= 0 ) then

if ( self:Ammo2() <= 0 ) then return end

self.Owner:RemoveAmmo( num, self.Weapon:GetSecondaryAmmoType() )

return end

self.Weapon:SetClip2( self.Weapon:Clip2() - num )
end

function SWEP:CanPrimaryAttack()
if ( self.Weapon:Clip1() <= 0 ) then

self:EmitSound( "Weapon_Pistol.Empty" )
self:SetNextPrimaryFire( CurTime() + 0.2 )
self:Reload()
return false

end

return true
end

function SWEP:CanSecondaryAttack()
if ( self.Weapon:Clip2() <= 0 ) then

self.Weapon:EmitSound( "Weapon_Pistol.Empty" )
self.Weapon:SetNextSecondaryFire( CurTime() + 0.2 )
return false

end

return true
end

function SWEP:ContextScreenClick( aimvec, mousecode, pressed, ply )
/*kann man leer lassen*/
end

function SWEP:OnRemove()
/*kann man leer lassen*/
end

function SWEP:OwnerChanged()
/*kann man leer lassen*/
end

function SWEP:Ammo1()
return self.Owner:GetAmmoCount( self.Weapon:GetPrimaryAmmoType() )
end

function SWEP:Ammo2()
return self.Owner:GetAmmoCount( self.Weapon:GetSecondaryAmmoType() )
end

function SWEP:SetDeploySpeed( speed )
self.m_WeaponDeploySpeed = tonumber( speed )
end
/*kann man leer lassen*/

Ist das normal das der Code so aussieht?:(

€: im Editor sieht das aber anders aus...:(

Scarecrow
12.07.2008, 00:25
@Witcher: Hol dir Notepad++, der Texteditor ist fürn Arsch (falls du das meinst).

Lucid
12.07.2008, 03:08
SWEP.AnimPrefix = Die Animation, wie das Spielermodel die Waffe festhaelt
(pistol, smg, ar2, shotgun, rpg, phys, crossbow, melee, slam, grenade)

LaKunâR
12.07.2008, 08:51
welcher server? deiner? wenn ja ip ? D:
ne leider net mein server (freehoster:pytal.de).
die lösche ich über ne andere .php datei die per cronjobs aufgerufen wird.

@DrogenViech:
Danke habe es gleich eingefügt

Stoned
13.07.2008, 17:43
SWEP.IconLetter = "k"

koenntest du adden ;)

LaKunâR
14.07.2008, 09:21
ok habe es eingefügt, aber was könnte ich als Erklärung schreiben?

Pac_187
14.07.2008, 12:51
Das ist das Icon welches angezeigt werden soll.
Also das Icon oben in der Waffenlist wo auch die Pistole etc. sind


Und zwar musst du mal die Counter-Strike Source Schriftart
in den Schriftarten Order schmeiße, machst 'n neues Word-Dokument auf
und drückst mal das "k".

Beim kleinen "k" kommt die Shotgun beim großen "K" ein + ( Plus ).

LaKunâR
14.07.2008, 13:11
ah das ist ja interessant.
danke

Stoned
15.07.2008, 09:46
du koenntest auch noch ne are Ironsight einbauen :gmod:

also bei secondary attack, statt irgendwas ein Ironsight :3

LaKunâR
15.07.2008, 10:51
ja, aber leider bin ich noch net so gut in lua. Wenn du mir das scriptest werde ich es gerne einfügen.

Stoned
15.07.2008, 10:57
wenn ich das bloß koennte :3 vlt kann pac ma n auge drauf werden...

Witcher
15.07.2008, 13:51
ironsight vorzuprogramieren ist schwer, bzw unmöglich, da die koordianten bei jeden model anders sind.

Stoned
15.07.2008, 17:13
das mir klar, aber zB bei rechtsklick die funktion dann hinzufuegen...dann noch ein link zum ironsight generator und das ganze ist ein stueck besser D:

tkone@selfhelp
19.07.2008, 23:56
SWEP.Primary.Sound = Sound( "ordner/soundfile.wav" )
SWEP.Secondary.Sound = Sound( "ordner/soundfile.wav" )
SWEP.Primary.ReloadSound = Sound( "odner/soundfile.wav" )
feheln (Wir wollen ja Waffensounds)
1.Primärsound
2.Sekundärsound
3.Reloadsound

LaKunâR
20.07.2008, 08:32
Rein theoretisch hast du recht, aber sie werden in der "SWEP:PrimaryAttack()" Funktion definiert.
/* Make sure we can shoot first*/
if ( !self:CanPrimaryAttack() ) then return end

/* Play shoot sound*/
self.Weapon:EmitSound("Weapon_AR2.Single")
...


Ich werde es trotz dem einfügen, da es übersichtlicher ist.

tkone@selfhelp
20.07.2008, 22:07
jo danke

Richi
31.07.2008, 22:51
eine frage ist der code hier richtig?
ist fürs nachladen das soon sound abgespielt wird


SWEP.Primary.ReloadSound = Sound( "weapons/handgun/reload.wav" )

funktioniert bei mir nämlich ned... weiß ned warum :/

Schnufel
31.07.2008, 22:57
Ich sag nur eins. Anpinnen

Pac_187
01.08.2008, 13:26
Nein...
Da es sonst noch zu 5-Sec SWEP releases kommt!

LaKunâR
05.08.2008, 21:29
eine frage ist der code hier richtig?
ist fürs nachladen das soon sound abgespielt wird


SWEP.Primary.ReloadSound = Sound( "weapons/handgun/reload.wav" )

funktioniert bei mir nämlich ned... weiß ned warum :/
laut tkone@selfhelp ist es so richtig, werde es mal schnell testen
Edit:
so, du hattest recht.
Habe den Fehler behoben.
Tipp: der "Sound" Ordner darf nicht angegeben werden zb.
"sound/weapon/reload.wav" wird zu "weapon/reload.wav"
Edit ENDE:

Ich sag nur eins. Anpinnen

Nein...
Da es sonst noch zu 5-Sec SWEP releases kommt!
Ich weiß jetzt net ob ich das positiv oder negativ aufnehmen soll ^^

Richi
06.08.2008, 20:02
danke für deine infos aber das komische ist ja:
das der sound für normale schießen ja genauso ist... also wie folgt:



[...]
SWEP.Primary.Sound = Sound( "weapons/handgun/handgun.wav" )
[...]
SWEP.Primary.ReloadSound = Sound( "weapons/handgun/reload.wav" )
[...]


also der Primary.Sound befehl funktioniert ja... jetzt versteh ich nicht wieso der reloadsound nicht geht :/

hier ist mal der gesamte code vill. liegt der fehler ja irgendwo anders...




if ( SERVER ) then

AddCSLuaFile( "shared.lua" )

SWEP.HoldType = "pistol"

end

if ( CLIENT ) then

SWEP.PrintName = "HAND Gun"
SWEP.Author = "Denry (Remade by 0mighty_K)"
SWEP.ViewModelFOV = 60
SWEP.Slot = 1
SWEP.SlotPos = 1
SWEP.IconLetter = "b"

killicon.AddFont( "weapon_glock", "CSKillIcons", SWEP.IconLetter, Color( 255, 80, 0, 255 ) )

end


SWEP.Base = "weapon_cs_base"
SWEP.ViewModelFlip = false

SWEP.Spawnable = true
SWEP.AdminSpawnable = true

SWEP.ViewModel = "models/denry/v_pistol.mdl"
SWEP.WorldModel = "models/weapons/w_colt.mdl"

SWEP.Weight = 5
SWEP.AutoSwitchTo = true
SWEP.AutoSwitchFrom = true

SWEP.Primary.Sound = Sound( "weapons/handgun/handgun.wav" )
SWEP.Primary.Recoil = 1.6
SWEP.Primary.Damage = 15
SWEP.Primary.NumShots = 1
SWEP.Primary.Cone = 0.02
SWEP.Primary.ClipSize = 10
SWEP.Primary.Delay = 0.5
SWEP.Primary.DefaultClip = 301
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = "smg1"
SWEP.Primary.ReloadSound = Sound( "weapons/handgun/reload.wav" )

SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = "none"


der ordner sieht wie folgt aus:
der ordner ist Hand gun
und unter: sound/weapon/handgun/soundname.wav sind halt die sounds
die lua datei ist unter: /lua/weapons/weapon_HANDgun/shared.lua

und eine frage hätte ich noch wie heißt der befehl um den sound zu bestimmen wenn das magazin leer ist also so wie bei ner waffe wenn das magazin alle ist immer soon clicken kommt... diesen sound mein ich

hoffe ihr könnt mir helfen ^^

LaKunâR
06.08.2008, 20:23
Also wichtig ist, damit die sounds abgespielt werden, das in der Reload funktion das steht:

if (self.Weapon:DefaultReload( ACT_VM_RELOAD )) then
self.Weapon:EmitSound ( self.Primary.ReloadSound )
end
und in der attack(p) funktion:

self.Weapon:EmitSound ( self.Primary.Sound )
und in der attack(s) funktion:

self.Weapon:EmitSound ( self.Secondary.Sound )
Dann müsste alles gehen, und bei mir geht es auch.

Aber da du dein swep net mit dem Generator erstellt hast(erkenne ich an der code struktur) gehört das hier net rein

Richi
06.08.2008, 20:34
den gesamten code hab ich doch schon oben gepostet



hier ist mal der gesamte code vill. liegt der fehler ja irgendwo anders...

Code:


if ( SERVER ) then

AddCSLuaFile( "shared.lua" )

SWEP.HoldType = "pistol"

end

if ( CLIENT ) then

SWEP.PrintName = "HAND Gun"
SWEP.Author = "Denry (Remade by 0mighty_K)"
SWEP.ViewModelFOV = 60
SWEP.Slot = 1
SWEP.SlotPos = 1
SWEP.IconLetter = "b"

killicon.AddFont( "weapon_glock", "CSKillIcons", SWEP.IconLetter, Color( 255, 80, 0, 255 ) )

end


SWEP.Base = "weapon_cs_base"
SWEP.ViewModelFlip = false

SWEP.Spawnable = true
SWEP.AdminSpawnable = true

SWEP.ViewModel = "models/denry/v_pistol.mdl"
SWEP.WorldModel = "models/weapons/w_colt.mdl"

SWEP.Weight = 5
SWEP.AutoSwitchTo = true
SWEP.AutoSwitchFrom = true

SWEP.Primary.Sound = Sound( "weapons/handgun/handgun.wav" )
SWEP.Primary.Recoil = 1.6
SWEP.Primary.Damage = 15
SWEP.Primary.NumShots = 1
SWEP.Primary.Cone = 0.02
SWEP.Primary.ClipSize = 10
SWEP.Primary.Delay = 0.5
SWEP.Primary.DefaultClip = 301
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = "smg1"
SWEP.Primary.ReloadSound = Sound( "weapons/handgun/reload.wav" )

SWEP.Secondary.ClipSize = -1
SWEP.Secondary.DefaultClip = -1
SWEP.Secondary.Automatic = false
SWEP.Secondary.Ammo = "none"





der befehl:


if (self.Weapon:DefaultReload( ACT_VM_RELOAD )) then
self.Weapon:EmitSound ( self.Primary.ReloadSound )
end

ist das jetzt dieses normalerweise clicken wenn das magazin leer ist?

sry ich kenn mich in lua noch ned wirklich gut aus...:oops:

LaKunâR
06.08.2008, 20:41
Aber da du dein swep net mit dem Generator erstellt hast(erkenne ich an der code struktur) gehört das hier net rein
Ein letztes mal noch:
1. Wenn das der ganze Code ist wundert es mich das du überhaut schießen kannst ?
(wo sind den die ganzen funktionen?)
2. Nimm den Generator wenn du nicht viel Ahnung hast, der macht nur selten fehler
3. das mit dem "leer" klicken weiß ich auch nicht

Richi
06.08.2008, 21:06
Ein letztes mal noch:
1. Wenn das der ganze Code ist wundert es mich das du überhaut schießen kannst ?
(wo sind den die ganzen funktionen?)
2. Nimm den Generator wenn du nicht viel Ahnung hast, der macht nur selten fehler
3. das mit dem "leer" klicken weiß ich auch nicht

ok sry werd mich mal ran machen das hinzukriegen^^ thx aber torzdem ;)