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  

 

 Fehler beim Forschungs script

Nach unten 
5 verfasser
AutorNachricht
Dav94
Clonk
Clonk
Dav94


Männlich Anmeldedatum : 13.12.08

Fehler beim Forschungs script Empty
BeitragThema: Fehler beim Forschungs script   Fehler beim Forschungs script EmptyDi März 10, 2009 7:58 pm

Hab ein Forschungsiglu bauen wollen. Hab es auch aber das Script funktioniert net
das script
[center]/*-- Iglu --*/

#strict

#include CXEC

/* Eingangssteuerung */

protected func ActivateEntrance(pByObj) {
// Raus geht's immer
if (Contained(pByObj)==this())
return(Exit(pByObj,-20,14));

// Sonst Objekt aufnehmen
return(Enter(this(),pByObj));
}


/* Forschung */

protected func ResearchObjects(idImage, pClonk) { return(SelectResearchCategory(idImage, pClonk, C4D_Object())); }
protected func ResearchVehicles(idImage, pClonk) { return(SelectResearchCategory(idImage, pClonk, C4D_Vehicle())); }
protected func ResearchStructures(idImage, pClonk) { return(SelectResearchCategory(idImage, pClonk, C4D_Structure())); }

public func ResearchMenu(clonk)
{
// Hauptmenü erzeugen
CreateMenu(RSR1, clonk, this());
if (target) AddMenuItem("$TxtContinuedevelopement$", "SelectResearch", target, clonk, 0, clonk);
AddMenuItem("$TxtResearchs$", "ResearchObjects", RSR3, clonk, 0, clonk);
AddMenuItem("$TxtResearchs$", "ResearchVehicles", RSR4, clonk, 0, clonk);
AddMenuItem("$TxtResearchs$", "ResearchStructures", RSR5, clonk, 0, clonk);
}

protected func SelectResearchCategory(idImage, pClonk, dwCategory)
{
// Auswahlmenü erzeugen
CreateMenu(idImage, pClonk, this(), 0, "$TxtNothingelsetoresearc$");
// Alle geladenen Baupläne überprüfen
var i,idDef,iPlr=GetOwner(pClonk);
while (idDef = GetDefinition(i++, dwCategory))
// Passende Kategorie
if (GetCategory(0, idDef) & C4D_Knowledge())
// Dem Spieler noch nicht bekannt
if (!GetPlrKnowledge(iPlr,idDef))
{
// Keine Forschungsgrundlage nötig oder Forschungsgrundlage vorhanden
var idBase = DefinitionCall(idDef,"GetResearchBase"), fHasBase, j;
fHasBase = !idBase || GetPlrKnowledge(iPlr,idBase); j=1;
// Erweiterte Forschungsgrundlagen
while (idBase = DefinitionCall(idDef, Format("GetResearchBase%d", ++j)))
if (!GetPlrKnowledge(iPlr,idBase)) fHasBase=0;
// Ist schon durch etwas anderes erforschbar? (Zugbrücke rechts -> Zugbrücke links etc.)
var link;
if (link = DefinitionCall(idDef, "GetResearchLink"))
if (GetName(0, link)) // Linkdefinition auch tatsächlich geladen?
if(!GetPlrKnowledge(iPlr, link) ) // Linkdefinition noch nicht erforscht? (passiert durch SetPlrKnowledge-Aufrufe oder Szenariovorgaben)
continue;
// Menüeintrag hinzufügen
if (fHasBase) AddMenuItem("$TxtResearchs$", "SelectResearch", idDef, pClonk, 0, pClonk);
}
return(1);
}

public func SelectResearch(def, clonk)
{
// Anfangen
AddCommand(clonk, "Call", this(), def, 0, 0, 0, "StartResearch", 10, 1);
// Vorher ins Labor gehen
if (Contained(clonk) != this())
{
AddCommand(clonk, "Wait", 0, 0, 0, 0, 40);
AddCommand(clonk, "Enter", this());
}
}

private func CancelResearch()
{
if (GetChar(GetAction()) == GetChar("R")) SetAction("Idle");
EnergyCheck(0);
}

