Not logged inClonkspot Forum
Forum Home Help Search Register Login
Up Topic Deutsch / Miniblogs / Bitte um Hilfe mit script
1 2 3 Previous Next  
Parent - - By Tflk3 (More than 50 posts.) Date 04.01.2014 21:39 Edited 05.01.2014 11:16
Ameisen-Flug ist nun Verbessert worden. Hab dafür den Angel-Clonk benutzt.
Jetzt is dort nur noch nen schönheitsfehler mit Entstanden....
Die ID der "Neuen" Königinen-Ameise ist von ANTK auf ANG2 geändert worden
da wenn ich diese änder aus einem mir Unerfindlichen Grund die Ameise sonst
nicht mehr fliegen kann.

So habs hinbekommen das meine Ameisen-Königin jetzt CrewMembers die in ihrer nähe stehen über doppelt
Runter "Einsammelt" dann werden diese auch über ihr angezeigt.

Leider gibts da nen neuen Fehler:
Falls man den "Clonk" Auswählt der in der Königin ist und DOWN drückt verlässt dieser
zwar die Königin läst sich aber nicht mehr Steuern.
Habe den Fehler der dabei entstand als die Königin in über THROW rauswirft schon behoben.
Hab hinter dem Exit befehl ein SetAction(Commander,"Walk") angehängt, somit lässt
sich der Clonk nachdem die Königin ihn ausgeworfen hat steuern aber wenn er sie von "selbst" verlässt
nicht mehr.

Gibt es eine Möglichkeit zu verhindern das der "Clonk" in der Königin gesteuert werden kann?
Parent - - By Zapper (More than 500 posts.) Date 05.01.2014 16:54

>Die ID der "Neuen" Königinen-Ameise ist von ANTK auf ANG2 geändert worden
>da wenn ich diese änder aus einem mir Unerfindlichen Grund die Ameise sonst
>nicht mehr fliegen kann.


Vielleicht benutzt du die ID irgendwoanders schonmal oder so

>Gibt es eine Möglichkeit zu verhindern das der "Clonk" in der Königin gesteuert werden kann?


Du koenntest allen Objekten im callback Collection2() die Kontrolle nehmen und spaeter wieder geben. Also so von wegen

func Collection2(object obj)
{
if (GetOCF(obj) & OCF_CrewMember) obj->SetCrewEnabled(false);
}

func Ejection(object obj)
{
if (GetOCF(obj) & OCF_CrewMember) obj->SetCrewEnabled(true);
}

(nicht getestet!)
Parent - - By Tflk3 (More than 50 posts.) Date 05.01.2014 18:51
@Zapper
Danke für deinen Tipp :wink:

Hab ne andere möglichkeit gefunden und diese bis eben verfeinert
is auch schon eine neue Version ON da könnt ihr ja mal reinschaun wenn ihr mögt und
mir sagen was ihr davon haltet.

Das mit der ID hab ich schon kontrolliert is aber sonst nirgends verwendet.
(Is aber nich so schlimm weil ich die ID in der Brutkammer angepasst habe)
Mir is halt nur nicht klar warum ich die ID nicht ändern kann ohne ihre Flugfähigkeit
zu verlieren....:tongue: alle anderen Fähigkeiten bleiben erhalten.
Parent - - By Zapper (More than 500 posts.) Date 05.01.2014 22:33
Um ganz schnell zu checken ob die ID schon vergeben ist, kannst du übrigens GetName(0, ANTK) machen - wenn das einen Namen ausspuckt, dann wär die ID vergeben :)
Parent - By Tflk3 (More than 50 posts.) Date 06.01.2014 08:06
Cool :cool:
Hab ich sofort getestet. Als ausgabe kommt:

-> GetName(0, ANTK)
= 0

Also gehe ich davon aus das die ID einzigartig ~wäre.
- - By Tflk3 (More than 50 posts.) Date 06.01.2014 16:26 Edited 06.01.2014 16:58
Hi an alle: Ich habe vor noch einige Spezial-Ameisen zu Bauen weiß aber nicht
ob die so gut ins Pack-passen würden oder ob diese dann zu Overpowert wären dass man sie nur nehmen würde..... Ich schick euch hier mal nen link mit ner kleinen beschreibung meiner Ideen. http://imageshack.com/a/img824/4595/8hoy.png -die Pics sind nur Skizzen im Spiel werd ich sie anders machen falls ich sie einbaue. Schreibt mir mal was ihr davon haltet.

und noch mehr ~Bugs
ich möchte das das Gebäude Feuergrube nur für den Spieler und seine Verbündeten angezeigt wird und ansonsten die Grafik bzw. Farbe der Erde hat... über diese Funktion kann ich schonmal dafür sorgen das nur der Spieler und sein Verbündeter ihn sieht aber bei einem Feind ist dann
ein Loch in der Landschaft.....

func Initialize()
{Local(GetOwner()/32)=1<<(GetOwner()%32); SetVisibility(VIS_Owner() | VIS_Allies());
return 1;}

Wie mach ich das?
Parent - - By Zapper (More than 500 posts.) Date 06.01.2014 20:53

>ich möchte das das Gebäude Feuergrube nur für den Spieler und seine Verbündeten angezeigt wird und ansonsten die Grafik bzw. Farbe der Erde hat... über diese Funktion kann ich schonmal dafür sorgen das nur der Spieler und sein Verbündeter ihn sieht aber bei einem Feind ist


Mh, das ist nicht so leicht, weil in der Landscape ja wirklich ein Loch ist. Ich hatte das irgendwann früher mal so gelöst, dass ich ein Objekt drübergelegt hatte, was Visibility VIS_Enemy hatte und genau so wie die Erdtexture von der Landschaft aussah. Hatte eigentlich ganz gut funktioniert
Parent - By Tflk3 (More than 50 posts.) Date 07.01.2014 19:20 Edited 09.01.2014 17:31
@ Zapper
Danke hat Super Funktioniert :grin:
- - By Tflk3 (More than 50 posts.) Date 09.01.2014 17:40 Edited 13.01.2014 23:20
Hier der Link zur CCAN Seite mit den neuesten Updates version 1.6 :cool:
http://www.ccan.de/cgi-bin/ccan/ccan-view.pl?a=view&i=6160

ist erstmal das letzte update ich versuche jetzt die Grafik zu überarbeiten :tongue:
(Bin leider nich so geübt darin)
Falls mir jemand dabei helfen mag (Weil ich das gerne mit Blender oder sowas in der Richtung machen würd, mit diesem Programm aber garnicht vertraut bin) kann er sich Hier oder auf den Kommentaren melden :wink:
ansonsten schreib Bug, Fehler und Verbesserungsvorschläge an mich damit ich diese mit einbringen kann, und habt gedult mit mir und dem Versuch die Grafiken zu überarbeiten :grin:
Parent - - By Tflk3 (More than 50 posts.) Date 17.01.2014 19:17 Edited 18.01.2014 21:42

>Jetzt is das Pack auch auf Clonk Forge vertreten
>http://www.clonkforge.net/pr.php?pr=1522

Parent - - By Tflk3 (More than 50 posts.) Date 18.01.2014 21:42
Wurde ersteinmal "Unsichtbar" Gemacht (also nur sichtbar für "Mitarbeiter") da ich noch ein CSS für die Projects seite erstellen muß.... könnte etwas dauern daher bitte bei Problemen hier die Kommentare nutzen bis ich's hinbekommen habe oder einen nette Clonker finde der sich mit CSS auskennt und mir dabei helfen mag :-)
Parent - By Nachtfalter (More than 1000 posts.) Date 19.01.2014 10:36
Gute Projekte punkten mit Bildern/Videos und Gameplay, das CSS ist bloß Sahnehäubchen. Kannst du getrost vernachlässigen.
Parent - - By Zapper (More than 500 posts.) Date 19.01.2014 13:47
Ich schliess mich da NF an. Gute Texte/Screenshots und sowas sind imo wichtiger als ein CSS
Parent - - By Tflk3 (More than 50 posts.) Date 19.01.2014 18:50
Ah OK. Sollte ich also nur in die Beschreibung einfließen lassen bei Clonk Forge.
Bilder und Texte sind da ja kein Problem aber gibts da irgendwelche guten und einfachen freeware Programme mit denen ich Videos machen kann. Und wenn ja - ist das raufladen bei Youtube oder ähnlichem Kostenlos?

