AdminMod.de
https://www.adminmod.de/

Aus 2 mach 1 String
https://www.adminmod.de/viewtopic.php?t=2944
Seite 1 von 1

Autor:  @vus [ 11.05.2002, 20:12 ]
Betreff des Beitrags:  Aus 2 mach 1 String

Ich habe folgendes Problem:

Ich möchte gerne einen String "sv_maxspeed" und einen String in einer Variable zusammenfügen z.B.:

1 String: "sv_maxspeed "
2 String: "444" <-- Steht in der Variable: randomspeed

Das Ergebnis sollte dann so aussehen: "sv_maxspeed 444"
Ich hab das mal so probiert: sspeed = "sv_maxspeed " && randomspeed

Der Compiler meint dazu nur:
Code:
Error [33]: array must be indexed (variable "randomspeed")
Tja, ich hab sie aber in der gleichen public mit

new randomspeed[MAX_DATA_LENGTH] = "";

Deklariert.
Was mache ich falsch? :cry:

Autor:  [COLA]*Whiskey [ 11.05.2002, 20:16 ]
Betreff des Beitrags: 

hab ich aus m timeremaining plugin:

new origtimelimit = 0;
origtimelimit =getvar("mp_timelimit")*60+2;

Autor:  @vus [ 11.05.2002, 20:18 ]
Betreff des Beitrags:  :)

Ok das ist mir klar aber ich hab ein zweites Problem

ich möchte danach den Befehl in der Variable ausführen lassen


exec(sspeed);

:)

Autor:  [COLA]*Whiskey [ 11.05.2002, 20:22 ]
Betreff des Beitrags: 

hmm weis nich aber das müsste so gehn ?
Code:
public admin_friendlyfire(HLCommand,HLData,HLUserName,UserIndex) {
	new Command[MAX_COMMAND_LENGTH];
	new Data[MAX_DATA_LENGTH];
	new User[MAX_NAME_LENGTH];
	
	convert_string(HLCommand,Command,MAX_COMMAND_LENGTH);
	convert_string(HLData,Data,MAX_DATA_LENGTH);
	convert_string(HLUserName,User,MAX_NAME_LENGTH);
	execute_command(User,Command,"mp_friendlyfire",Data);
	return PLUGIN_HANDLED;
}

Autor:  @vus [ 11.05.2002, 20:25 ]
Betreff des Beitrags: 

Ja das hab ich auch schon gesehen
jedoch hab ich den UserName nicht, da die public von einem Timer aufgerufen wird! Sonst wär das kein Problem...

Trotzdem THX

Autor:  Biohazard1 [ 11.05.2002, 22:33 ]
Betreff des Beitrags:  Re: Aus 2 mach 1 String

Zitat:
... Ich möchte gerne einen String "sv_maxspeed" und einen String in einer Variable zusammenfügen z.B.:

1 String: "sv_maxspeed "
2 String: "444" <-- Steht in der Variable: randomspeed

Das Ergebnis sollte dann so aussehen: "sv_maxspeed 444"
Ich hab das mal so probiert: sspeed = "sv_maxspeed " && randomspeed ...
@Steht in der Variable: randomspeed: Da es sich ja wie du sagst um eine Variable handelt, ist 444 kein String sondern ein Integer (Ganzzahl).

Versuche also folgendes:
Code:
...
new sCommand[MAX_COMMAND_LENGTH];

snprintf(sCommand,MAX_COMMAND_LENGTH,"sv_maxspeed %i", randomspeed);

exec(sCommand);
...
Zitat:
... Ich möchte gerne einen String "sv_maxspeed" und einen String in einer Variable zusammenfügen ...
Zwei Strings lassen sich nicht in einer Variablen zusammenfügen, aber man kann aus zwei Strings einen neuen String machen.

Bio

Autor:  daRope [ 11.05.2002, 22:34 ]
Betreff des Beitrags:  Re: Aus 2 mach 1 String

Zitat:
IDas Ergebnis sollte dann so aussehen: "sv_maxspeed 444"
Ich hab das mal so probiert: sspeed = "sv_maxspeed " && randomspeed

Was mache ich falsch? :cry:
Haallloooo!! Wir programmieren hier in Small, was eine Abart von C ist. Nicht in irgendwelchen anderen Skriptsprachen. Du solltest Dich erst einmal mit der Syntax von Small auseinandersetzen und Deine PHP oder VBS oder was auch immer Kenntnisse ablegen.
Code:
new var = 444;
new strvar[] = "444";
new result[40];

/* Zum Beispiel: */
snprintf( result, sizeof(result), "sv_maxspeed %u", var );

/* Oder, wenn "444" als string vorliegt: */

snprintf( result, sizeof(result), "sv_maxspeed %s", strvar );

/* Alternativ auch: */
strcpy( result, sizeof(result), "sv_maxspeed " );
strcat( result, sizeof(result)-13, strvar ); 

Autor:  @vus [ 12.05.2002, 14:04 ]
Betreff des Beitrags:  DANKE

:) Also ich habs jetzt geschafft! :)

Was das Scripten mit VB angeht, ich sollte wirklich des mal im Hintergrund lassen! Wenn ich halt Probleme habe, dann hol ich mir die Kenntnisse von VB und versuch sie in Small umzusetzen.
Code:
 
new randomspeed0 = 444;
new randomspeed[MAX_DATA_LENGTH] = "";
new Text[MAX_TEXT_LENGTH] = "";

numtostr(randomspeed0, randomspeed);

strcpy(Text, "sv_maxspeed ", MAX_TEXT_LENGTH);
strcat(Text, randomspeed, MAX_TEXT_LENGTH);

exec(Text);
Ich habs jetzt so gemacht wie daRope, weil ich vorher den Integer sowieso in einen String wandeln muss, dann ist daRopes Lösung vorteilhafter.

Bio deine Fassung wär zwar kürzer, aber is ja egal. Es funktioniert halt nur teilweise, weil ich gemerkt hab, dass CSGuard es sowieso wieder zurücksetzt :oops:
Naja man hats probiert und ich bin wieder einen Schluck klüger im Thema Adminmod-scripten 8) Übung macht den Meister!

Autor:  daRope [ 12.05.2002, 15:36 ]
Betreff des Beitrags:  Re: DANKE

Zitat:
Wenn ich halt Probleme habe, dann hol ich mir die Kenntnisse von VB und versuch sie in Small umzusetzen.
Ich haette hierzu noch einen bissigen Kommentar gehabt. Aber nachdem ich gemerkt habe, dass ich selber mal wieder keine Ahnung von der Syntax der Funktionen habe, lasse ich es lieber. Lass Du es auch am besten Small Probleme in VB zu loesen. :)

Autor:  @vus [ 12.05.2002, 15:38 ]
Betreff des Beitrags: 

Ich weis zwar nicht auf was du hinaus willst aber OK :)

Seite 1 von 1 Alle Zeiten sind UTC+01:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/