protected func StartResearch(clonk, def)
{
// Spieler hat diesen Bauplan schon
if (GetPlrKnowledge(clonk->GetOwner(), def))
{
Message("$TxtAlreadyDeveloped$", this(), GetName(0, def));
Sound("Error");
return(0);
}
// Bisherige Forschung abbrechen
CancelResearch();
// nur, wenn ansonsten inaktiv oder schon am Forschen
if (!ActIdle()) if (GetChar(GetAction()) != GetChar("R")) return(0);
// Besitzer anpassen (der Besitzer des forschenden Clonks erhält den Bauplan)
SetOwner(GetOwner(clonk));
// Neues Forschungsziel: Fortschritt zurücksetzen
if (def != target) progress = 0;
// Forschungsziel und Gesamtzeit setzen
restime = DefinitionCall(target=def, "GetResearchTime", this(), clonk);
// Forschungsaktion starten
SetAction("Research");
return (1);
}

private func Researching()
{
// Kein Ziel
if (!target) return(0);
// Effekte
if (Random(3)) Smoke(5+8*Random(2),-23,3+Random(Cool);
// Fortschritt
var Process = Min(++progress*4 / restime, 3);
Process = Format("Research%d", Process);
if (Process ne GetAction()) SetAction(Process);
// Forschung abbrechen, wenn irgendein Clonk im Inneren das Gebäude verlassen möchte
var pObj;
while (pObj = FindObject(0, 0,0,0,0, OCF_CrewMember, 0,0, this(), pObj))
if (pObj->GetCommand() eq "Exit")
return(CancelResearch());
// Weitermachen
if (!restime) restime=100;
if (progress < restime) return(1);
// Forschung abgeschlossen
Sound("ResearchDone");
// Dem Spieler den neuen Bauplan verpassen
SetPlrKnowledge(GetOwner(), target);
// Alle Clonks suchen, die ein Menü für dieses Labor geöffnet haben - noch nicht implementierbar, da kein GetMenuTarget()...
/*var pClonk;
while (pClonk = FindObject(0, 0,0,0,0, OCF_CrewMember(), 0,0, 0, pClonk))
if ((pClonk->GetMenu() == RSR1) && (pClonk->GetMenuTarget() == this())
// Menü neu öffnen, damit Forschung-Fortsetzen-Einträge aktualisiert werden
ResearchMenu(pClonk);*/
// Gelinkte Forschungsziele sind automatisch auch erforscht
// (Linke Zugbrücke -> Rechte Zugbrücke etc.)
var def_num, def;
while (def = GetDefinition(def_num++))
{
var link;
if (link = DefinitionCall(def, "GetResearchLink"))
if (link == target)
SetPlrKnowledge(GetOwner(), def);
}
// Nachricht ausgeben
Message("$Txtsdeveloped$", this(), GetName(0, target));
// Forschung beenden
CancelResearch();
target = 0;
// Fertig
return(1);
}

private func GetResearchGoal(id idType, object pWorker)
{
// Kategorie
var category;

if(idType == RSR3) category = C4D_Object();
if(idType == RSR4) category = C4D_Vehicle();
if(idType == RSR5) category = C4D_Structure();

// Alle geladenen Definitionen überprüfen
var i = -1, id;
while (id = GetDefinition(++i,category) )
// Ist ein Bauplan
if(GetCategory(0, id) & C4D_Knowledge() )
// Dem Spieler noch nicht bekannt
if(!GetPlrKnowledge(GetOwner(pWorker), id) )
{
// Grundlage bekannt
var base = DefinitionCall(id, "GetResearchBase");
if(!base || GetPlrKnowledge(GetOwner(pWorker), base))
return(id);
}

// Zur Zeit kein weiteres Ziel
return(0);
}

/* Kontext */

public func ContextResearch(clonk)
{
[$TxtResearch$|Image=RSR1|Condition=IsBuilt]
return (ResearchMenu(clonk));
}

protected func IsBuilt()
{
return (GetCon () >= 100);
}

/* Steuerung */

public func ContainedUp(object pClonk)
{
[$TxtResearch$|Image=RSR1]
ResearchMenu(pClonk);
return(1);
}

public func ContainedDown(object pClonk)
{
[$TxtCancelresearch$|Image=RSR2]
CancelResearch();
return(0);
}

/* Hilfsfunktionen */

private func FindIncompleteContents(idSearched) {
for(var i=0,pContent; pContent=Contents(i); ++i)
if(GetID(pContent)==idSearched)
if(GetCon(pContent)<100)
return(pContent);
return(0);
}

/* Status */

private func Melt() {
DoCon(-2);
CastPXS("Water",8,0);
}
Nach oben Nach unten
NilsZ
Admiral
Admiral



Männlich Ort : Mein Rekord: 27 Punkte! :D
Anmeldedatum : 07.08.08

Fehler beim Forschungs script Empty
BeitragThema: Re: Fehler beim Forschungs script   Fehler beim Forschungs script EmptyDi März 10, 2009 8:07 pm

/*-- Iglu --*/

#strict

#include IGLO
#include RSRC

private func BasementID() { return(0); }
private func BasementWidth() { return(0); }




Probiers mal damit dann müsste es gehen
Nach oben Nach unten
Dav94
Clonk
Clonk
Dav94


Männlich Anmeldedatum : 13.12.08

Fehler beim Forschungs script Empty
BeitragThema: Re: Fehler beim Forschungs script   Fehler beim Forschungs script EmptyDi März 10, 2009 8:18 pm

Vielen Danke es funktioniert jetzt Very Happy NICHT SOVIELE SMILEYS NEHMEN. DER ADMIN Very Happy NICHT SOVIELE SMILEYS NEHMEN. DER ADMIN Very Happy NICHT SOVIELE SMILEYS NEHMEN. DER ADMIN Very Happy NICHT SOVIELE SMILEYS NEHMEN. DER ADMIN Very Happy NICHT SOVIELE SMILEYS NEHMEN. DER ADMIN Very Happy Very Happy Very Happy
Nach oben Nach unten
NilsZ
Admiral
Admiral



Männlich Ort : Mein Rekord: 27 Punkte! :D
Anmeldedatum : 07.08.08

Fehler beim Forschungs script Empty
BeitragThema: Re: Fehler beim Forschungs script   Fehler beim Forschungs script EmptyDi März 10, 2009 8:53 pm

Wieviele Smileys jemand benutzt ist ganz seine Sache, da sollte man gerade als Admin nicht Posts "verfälschen"
Nach oben Nach unten
Mozart
Kanzler
Kanzler
Mozart


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 24.02.08

Fehler beim Forschungs script Empty
BeitragThema: Re: Fehler beim Forschungs script   Fehler beim Forschungs script EmptyDi März 10, 2009 9:17 pm

Da hat wohl unsere Wortzensur gegriffen, da automatisch 3 "Very Happy" durch "NICHT SOVIELE SMILEYS NEHMEN. DER ADMIN" ersetzt-->er hat 23 benutzt
Nach oben Nach unten
http://www.funamfag.de
Umezawa
Feldmarschall
Feldmarschall



Männlich Alter : 29
Anmeldedatum : 30.12.08

Fehler beim Forschungs script Empty
BeitragThema: Re: Fehler beim Forschungs script   Fehler beim Forschungs script EmptyDi März 10, 2009 11:35 pm

Beste Idee das Jahrtausends!!! NICHT SOVIELE SMILEYS NEHMEN. DER ADMIN Very Happy NICHT SOVIELE SMILEYS NEHMEN. DER ADMIN Very Happy Very Happy
Woohooo, es funktioniert!!!
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Fehler beim Forschungs script Empty
BeitragThema: Re: Fehler beim Forschungs script   Fehler beim Forschungs script EmptyDi März 10, 2009 11:41 pm

Tststs du Spammer. XD. Okay ich war auch dabei einen solchen Post zu schreiben hab mich dann aber besonnen und es bleiben lassen.
Nach oben Nach unten
Umezawa
Feldmarschall
Feldmarschall



Männlich Alter : 29
Anmeldedatum : 30.12.08

Fehler beim Forschungs script Empty
BeitragThema: Re: Fehler beim Forschungs script   Fehler beim Forschungs script EmptyMi März 11, 2009 7:41 pm

Das Problem ist doch gelöst, da ist etwas "offtopic" doch nicht soooo schlimm, oder?
Nach oben Nach unten
Mozart
Kanzler
Kanzler
Mozart


Männlich Alter : 31
Ort : Vaihingen/Enz
Anmeldedatum : 24.02.08

Fehler beim Forschungs script Empty
BeitragThema: Re: Fehler beim Forschungs script   Fehler beim Forschungs script EmptyMi März 11, 2009 11:10 pm

doch
Nach oben Nach unten
http://www.funamfag.de
Gesponserte Inhalte





Fehler beim Forschungs script Empty
BeitragThema: Re: Fehler beim Forschungs script   Fehler beim Forschungs script Empty

Nach oben Nach unten
 
Fehler beim Forschungs script
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Fehler im Script
» Script Hilfe beim HST KI
» Habe Schwierigkeiten beim RPG-Script
» Fehler bei StartPosition
» Ein Array-fehler

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