Tach,
bin mir nicht sicher ob der Titel zu diesen Problem passt, falls nicht, tuts mir leid.
Mein Problem ist Folgdendes:
Ich hab mir heute 2 stockfunctionen von TCL in Pawn übersetzt, nun weiß ich jedoch nicht ob Pawn Variablen in Stock funktionen übernehmen kann ohne diese direkt in das Stock einzuarbeiten.
Dies ist in TCL mit upvar möglich Variablen ohne direkte angabe zu übernehmen.
Hier der Code:
stock sectostr ( t, args=0 )
{
new EndText[128];
{
new EndText[128];
if(args == 1)
{
sectostr_one (31536000, "Jahr", "Jahre", "ein");
sectostr_one (604800, "Woche", "Wochen", "eine");
sectostr_one (86400, "Tag", "Tage", "einen");
sectostr_one (3600, "Stunde", "Stunden", "eine");
sectostr_one (60, "Minute", "Minuten", "eine");
sectostr_one (1, "Sekunde", "Sekunden", "eine");
} else {
sectostr_one (31536000, "Jahr", "Jahre", "einem");
sectostr_one (604800, "Woche", "Wochen", "einer");
sectostr_one (86400, "Tag", "Tage", "einen");
sectostr_one (3600, "Stunde", "Stunden", "einer");
sectostr_one (60, "Minute", "Minuten", "einer");
sectostr_one (1, "Sekunde", "Sekunden", "einer");
}
{
sectostr_one (31536000, "Jahr", "Jahre", "ein");
sectostr_one (604800, "Woche", "Wochen", "eine");
sectostr_one (86400, "Tag", "Tage", "einen");
sectostr_one (3600, "Stunde", "Stunden", "eine");
sectostr_one (60, "Minute", "Minuten", "eine");
sectostr_one (1, "Sekunde", "Sekunden", "eine");
} else {
sectostr_one (31536000, "Jahr", "Jahre", "einem");
sectostr_one (604800, "Woche", "Wochen", "einer");
sectostr_one (86400, "Tag", "Tage", "einen");
sectostr_one (3600, "Stunde", "Stunden", "einer");
sectostr_one (60, "Minute", "Minuten", "einer");
sectostr_one (1, "Sekunde", "Sekunden", "einer");
}
if(strlen(EndText) == 0)
{
format (EndText, sizeof(EndText), "0 Sekunden");
}
return EndText;
}
{
format (EndText, sizeof(EndText), "0 Sekunden");
}
return EndText;
}
stock sectostr_one (x, cap[], cappl[], capone[])
{
new Float:num;
if(t >= x)
{
num = floatround(time/x, floatround_ceil);
num = floatround(num);
t = t%x;
if(strlen(EndText) == 0)
{
if (t > 0) format(EndText,sizeof(EndText), "%s, ", EndText);
else format(EndText,sizeof(EndText), "%s und ", EndText);
}
if(floatint(num) > 1) format(EndText,sizeof(EndText), "%s %i %s", EndText, floatint(num), cappl);
else format(EndText,sizeof(EndText), "%s %s %s", EndText, capone, cappl);
}
}
{
new Float:num;
if(t >= x)
{
num = floatround(time/x, floatround_ceil);
num = floatround(num);
t = t%x;
if(strlen(EndText) == 0)
{
if (t > 0) format(EndText,sizeof(EndText), "%s, ", EndText);
else format(EndText,sizeof(EndText), "%s und ", EndText);
}
if(floatint(num) > 1) format(EndText,sizeof(EndText), "%s %i %s", EndText, floatint(num), cappl);
else format(EndText,sizeof(EndText), "%s %s %s", EndText, capone, cappl);
}
}
Dazu die wie zu erwartenden Fehlermeldungen:
Code
C:\*Neu.pwn(1073) : warning 203: symbol is never used: "t"C:\*Neu.pwn(1073 -- 1104) : error 017: undefined symbol "t"C:\*Neu.pwn(1106) : error 017: undefined symbol "time"C:\*Neu.pwn(1108) : error 017: undefined symbol "t"C:\*Neu.pwn(1108) : error 017: undefined symbol "t"C:\*Neu.pwn(1108) : warning 215: expression has no effectC:\*Neu.pwn(1109) : error 017: undefined symbol "EndText"C:\*Neu.pwn(1111) : error 017: undefined symbol "t"C:\*Neu.pwn(1111) : error 017: undefined symbol "EndText"C:\*Neu.pwn(1111) : error 017: undefined symbol "EndText"C:\*Neu.pwn(1111) : fatal error 107: too many error messages on one line
Ist dies in Pawn garnicht möglich oder muss dies wie in TCL mit einen Befehl aufgerufen werden?
Liebe Grüße,
Akuba