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

Austausch | 
 

 Scoreboardprobleme

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Pitri
Feldmarschall
Feldmarschall
avatar

Männlich Alter : 24
Ort : Karlsruhe
Anmeldedatum : 02.03.09

BeitragThema: Scoreboardprobleme   Do Jun 24, 2010 7:38 pm

Hi Leute! Ich brauche eure Hilfe!

Für Sippelhöhlen will ich ein Scoreboard machen! Das hat ja auch gut geklappt! Ich will, dass angezeigt, wie oft welcher Spieler (Einschließlich Stippel) gestorben ist! Allerdings habe ich schon 14 Stippel gekillt, bin selbst noch nicht gestorben! Ich sterbe und bei mir steht 15! Seltsam, seltsam! Was mache ich falsch?

Hier der script aus dem Scoreboard-Steuerungsobjekt:
Code:
/*-- Scoreboard --*/

#strict 2

local pTheEvil;
static iStippelDeaths;

func Initialize()
{
  if(!pTheEvil) pTheEvil = FindObject(TE5B);
  if(!pTheEvil) pTheEvil = CreateObject(TE5B);
  SetScoreboardData(SBRD_Caption,SBRD_Caption,"$ScrDeaths$"); 
  SetScoreboardData(SBRD_Caption,0,"{{SY5B}}");
  DoScoreboardShow(1);
  Schedule("SetScoreboardData(GetOwner(pTheEvil),SBRD_Caption,"<c ffaa77>Stippel</c>")",50);
  Schedule("SetScoreboardData(GetOwner(pTheEvil),0,"0")",50);
  return true;
}

func InitializePlayer(iPlr)
{
  Local(iPlr) = 0;
  SetScoreboardData(iPlr,SBRD_Caption,GetTaggedPlayerName(iPlr));
  SetScoreboardData(iPlr,0,"0");
  return true;
}

//Stippel tot!
func ReportHomicide(int iKilledBy, int iStippelplayer)
{
  iStippelDeaths ++ ;
  SetScoreboardData(iStippelplayer,0,Format("%d",iStippelDeaths));
  return true;
}

//SFT tot!
func OnClonkDeath(object pClonk,int iKilledBy)
{
  var iPlr = GetOwner(pClonk);
  var iDeaths = Local(iPlr) + 1;
  SetScoreboardData(iPlr,0,Format("%d",iDeaths));
  Local(iPlr) ++;
  return true;
}

Danke im Vorraus für eure Hilfe!


Zuletzt von Pitri am Do Jun 24, 2010 8:01 pm bearbeitet; insgesamt 1-mal bearbeitet
Nach oben Nach unten
Benutzerprofil anzeigen http://www.clonk-fanpage.lima-city.de
Pitri
Feldmarschall
Feldmarschall
avatar

Männlich Alter : 24
Ort : Karlsruhe
Anmeldedatum : 02.03.09

BeitragThema: Re: Scoreboardprobleme   Do Jun 24, 2010 7:56 pm

Ich hab gerade herausgefunden: die Locals speichert es richtig, aber im scoreboard wird es falsch dargestellt! Vielleicht hilft euch das weiter!

Hier bin ich mit meinem C4 am ende! :Þ
Nach oben Nach unten
Benutzerprofil anzeigen http://www.clonk-fanpage.lima-city.de
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Scoreboardprobleme   Do Jun 24, 2010 8:12 pm

Hm... Local(iPlr) im Szenarioscript? Tut nicht, da funktionieren nur Globals.

Am besten wär sowieso eine globale Variable (zB iDeaths) als Array. Dann ist iDeaths[iPlr] die Anzahl der Tode jedes Spielers.

Und in der Initialize() tun 2 Zeilen nicht richtig, da du Anführungszeichen nicht escap(e)t hast.
Nach oben Nach unten
Benutzerprofil anzeigen
Pitri
Feldmarschall
Feldmarschall
avatar

Männlich Alter : 24
Ort : Karlsruhe
Anmeldedatum : 02.03.09

BeitragThema: Re: Scoreboardprobleme   Fr Jun 25, 2010 2:31 pm