Werd wenn ich nen Paar Screenshots gemacht habe diese einfügen und die Seite wieder "Sichtbar" machen ;-) danke für eure Kommentare ^^
Parent - - By Zapper (More than 500 posts.) Date 19.01.2014 22:47
Zum Videos machen kenne ich als Freeware nur Camstudio - vielleicht hat da jemand noch einen besseren Vorschlag oder so. Und ja, Raufladen auf Youtube ist kostenlos
Parent - - By Tflk3 (More than 50 posts.) Date 20.01.2014 13:56
Werd das Programm nachher gleich mal antesten ^^ Sobald ich nen paar schöne In-Game Videos hab werd ich die in Clonk Forge einfügen und die Beschreibung überarbeiten ich denke das ich die seite bis spätestens zum Wochenende wieder öffne sobald ich sie mit den Videos und Bildern nen Bissel aufgepept habe ^^
Parent - - By Tflk3 (More than 50 posts.) Date 21.01.2014 11:53
So Ant-Pack ist jetzt wieder für alle auf CF sichtbar Videos werd ich noch einfügen ^^
https://clonkforge.net/pr.php?pr=1522
Parent - By Maddino (More than 50 posts.) Date 26.01.2014 11:38
Eure Projektseite gefällt mir sehr gut, besonders die vielen Ameisenanimationen :wink: nur der "Beschreibungsbereich", dieser hellgrüne Hintergrund, ich weiß nicht.. irgendwas gefällt mir daran nicht :sad:
Aber die Präsentation ist ja nur Nebensache. Bei nächster Gelegenheit werd ich die Szenarien mal anspielen!
- - By Tflk3 (More than 50 posts.) Date 17.01.2014 23:29 Edited 17.01.2014 23:43
Gibt es eine Möglichkeit zu verhindern das Baustellen nach oben schwimmen?

und kann man bei Pflanzen sagen das wenn sie ausgewachsen sind diese "Fallen" sowie am land sowohl auch im Wasser?

Hab schon nen bissel rumgetestet find aber nix funktionierendes bei der Pflanze. (Geht um die Pilze in der Ant-Pack)
Hab schon Probiert:

if(GetCon()<100) SetPosition (0,GetY()-1, object pObj, bool fCheckBounds);

oder aber auch

SetComDir(COMD_Down());

mit der Baustelle hab ich noch keine Idee wo ich dies ändern kann....
Bitte schreibt mir mal was ich da noch probieren könnte....

Mfg Tflk3
Parent - - By Zapper (More than 500 posts.) Date 18.01.2014 13:26

>if(GetCon()<100) SetPosition (0,GetY()-1, object pObj, bool fCheckBounds);


Ich bin mir sicher, da wurden dir Fehler ausgegeben (in der Konsole oben bei Warnings & Errors :)
Wenn in der Doku "object pObj" dann heisst das, dass du an diese Stelle ein "object" Parameter übergeben sollst und der intern "pObj" heisst (was für dich in dem Fall egal ist).
Im Fall von SetPosition gehört da das Objekt hin, von dem die Position geändert werden soll (bzw this() oder 0 wenn das aktuelle Objekt gemeint ist).
In deinem Fall würde wohl SetPosition(GetX(), GetY() - 1); schon reichen, wenn du das Objekt nach oben verschieben willst (und +1 für nach unten). Bzw SetPosition(GetX(), GetY() -1, this(), false); wenn du es ausschreiben willst.
Parent - - By Tflk3 (More than 50 posts.) Date 19.01.2014 08:44
mmm Habs geändert aber die Pilze bleiben stur auf ihrer stelle hängen.....
Parent - - By Zapper (More than 500 posts.) Date 19.01.2014 13:45
Wann wird das denn ausgefuehrt? Und bist du dir sicher, dass der Pilz da noch nicht ausgewachsen ist? (GetCon < 100)
Parent - - By Tflk3 (More than 50 posts.) Date 19.01.2014 18:52

