CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Energie vom Clonk soll im Scoreboard angezeigt werden

Nach unten 
4 verfasser
AutorNachricht
niklbobb
Hauptman
Hauptman
niklbobb


Anmeldedatum : 28.05.09

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptySo Aug 23, 2009 10:20 pm

Hi

Ich hab ein Problem (wo es wahrscheinlich wieder eine einfache lösung für gibt; Sorry, aber ich bin nich so gut in den Sachen).
Die Energie vom Clonk soll im Scoreboard angezeigt werden - das wird sie aber nicht
Hier der script (fettgedruckt was nich klappt)

Zitat :
/*-- Kleines Handgemenge --*/

#strict

/*static g_iCrewCount;*/
static g_iSpawnCount;

protected func Initialize()
{
SetScoreboardData(SBRD_Caption,0,"{{EFLN}}");
SetScoreboardData(SBRD_Caption,1,"{{CLNK}}");
SetScoreboardData(SBRD_Caption,2,"{{FLNT}}");
scriptGo(1);
return(1);
}

protected func InitializePlayer(iPlr)
{
// Clonks auch für Spätjoiner
if (g_iCrewCount) InitializePlayer2(iPlr);

//nun wird jeder Spieler beim beitritt ins Scoreboard eingefügt:
public func InitializePlayer(iPlr){
//Ein Array aus der Globalen mit dem Index des Spielers machen
Global(iPlr)=CreateArray(2);

//Relaunches auf 2 setzen
Global(iPlr)[1]=2;

//Energie auf 100 setzen
Global(iPlr)[2]=100;


//Name eintragen
SetScoreboardData(iPlr,SBRD_Caption,Format("%s",GetPlayerName(iPlr)));

//Kills auf 0 setzen
SetScoreboardData(iPlr,0,Format("%d",Global(iPlr)[0]),0);

//Energie auf 100 setzen
SetScoreboardData(iPlr,2,Format("%d",Global(iPlr)[2]),100);


//Relaunches müssen auch angezeigt
SetScoreboardData(iPlr,1,Format("%d",Global(iPlr)[1]),Global(iPlr)[1]);
}

protected func InitializePlayer2(iPlr)
{


// Clonks an dieselbe Stelle wie den Erstclonk. Fällt am wenigsten auf
var pHiRank = GetHiRank(iPlr);
if (pHiRank) for (var i=1; i {
var pClonk = CreateObject(CLNK, GetX(pHiRank), GetDefBottom(pHiRank), iPlr);
ObjectSetAction(pClonk, "Walk");
MakeCrewMember(pClonk, iPlr);
DoEnergy(+500, pClonk);
SetDir(GetDir(pHiRank), pClonk);
SetCommand(pClonk, "Follow", pHiRank); // geht nicht :C
}
}

//immer wenn ein Clonk stirbt
public func OnClonkDeath(object pClonk, int iKiller)
{
//Kills erhöhen
Global(iKiller)[0]++;

//Relaunchs erhöhen
Global(iKiller)[1]++;

//Kein Kill für Selbstmord
if(iKiller==GetOwner(pClonk))return(1);

//Punkte ins Scoreboard nach bewärtem System eintragen:
SetScoreboardData(iKiller,0,Format("%d",Global(iKiller)[0]),Global(iKiller)[0]);

//Punkte ins Scoreboard nach bewärtem System eintragen:
SetScoreboardData(iKiller,1,Format("%d",Global(iKiller)[1]),Global(iKiller)[1]);

//Scoreboard nach Kills Sortieren
SortScoreboard(0);

//Nachricht Ausgeben:
Log("%s von %s wurde von %s getötet",GetName(pClonk),GetPlayerName(GetOwner(pClonk)),GetPlayerName(iKiller));
}

public func RelaunchPlayer(int iPlr)
{
//Mal sehen ob er noch Relaunches hat:
if(Global(iPlr)[1]<1){RemovePlayer(iPlr);return(1);}

//wenn ja einen abziehen
Global(iPlr)[1]--;

//Spieler Relaunchen
var Clonk;
Clonk=CreateObject(CLNK,Random(LandscapeWidth()),40,iPlr);
MakeCrewMember(Clonk,iPlr);
DoEnergy(100, Clonk);
SetCursor(iPlr,Clonk);

//Und nun das Scoreboard erneunern
SetScoreboardData(iPlr,1,Format("%d",Global(iPlr)[1]),Global(iPlr)[1]);
}


func RemovePlayer(iPlr){
return(1);
}
public func RemovePlayer(int iPlr){
//Beide werte auf 0 setzen sorgt dafür das die Zeile verschwindet
SetScoreboardData(iPlr,0,0,0);
SetScoreboardData(iPlr,1,0,0);
}

protected func script1()
{
// Jetzt gibts erstmal Clonknachschub für alle: Nach Durchschnittsrang der besten Clonks
var pHiRank, n, iRank;
for (var i=0; i if (pHiRank = GetHiRank(GetPlayerByIndex(i)))
{
iRank += GetRank(pHiRank);
++n;
}
iRank = (iRank+n/2)/n;
g_iCrewCount = BoundBy(iRank/3, 1, 5);
// Zusätzliche Clonks erzeugen
if (g_iCrewCount)
for (var i=0; i InitializePlayer2(GetPlayerByIndex(i));
}

protected func script100(iPlr,)
{
// Mehr Spieler brauchen mehr Waffen
for (var i=0; i {
// Typ bestimmen
var id = getSpawnType();
// Platz im Erdreich finden
var x = 10 + Random(LandscapeWidth() - 20);
var h = GetHorizonHeight(x);
var y = h + 10 + Random(LandscapeHeight() - h - 20);
if (GetMaterial(x, y) != Material("Earth")) continue;
// Objekt per verzögertem Effekt erzeugen
var effect = AddEffect("SpawnSparkle", 0, 1, 5, 0, 0);
EffectVar(0, 0, effect) = id; EffectVar(1, 0, effect) = x; EffectVar(2, 0, effect) = y;
}
var pClonk = if(GetEnergy(pClonk)>45000) && if(GetEnergy(pClonk)<50000)Global(iPlr)[2]=100;
var pClonk = if(GetEnergy(pClonk)>40000) && if(GetEnergy(pClonk)<44999)Global(iPlr)[2]=90;
var pClonk = if(GetEnergy(pClonk)>35000) && if(GetEnergy(pClonk)<39999)Global(iPlr)[2]=80;
var pClonk = if(GetEnergy(pClonk)>30000) && if(GetEnergy(pClonk)<34999)Global(iPlr)[2]=70;
var pClonk = if(GetEnergy(pClonk)>25000) && if(GetEnergy(pClonk)<29999)Global(iPlr)[2]=60;
var pClonk = if(GetEnergy(pClonk)>20000) && if(GetEnergy(pClonk)<24999)Global(iPlr)[2]=50;
var pClonk = if(GetEnergy(pClonk)>15000) && if(GetEnergy(pClonk)<19999)Global(iPlr)[2]=40;
var pClonk = if(GetEnergy(pClonk)>10000) && if(GetEnergy(pClonk)<14999)Global(iPlr)[2]=30;
var pClonk = if(GetEnergy(pClonk)>5000) && if(GetEnergy(pClonk)<9999)Global(iPlr)[2]=20;
var pClonk = if(GetEnergy(pClonk)>0) && if(GetEnergy(pClonk)<4999)Global(iPlr)[2]=10;



// Spawns mitzählen
g_iSpawnCount++;
}

protected func script150()
{
goto(100);
}

private func getSpawnType()
{
var id = [STFN, SFLN, EFLN, FBMP, ZAPN];
return (id[Random(1 + Min(g_iSpawnCount/5, GetLength(id)))]);
}

private func GetHorizonHeight(x)
{
var y;
while (y < LandscapeHeight() && !GBackSemiSolid(x, y))
y += 10;
while (y > LandscapeHeight() && GBackSemiSolid(x, y))
--y;
return(y);
}

global func FxSpawnSparkleTimer(obj, effect, time)
{
// Variablen auswerten
var id = EffectVar(0, 0, effect); var x = EffectVar(1, 0, effect); var y = EffectVar(2, 0, effect);
// Funken erzeugen
CreateParticle("NoGravSpark", x + RandomX(-6,+6), y + RandomX(-6,+6), 0, -3, RandomX(30,50), RGB(64,255,64,));
// Objekt erzeugen
if ((time >= 100) && !EffectVar(3, 0, effect))
EffectVar(3, 0, effect) = CreateObject(id, x, y);
// Fertig
if (time >= 150) return(-1);
}

Ich wollte es so lösen:

Wenn über 45000Energie und unter 50000Energie, dann Lass im Scoreboard anzeigen: 100

Das ist der Error dazu:

Zitat :
ERROR: 'if' may not be used as a parameter (in script100, MinorMeleeExercise2.c4s\script.c:153:21)

- if könnte kein parameter benutzen - versteh ich nicht.

Ihr könnt mir auch andere Lösungsvorschläge geben.
Nach oben Nach unten
Toastbrot
Kadett
Kadett
Toastbrot


Männlich Anmeldedatum : 10.03.09

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptySo Aug 23, 2009 10:56 pm

Diese Zeile zum Beispiel:
var pClonk = if(GetEnergy(pClonk)>45000) && if(GetEnergy(pClonk)<50000)Global(iPlr)[2]=100;
Müsste so sein:
if(GetEnergy(pClonk)>4500 && GetEnergy(pClonk)<50000)Global(iPlr)[2]=100;
Damit es keinen Fehler gibt.
Die anderen Zeilen musst du entsprechend umbauen.
Nach oben Nach unten
niklbobb
Hauptman
Hauptman
niklbobb


Anmeldedatum : 28.05.09

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyMo Aug 24, 2009 2:24 pm

Danke

hab ich gemacht funktioniert aber immer noch nich:

Zitat :

var pClonk;

if(GetEnergy(pClonk)>45000 && GetEnergy(pClonk)<50000)Global(iPlr)[2] = 100;
if(GetEnergy(pClonk)>40000 && GetEnergy(pClonk)<44999)Global(iPlr)[2] = 90;
if(GetEnergy(pClonk)>35000 && GetEnergy(pClonk)<39999)Global(iPlr)[2] = 80;
if(GetEnergy(pClonk)>30000 && GetEnergy(pClonk)<34999)Global(iPlr)[2] = 70;
if(GetEnergy(pClonk)>25000 && GetEnergy(pClonk)<29999)Global(iPlr)[2] = 60;
if(GetEnergy(pClonk)>20000 && GetEnergy(pClonk)<24999)Global(iPlr)[2] = 50;
if(GetEnergy(pClonk)>15000 && GetEnergy(pClonk)<19999)Global(iPlr)[2] = 40;
if(GetEnergy(pClonk)>10000 && GetEnergy(pClonk)<14999)Global(iPlr)[2] = 30;
if(GetEnergy(pClonk)>5000 && GetEnergy(pClonk)<9999)Global(iPlr)[2] = 20;
if(GetEnergy(pClonk)>0 && GetEnergy(pClonk)<4999)Global(iPlr)[2] = 10;



Error ist übrigens weg
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyMo Aug 24, 2009 2:51 pm

Was genau, passiert nicht?
Nach oben Nach unten
niklbobb
Hauptman
Hauptman
niklbobb


Anmeldedatum : 28.05.09

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyMo Aug 24, 2009 9:49 pm

Die Energie wird im Scoreboard nicht angezeigt.
Am Anfang schon(100)

Wenn der Clonk Leben verliert bleibt der Scoreboard-Wert auf 100
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyMo Aug 24, 2009 10:25 pm

Ich schätze mal, dass pClonk nicht definiert ist.

var pClonk; ist ne erstellte Variable ohne wert.
Nach oben Nach unten
niklbobb
Hauptman
Hauptman
niklbobb


Anmeldedatum : 28.05.09

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyDi Aug 25, 2009 6:45 pm

aha Danke

also var pClonk = ?

nur was kommt beim Fragezeichen hin?
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyDi Aug 25, 2009 7:39 pm

Hmm, schwer zu sagen, aber ich glaube nicht, dass man mehrere Sachen zuweisen kann, wie in deinem Skript oben. Ich würde einfach es so machen, dass jedesmal, wenn der Clonk schaden erleidet, die obige Anfrage durchgeführ wird.
Nach oben Nach unten
niklbobb
Hauptman
Hauptman
niklbobb


Anmeldedatum : 28.05.09

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyDi Aug 25, 2009 7:59 pm

Gibs dazu sowas wie OnClonkDeath oder wie kann man schreiben das was passieren soll wenn der Clonk Schaden bekommt?
Nach oben Nach unten
imperatoerchen
Brigadegeneral
Brigadegeneral
imperatoerchen


Männlich Alter : 29
Ort : Ebersberg
Anmeldedatum : 23.03.09

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyDi Aug 25, 2009 9:44 pm

Mit dem Engine-Call
Code:
func CatchBlow(int iLevel, objectpBy)
Kommentar der Hilfe: Wenn das Objekt von einem anderen Objekt geschlagen oder getroffen wird.
Nach oben Nach unten
niklbobb
Hauptman
Hauptman
niklbobb


Anmeldedatum : 28.05.09

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyMi Aug 26, 2009 6:04 pm

und was bedeutet iLevel?
Nach oben Nach unten
Bowserkoopa
Staatsrat
Staatsrat
Bowserkoopa


Männlich Alter : 30
Anmeldedatum : 21.12.08

Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden EmptyMi Aug 26, 2009 6:15 pm

Glaube das ist der Schaden den er einsteckt. Also quasi wenn er 7 Schaden kriegt. Und objectpby ist von wem, er diesen erhält
Nach oben Nach unten
Gesponserte Inhalte





Energie vom Clonk soll im Scoreboard angezeigt werden Empty
BeitragThema: Re: Energie vom Clonk soll im Scoreboard angezeigt werden   Energie vom Clonk soll im Scoreboard angezeigt werden Empty

Nach oben Nach unten
 
Energie vom Clonk soll im Scoreboard angezeigt werden
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Clonk soll Schaden austeilen
» Scoreboard und Relaunches funktionieren nicht.Warum?
» Wohin soll die Variable?
» Scoreboard+Killnachrichten

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Scripthilfe-
Gehe zu: