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

Austausch | 
 

 Verkaufsmenü bei einem Händler

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Verkaufsmenü bei einem Händler   So Aug 15, 2010 2:41 am

hey leute..
ich hab da ein problem, denn ich will ein rpg schreiben sozusagen und will einen händler bei dem man auch etwas verkaufen kann.. naja ich hab ehrlich gesagt keine wirkliche ahnung wie man das anstellt^^
das einziege was dabei rausgekommen ist, is das da was schon beschämend is find ich Embarassed

protected func SellMenu(id ID, object pClonk)
{
OpenTalk(pClonk);
var i;
while(Contents(i,0))
{
AddMenuItem(Format("%s verkaufen:%d",GetName(Contents(i,0)),GetValue(Contents(i,0))),"Sell",GetID(Contents(i,0)),pClonk,0,pClonk,0);
i++;
}
AddMenuItem("Auf Wiedersehen!","EndTalk",0,pClonk,0);
}
protected func Sell(id ID, object pClonk)
{
if(GetWealth(GetOwner(pClonk))>=GetValue(0,ID))
{
RemoveObject(ID,pClonk);
DoWealth(GetOwner(pClonk),GetValue(0,ID));
Sound("UnCash");
}

Kann mir wer helfen bitte? Crying or Very sad
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Verkaufsmenü bei einem Händler   So Aug 15, 2010 3:33 am

Macht OpenTalk() das Menü auf (CreateMenu)? Dann müsst es eigentlich funktionieren.
Allerdings verwirrt mich Sell() noch: Warum sollte ein Clonk zB 30 Clunker haben, um einen Tera verkaufen zu können? Verkaufen kann man doch eigentlich immer. Und bei Sell() geht eine Klammer zu wenig zu.

Edit: Oh, bei Contents() sollte das eher Contents(i, pClonk) heißen, schließlich willst du wohl den Clonk durchsuchen. Und bei Sell: RemoveObject() braucht als 1. Parameter keine ID, sondern das Objekt. Das solltest du dann noch an die Funktion übergeben.
Nach oben Nach unten
Benutzerprofil anzeigen
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 1:18 am

Ok ich habs nochmal etwas überarbeitet, aber funktionieren tuts immer noch nicht, denn er zeigt mir nun immer noch an:
" ERROR: call to "Sell" parameter 1: got "id", but expected "object"! "

hier nochmal das überarbeitete script

protected func SellMenu(id ID, object pClonk)
{
OpenTalk(pClonk);
var i;
while(Contents(i,pClonk))
{
AddMenuItem(Format("%s verkaufen:%d",GetName(Contents(i,pClonk)),GetValue(Contents(i,pClonk))),"Sell",GetID(Contents(i,pClonk)),pClonk,0,pClonk,0);
i++;
}
AddMenuItem("Auf Wiedersehen!","EndTalk",0,pClonk,0);
}
protected func Sell(object pObject, object pClonk)
{
RemoveObject(object,pClonk);
DoWealth(GetOwner(pClonk),GetValue(0,ID));
Sound("UnCash");
}

Danke schonmal im voraus (hatte ich beim ersten text vergessen)
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 1:32 am

Zitat :
" ERROR: call to "Sell" parameter 1: got "id", but expected "object"! "
Der Error sagt: Aufruf "Sell": Erster Parameter ist ID, es wird aber ein Objektzeiger erwartet.
Klar: Ein Menü übergibt an die Funktion als 1. Parameter immer die ID, die bei AddMenuItem als 3. angegeben wurde.

Du kannst statt nur "Sell" anzugeben auch direkt die Parameter per Format() hineinpacken. Dazu musst du aber das Objekt erst in eine Objektnummer und dann wieder zurückverwandeln, denn Zeiger in Strings zu packen klappt nicht.
Also ersetze Sell durch
Format("Sell(Object(%d), Object(%d))", ObjectNumber(Contents(i, pClonk)), ObjectNumber(pClonk))
Nicht sehr schön, aber es klappt.
Nach oben Nach unten
Benutzerprofil anzeigen
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 1:43 am

jetzt läuft garnichts mehr
er sagt mir jetzt ich hab nen syntax error
wie war das denn genau gemeint das ich das dadurch ersetzen soll?
soll ich einfach statt sell das da einfügen oder wie?
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 1:54 am

Ja. Die Anführungszeichen müssen dann aber natürlich auch weg.
Nach oben Nach unten
Benutzerprofil anzeigen
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 1:58 am

ich weiß schon^^
so schlau war ich dann auch noch *stolz* Very Happy

ach und falls das was hilft, der händler basiert auf dem von dem RPG-Tutorial im Clonk Center
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 2:01 am

Hm, noch was:
Zitat :
protected func Sell(object pObject, object pClonk)
{
RemoveObject(object,pClonk);
DoWealth(GetOwner(pClonk),GetValue(0,ID));
Sound("UnCash");
}
Bei RemoveObject steht object, das muss natürlich pObject heißen, das gibt sonst nochmal nen Error. pClonk als Parameter brauchst du da gar nicht, der zweite Parameter tut nämlich was ganz anderes.
ID ist nicht definiert, da brauchst du GetValue(pObject).
Nach oben Nach unten
Benutzerprofil anzeigen
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 2:06 am

ah danke^^ das letzte is mir kurz vorher auch nochmal aufgefallen das hatte ich übersehen
jetzt löscht er das objekt zumindest schonmal aber ich bekomme noch kein geld dafür..
Nach oben Nach unten
Benutzerprofil anzeigen
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 2:08 am

oh ne schon gut hab nur was vergessen^^
danke jetzt funktionierts einwandfrei Smile
Nach oben Nach unten
Benutzerprofil anzeigen
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 2:16 am

ok nein doch nicht eins hätte ich da noch warum gibt er mir für alles 25 clunker, egal wie viel es wert ist?
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 11:58 am

Ach klar, das Objekt wird entfernt und erst danach der Preis berechnet - das DoWealth muss natürlich an den Anfang, sonst ist das Objekt weg und dann wird der Preis des aufrufenden Objekts berechnet - eben die 25 Clunker vom Clonk.
Nach oben Nach unten
Benutzerprofil anzeigen
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 3:06 pm

am anfang vom ganzen oder am anfang von der zeile?
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 3:24 pm

Am Anfang von Sell. Bevor das Objekt entfernt wird eben.
Nach oben Nach unten
Benutzerprofil anzeigen
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 10:41 pm

ok hab ich nun getan doch jetzt zeigt er mir wieder nen error an nämlich genau das :
ERROR: call to "GetValue" parameter 2: got "object", but expected "id"!
Nach oben Nach unten
Benutzerprofil anzeigen
Limeox
Admiral
Admiral
avatar

Männlich Anmeldedatum : 25.04.10

BeitragThema: Re: Verkaufsmenü bei einem Händler   Di Aug 17, 2010 10:43 pm

GetValue
Erster Parameter ist das Objekt.
Also GetValue(pObject).
Nach oben Nach unten
Benutzerprofil anzeigen
Hoffy
Leutnant
Leutnant
avatar

Männlich Anmeldedatum : 09.07.09

BeitragThema: Re: Verkaufsmenü bei einem Händler   Do Aug 19, 2010 3:40 am

ah stimmt ergibt sinn.. danke Smile
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Verkaufsmenü bei einem Händler   

Nach oben Nach unten
 
Verkaufsmenü bei einem Händler
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Smiliekategorie (Karten) in eine Reihe in einem Beitrag
» Hilfe bei einem HTML Code
» Link einfügen mit einem Umlaut in der web-Adresse funktioniert nicht
» Wie verstecke ich einen Link hinter einem x-beliebigen Text?
» Warnhinweis bei einem Link

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