>Wann wird das denn ausgefuehrt? Und bist du dir sicher, dass der Pilz da noch nicht ausgewachsen ist? (GetCon < 100)


Ja habs auf if(GetCon <= 100) ....
aber die Bleiben einfach an ort und stelle "Hängen"
Parent - - By Zapper (More than 500 posts.) Date 19.01.2014 22:46
Und das wird auch ausgeführt?
Parent - - By Tflk3 (More than 50 posts.) Date 20.01.2014 13:53
Na hoff ich doch habs in eine TimerCall funktion gesteckt Timer=10

Aus dem Script:

protected func TimerCall()
{if(GetCon()<=100)
SetPosition(GetX(), GetY() - 1);
return(1);}
Parent - - By Zapper (More than 500 posts.) Date 20.01.2014 22:46
Und in der DefCore steht dann auch TimerCall=TimerCall? (Weil so hast du ja deine Funktion genannt).
Wenn man sich wundert, warum eine bestimmte Stelle Code nicht funktioniert, hilft es oft herauszufinden ob der Code überhaupt ausgeführt wird. zB könntest du ein Log("aktuelle groesse: %d", GetCon()) in deine Funktion stecken und dich dann wundern, warum entweder garnichts im Log landet, oder trotz einer Größe <=100 sich die Position nicht ändert
Parent - - By Tflk3 (More than 50 posts.) Date 21.01.2014 11:33 Edited 21.01.2014 15:24
TimerCall=TimerCall
Timer=10

hab mal das log

>Log("aktuelle groesse: %d", GetCon());


eingefügt wird aber nich aufgerufen.....

WARNING: Unexpected value "TimerCall"! (in section "DefCore", after line 0, Ant-Pack  Maps.c4f\Ant-Pack.c4d\Vegetation.c4d\Mushroom.c4d\DefCore.txt)
WARNING: Unexpected value "Timer"! (in section "DefCore", after line 0, Ant-Pack  Maps.c4f\Ant-Pack.c4d\Vegetation.c4d\Mushroom.c4d\DefCore.txt)

?????????????
is doch in der DefCore und im script??? Was mach ich falsch?
Parent - - By Zapper (More than 500 posts.) Date 21.01.2014 22:43

>?????????????
>is doch in der DefCore und im script??? Was mach ich falsch?


Wenn er dir sagt "unexpected value "Timer"" also "unerwarteter Wert "Timer"", dann könnte es zB sein, dass er den Wert oben schonmal gefunden hat. Hast du den Eintrag doppelt drin?
Parent - - By Tflk3 (More than 50 posts.) Date 22.01.2014 09:23
!!! Oh !!! Peinlich... :whatever:
ja hab ich....:grin:

Jetzt Funkst muß nur die Pilze noch "Stoppen" Jetzt Verschwinden sie in den Boden bekomm ich aber bestimmt hin ^^
@Zapper Danke
Parent - - By Zapper (More than 500 posts.) Date 22.01.2014 09:26
Stichwort wär GBackSolid
Parent - By Tflk3 (More than 50 posts.) Date 22.01.2014 09:48
protected func TimerCall()

{
if(iResttime==350){iResttime=0; Call("Seed");} // Um den alten TimerCall weiter auszuführen

if(iResttime<=-1){iResttime=0;}

if(GetMaterial(0, 0) == Material("Tunnel")) SetPosition(GetX(), GetY() + 1);

if (iResttime++)return(1);

return(1);
}

^^ Habs grad so zum laufen bekommen aber gut zu wissen beim nächsten Problem ^^
Danke
- - By Tflk3 (More than 50 posts.) Date 22.01.2014 09:52
Was haltet ihr von der Project seite: https://clonkforge.net/pr.php?pr=1522 und was sollte ich noch ändern?
Parent - - By Nachtfalter (More than 1000 posts.) Date 22.01.2014 16:28
Lesbarkeit sollte über allem anderen stehen.
Parent - - By Tflk3 (More than 50 posts.) Date 22.01.2014 17:24

>Lesbarkeit sollte über allem anderen stehen.


????
Kann mans nich lesen??
Parent - - By Luchs (More than 1000 posts.) Date 22.01.2014 18:52 Edited 22.01.2014 18:55
Der Kontrast von dem grünen Text auf dem grün-weißen Hintergrund ist nicht optimal. Der Text sollte vielleicht etwas dunkler sein. Außerdem ist der Hintergrund sehr kontrastreich, was beim Lesen ablenkt.

Etwa so ist die Lesbarkeit schon wesentlich besser: https://i.imgur.com/Hmd1nxQ.png

Und lade deine Screenshots besser generell auf der Clonkforge hoch oder zumindest auf imgur, das ist schneller und angenehmer als Imageshack.
Parent - By Tflk3 (More than 50 posts.) Date 22.01.2014 19:13 Edited 22.01.2014 19:52
:grin:
Kontrast jetzt wieder von Schwarz auf Weiß -> Screenshoots über Region direkt eingefügt

Falls euch nochwas auffällt immer her damit :wink:
- - By Tflk3 (More than 50 posts.) Date 22.01.2014 12:59
Hi ich habe die Ameisen durch DoCon(-20,this());
verkleinert damit Clonks nicht durch ihre Tunnel Passen die Ameisen aber schon.
Allerdings find ich die Ameisen sehen dadurch sehr klein aus,
gibt es eine möglichkeit die Grafik größer darzustellen ohne dazu das Object selbst zu vergrößern?
Parent - - By Zapper (More than 500 posts.) Date 22.01.2014 13:28
SetObjDrawTransform
zB SetObjDrawTransform(1000, 0, 0, 0, 1000, 0, this); für Originalgröße und SetObjDrawTransform(1500, 0, 0, 0, 1500, 0, this); für 150% Größe
Parent - By Tflk3 (More than 50 posts.) Date 22.01.2014 13:33 Edited 22.01.2014 14:16
:grin:
Ja Funktioniert die Ameisen sind jetzt größer aber leider stimmen die Grafiken nicht mehr beim Hangeln und beim Klettern sind sie jetzt IM Erdreich....
- - By Tflk3 (More than 50 posts.) Date 27.01.2014 20:57
Hallo Nachmal :grin:
Ich würd gern in mein Ant-Pack einen ""Fahrstuhl" einbauen der anstatt nach unten nach oben fährt.
Ausgehend vom Normalen Fahrstuhl -> Was müsste ich ändern damit er nach oben fährt?
Parent - - By Nachtfalter (More than 1000 posts.) Date 28.01.2014 16:56
Ich glaube es gibt sogar schon einen auf dem CCAN. Und wenn es den Bug noch gibt, dann sollte das auch mit dem normalen Fahrstuhl schon möglich sein :-)
Parent - By Tflk3 (More than 50 posts.) Date 28.01.2014 18:23
Ah danke ^^
Habs gefunden http://www.ccan.de/cgi-bin/ccan/ccan-view.pl?a=view&i=504,Hebebühne; Werd mal schaun wie das dort ging
- - By Tflk3 (More than 50 posts.) Date 03.02.2014 13:33
Hi,
Ich arbeite gerade an einen "Goldenen Pilz"
Ich möchte das wenn ein Clonk oder eine Ameise diesen "Activiert"~also mit Doppelt Graben-> Alle anderen Spieler Eleminiert werden, und der der ihn Benutzt hat Gewinnt.
Das Gewinnen bekomm ich hin mit GameOver()
aber wie kann ich mit "EliminatePlayer()" alle Außer dem Spieler der das Object activiert hat Verlieren lassen??