Limeox schrieb:
Hm... Local(iPlr) im Szenarioscript? Tut nicht, da funktionieren nur Globals.
Genauer lesen! =P "Hier der script aus dem Scoreboard-Steuerungsobjekt:"
Und selbst als ich es noch im Szenarioscript mit Globals gemacht habe, ging es nicht!

Limeox schrieb:
Am besten wär sowieso eine globale Variable (zB iDeaths) als Array. Dann ist iDeaths[iPlr] die Anzahl der Tode jedes Spielers.
Wenn du mir sagst, wie das geht, mach ichs! Mit arrays habe ich noch nicht so viel Erfahrung! =o

Limeox schrieb:
Und in der Initialize() tun 2 Zeilen nicht richtig, da du Anführungszeichen nicht escap(e)t hast.
Dia hab ich gemacht, allerdings hat der [code] tag die dinger wahrscheinlich geshreddert!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.clonk-fanpage.lima-city.de
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Scoreboardprobleme   Fr Jun 25, 2010 3:16 pm

Zitat :
Genauer lesen! =P "Hier der script aus dem Scoreboard-Steuerungsobjekt:"
Njoa, das ist ein Problem. Denn der Call "OnClonkDeath" (und "ReportHomicide" vermutlich auch) sind an Szenarienscripts gerichtet. Also alles rüber in den Szenarioscript.

Zitat :
Wenn du mir sagst, wie das geht, mach ichs! Mit arrays habe ich noch nicht so viel Erfahrung! =o
Naja, ganz einfach:
Du brauchst als erstes eine globale Variable (static iDeaths;). Damit die als Array fungieren kann, baust du erstmal ein leeres Array in der Initialize-Funktion: iDeaths = []; Willst du jetzt auf ein Element im Array zugreifen, tust du das per iDeaths[Index], also zB iDeaths[iPlr], iDeaths[1] etc.

Noch was: Du verwendest bei Schedule Anweisungen. "GetOwner(pTheEvil)" kommt beim ScheduleEffekt dann so an: eval("GetOwner(pTheEvil)") - und der weiß gar nicht, was er damit tun soll.
Benutz dann ScheduleCall() oder Format().


Dann eben:
Code:
#strict 2
static iDeaths, pTheEvil;

func Initialize() {
  iDeaths = [];
  if(!pTheEvil) pTheEvil = FindObject(TE5B) || CreateObject(TE5B, 0, 0 -1);
  UpdateScoreboard(GetOwner(pTheEvil));
}

func InitializePlayer(int iPlr) {
  iDeaths[iPlr] = 0;
  UpdateScoreboard(iPlr);
}

func ReportHomicide(int iKilledBy, int iStippelPlayer) {
  iDeaths[iStippelPlayer]++;
  UpdateScoreboard(iStippelPlayer);
}

func OnClonkDeath(object pClonk, int iKilledBy) {
  var iPlr = GetOwner(pClonk);
  iDeaths[iPlr]++;
  UpdateScoreboard(iPlr);
}

func UpdateScoreboard(int iPlr) {
  if (iPlr == -1)
    return;
  SetScoreboardData(-1, 0, "Tode");
  SetScoreboardData(iPlr, -1, GetTaggedPlayerName(iPlr));
  SetScoreboardData(iPlr, 0r, Format("%d", iDeaths[iPlr]));
}
Nach oben Nach unten
Benutzerprofil anzeigen
Pitri
Feldmarschall
Feldmarschall
avatar

Männlich Alter : 24
Ort : Karlsruhe
Anmeldedatum : 02.03.09

BeitragThema: Re: Scoreboardprobleme   Fr Jun 25, 2010 6:13 pm

Danke! Es klappt! :3

Limeox schrieb:
Njoa, das ist ein Problem. Denn der Call "OnClonkDeath" (und "ReportHomicide" vermutlich auch) sind an Szenarienscripts gerichtet. Also alles rüber in den Szenarioscript.

Sowit ich weiß, werden mit GameCallEx() auch Spielziele, Spielregeln und Umweltobjekte berücksichtigt! Und die beiden Calls da oben werden mit GameCallEx() aufgerufen! oO
Nach oben Nach unten
Benutzerprofil anzeigen http://www.clonk-fanpage.lima-city.de
Gesponserte Inhalte




BeitragThema: Re: Scoreboardprobleme   

Nach oben Nach unten
 
Scoreboardprobleme
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1

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