Alter : 27 Ort : Clonk Planet Anmeldedatum : 01.01.09
Thema: Clonk wählen Mi Jan 06, 2010 6:09 pm
Wie mache ich das, das ich nach dem start des Szenarios auswählen kann welcher Clonk ich bin? Als erstes habe ich mir den SCript von Drachenfels angeschaut (der is ja unendlich lang *find*) dort hab ich folgendes gefunden:
Code:
var pClonk = GetHiRank(iPlr), i; if (pClonk) { // Der Host muss erst einmal den Schwierigkeitsgrad einstellen...NICHT BENÖTIGT if (!iPlr && !iDifficulty) { CreateMenu(WIPF, pClonk, pClonk, 0, "$MnuChooseDifficulty$"); AddMenuItem("$MnuLevelItmNormal$", "SetDifficulty(1)", WIPF, pClonk, 0,0, "$DescLevelNormal$"); AddMenuItem("$MnuLevelItmHard$", "SetDifficulty(2)", MONS, pClonk, 0,0, "$DescLevelHard$"); return(); }
// ...während die anderen Spieler ihren Clonktyp wählenBENÖTIGT CreateMenu(CLNK, pClonk, pClonk, 0, "$MnuChooseClonk$"); AddClonkChooseMnuItem(pClonk, KNIG, i++); AddClonkChooseMnuItem(pClonk, MAGE, i++); } }
Was macht der Script genau ich weiß nur das CreateMenu(CLNK;pClonk,pClonk,0, "$MnuChooseClonk$"); Hw bedeutet : Erstelle Menü mit dem Symbol (Das Links oben glaub ich) vom Clonk den Rest weiß ich nicht bis auf den vierten Eintrag in der Klammer Überschrift (von StringTblDE/US.txt) doch was bedeutet der Rest und wie mache ich den Clonk(dem man am Anfang besitzt) zu einem Magus(MAGE)/Paladin(PLDN) Danke im Vorraus
Elfangor General
Alter : 32 Ort : Mainz Anmeldedatum : 26.06.08
Thema: Re: Clonk wählen Mi Jan 06, 2010 6:35 pm
Das ist Sven2 Script das versteht eh keiner. Außerdem ist es ein Auszug aus einem sehr langen Script mit sehr vielen verschiedenen selbstdefinierten Funktionen die wir nicht kennen.
Ein Scriptvorschlag von unserer Seite wäre wohl angebrachter. Sven erstellt da übrigens ein Menü und macht ständig Bezüge zu seinen eigenen Funktionen.
Code:
//Du musst zuerst einmal ein Menü erstellen:
CreateMenu(WIPF,GetHiRank(iPlr),,,"Clonkauswahl"); /*Erstellt ein Menü mit dem Symbol des Wipfs, innerhalb des Clonks mit der Überschrift Menüauswahl*/
/*Nun die Einträge erstellen. Erst den Text, dann die Aktion und dannach das Bild dazu*/ AddMenuItem("Clonk",MakeCrewMember(CLNK,iPlr),CLNK); AddMenuItem("Ritter",MakeCrewMember(KNIG,iPlr),KNIG);
Ich habe ehrlich gesagt keine Ahnung ob das so funktioniert aber die Richtung ist richtig. Hoffe ich konnte dir helfen. Guck vllt nochmal in KDG nach wenns dir hilft .
Magus111 Oberst
Alter : 27 Ort : Clonk Planet Anmeldedatum : 01.01.09
Thema: Re: Clonk wählen Mi Jan 06, 2010 6:39 pm
Sieht schon mal gut aus gleich ausprobieren...
Edit: Es gibt eine Fehlermeldung aus:
Zitat :
ERROR: call to "MakeCrewMember" parameter 1: got "id", but expected "object"! by: InitializePlayer(0,663,670) (New2.c4s\Script.c:9)
Zuletzt von Magus111 am Mi Jan 06, 2010 6:45 pm bearbeitet; insgesamt 1-mal bearbeitet (Grund : Doppelposts sind BÖSE!!!)
Elfangor General
Alter : 32 Ort : Mainz Anmeldedatum : 26.06.08
Thema: Re: Clonk wählen Mi Jan 06, 2010 6:49 pm
MakeCrewMember(CreateObject(CLNK,X,Y),iPlr);
du musst in die gegebene Funktion auch iPlr übergeben btw. Für X und Y bitte Koordinaten eingeben.
Magus111 Oberst
Alter : 27 Ort : Clonk Planet Anmeldedatum : 01.01.09
Das macht den derzeitigen Clonk einfach zu nem Clonk. Für CLNK kannst du natürlich auch andere ID's einsetzen.
Zuletzt von Gamer am Mi Jan 06, 2010 7:31 pm bearbeitet; insgesamt 1-mal bearbeitet (Grund : Script verbessert)
Elfangor General
Alter : 32 Ort : Mainz Anmeldedatum : 26.06.08
Thema: Re: Clonk wählen Mi Jan 06, 2010 7:33 pm
Ich würde vorschlagen einfach ein Playerobjekt zu erstellen oder nach Erstellung des neuen Clonks einfach den alten zu removen und dann den Zeiger auf den neuen zu setzen.
Ich weiss nicht ob es als Kill zählt für den betroffenen Clonk. Du kannst auch einfach ein Playerobjekt erstellen, das als Crewmitglied fungiert. Das zerstört nicht die Statistik des Clonks.
und psscht Redefine2 ist keine wirkliche Lösung. Der Script ist angeblich sehr ungenau/instabil.
Magus111 Oberst
Alter : 27 Ort : Clonk Planet Anmeldedatum : 01.01.09
Thema: Re: Clonk wählen Mi Jan 06, 2010 7:38 pm
Also bei dem Script
Code:
protected func InitializePlayer(int iPlr, int tx, int ty, object pBase, int iTeam) { CreateMenu(CLNK,GetHiRank(iPlr),,,"Clonkauswahl"); AddMenuItem("$Magus$",GetCursor(iPlr)->Redefine2(MAGE),MAGE); AddMenuItem("Paladin",GetCursor(iPlr)->Redefine2(PLDN),PLDN); }
Kommt die Fehlermeldung
Code:
ERROR: Object call: target is zero! by: InitializePlayer(0,596,670) (New2.c4s\Script.c:9)
P.S.:Was ist Redefine2 eigentlich und wie meinst du das mit Playerobject? P.P.S.:Zeile 9 ist