MfG Tflk3
Parent - - By Gecko (More than 500 posts.) Date 03.02.2014 19:26
public func Activate(object pBy){

// Kram vorher. Wenn Melee aktiviert ist, brauchst du kein GameOver(), das macht das Ziel dann alleine

for(var i = 0; i < GetPlayerCount(); i++)
if(GetPlayerByIndex(i) != GetOwner(pBy)) EliminatePlayer(GetPlayerByIndex(i)); // Ist der Spieler " i " nicht der Besitzer des Aktivierenden Objetes -> Eliminieren
return true;
}


Wenn du nur verfeindete eliminieren willst:

public func Activate(object pBy){

// Kram vorher. Wenn Melee aktiviert ist, brauchst du kein GameOver(), das macht das Ziel dann alleine

for(var i = 0; i < GetPlayerCount(); i++)
if( Hostile(GetPlayerByIndex(i),GetOwner(pBy)) ) EliminatePlayer(GetPlayerByIndex(i)); // Ist der Spieler " i " mit dem Objekt, das aufruft verfeindet  -> Eliminieren
return true;
}


Hier ist in der Doku die for-Schleife gut einsehbar. :)
http://www.clonk.de/docs/de/sdk/script/fn/GetPlayerByIndex.html
Parent - - By Zapper (More than 500 posts.) Date 04.02.2014 09:14
Eine Aufklärung, warum GetPlayerByIndex benutzt wird:
Bei sechs Spielern, wären diese von 0-5 durchnummeriert (GetPlayerCount wäre 6). Wenn du jetzt über alle Spieler loopst, würde for(var i=0; i < GetPlayerCount(); ++i) Log("%s", GetPlayerName(i)); alle erwischen und du würdest die Namen aller Spieler rausbekommen.
Jetzt wird der dritte Spieler eliminiert oder geht aus dem Spiel oder so.
Das heisst, du hast noch Spieler 0-1 und 3-5, GetPlayerCount ist jetzt 5. Die selbe Schleife von oben würde zwar fünf Spieler durchgehen, aber sie würde die Lücke nicht beachten und damit würdest du den letzten Spieler nicht erwischen (weil i niemals 5 sein wird). GetPlayerByIndex ignoriert Lücken und gibt dir den richtig echten Spieler zu einem Index
Parent - - By Tflk3 (More than 50 posts.) Date 04.02.2014 14:46 Edited 04.02.2014 15:31
Parent - - By Sven2 (More than 500 posts.) Date 04.02.2014 18:16
Ein normaler Clonk kann den Pilz dann beliebig oft aktivieren und wird immer wieder geheilt (ist also praktisch unsterblich)?
Parent - By Tflk3 (More than 50 posts.) Date 04.02.2014 19:23 Edited 04.02.2014 19:27
Ja :grin:
Ich werd da noch nen Timer für einbauen :wink:
Auch ein grund warum es ihn nur 1X in der Map geben soll so eine art super Power up. ^^

Er soll aber eh nur für ein paar neue Szenarien verwendet werden als so eine Art Spiel-Ziel :happy:
Parent - - By Gecko (More than 500 posts.) Date 04.02.2014 23:01
Wie sorge ich dafür das es Pro Karte MAX: 1 gibt?


public func Initialize(){
RemoveAll(GetID());
}


Ist zwar nicht gerade die feine Art, aber ist wohl die einfachste Lösung. :)
Entfernt eben alle Objekte mit der ID des Objektes, außer das Objekt selbst.
Parent - - By Tflk3 (More than 50 posts.) Date 05.02.2014 15:03
:grin: Danke! :grin:
Funkst!!
Hab jetzt auch einen Timer drin das der Pilz nur alle 100 Sekunden "Gegessen" werden kann.
Außerdem noch ein SetPosition damit er in der Unteren Hälfte der Karte zu finden is. :wink:
Wieder einmal ein Großes DANKE an alle fleißigen Clonker die mir so schnell und Super Informativ helfen. :shocked:
Up Topic Deutsch / Miniblogs / Bitte um Hilfe mit script
1 2 3 Previous Next  

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill