str_replace ist keine Standard Funktion.
Kannst du die Funktion bitte posten?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Ist die von der str_lib
Code
Alles anzeigenstock str_replace(sSearch[], sReplace[], const sSubject[], &iCount = 0) { new iLengthTarget = strlen(sSearch), iLengthReplace = strlen(sReplace), iLengthSource = strlen(sSubject), iItterations = (iLengthSource - iLengthTarget) + 1; new sTemp[128], sReturn[_strlib_med_string]; strcat(sReturn, sSubject, _strlib_med_string); iCount = 0; for(new iIndex; iIndex < iItterations; ++iIndex) { strmid(sTemp, sReturn, iIndex, (iIndex + iLengthTarget), (iLengthTarget + 1)); if(!strcmp(sTemp, sSearch, false)) { strdel(sReturn, iIndex, (iIndex + iLengthTarget)); strins(sReturn, sReplace, iIndex, iLengthReplace); iIndex += iLengthTarget; iCount++; } } return sReturn; }
-
Ist die von der str_lib
Versuche es hiermit:
stock str_replace2(const search[],const replace[], source[], size=sizeof source)
{
new i=strfind(source,search),tmp=strlen(search),len=strlen(replace);
if(i==-1) return 0;
for( ; i!=-1; i=strfind(source,search,false,i+len))
{
strdel(source,i,i+tmp);
strins(source,replace,i,size);
}
return 1;
}new number[20];
format(number, sizeof number, inputtext);
str_replace2(" ", "", number); -
Super, funktioniert. Danke dir!
-
Kann mir einer erläutern, was ich falsch gemacht habe ? Habe eine andere Schranke genauso, jedoch diese einzige will nicht.
Auf:
MoveDynamicObject(gate, -297.77802, 1053.69495, 19.30940 +0.001, 0.001, 0.0000, 0.0000, 359.27740);Zu:
MoveDynamicObject(gate, -297.77802, 1053.69495, 19.20940 -0.001, 0.001, 0.00000, 90.00000, 357.17749); -
Wie erstellst du die Schranke?
Wird der Code aufgerufen? -
Ja, die Nachricht wird ausgegeben, nur die Schranke bewegt sich nicht.
//edit
Fehler gefunden. Habe es als CreateObject statt Dynamisches Objekt. -
Wie kann ich die IP von einem Spieler auslesen. Wenn ich dass mache kommt immer 255.255.255..... raus.
Der Server läuft auf meinem VServer.
Momentan mache ich es mit GetPlayerIp -
Zeig mal den gesamten Code Abschnitt
-
-
Ich habe eine Frage bezüglich TextDraws, undzwar habe ich mir ein TextDraw erstellt, welches sich in einem Timer immer wieder in der Position anpassen soll,
leider gibt es ja keine SetTextDrawPosition Funktion, aber existiert vielleicht eine andere Funktion unter einem anderen Name, oder muss ich jedes mal das TextDraw löschen und wieder neu erstellen lassen? -
moin wie frage ich ab ob die eingegebene pid in meiner nähe ist?
Also im grunde isplayerinrangeofplayer
-
Ich habe eine Frage bezüglich TextDraws, undzwar habe ich mir ein TextDraw erstellt, welches sich in einem Timer immer wieder in der Position anpassen soll,
leider gibt es ja keine SetTextDrawPosition Funktion, aber existiert vielleicht eine andere Funktion unter einem anderen Name, oder muss ich jedes mal das TextDraw löschen und wieder neu erstellen lassen?Hol dir das YSF Plugin, das hat extra TextDraw Functions mit denen du unter anderem auch Textdraws verschieben kannst.
-
-
Warum wird die Crack animation nicht gesetzt?
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 1, 0, 1); -
Moin, habe ein Problem mit SetTimer
habe den forward oben im Script
das Public dazu über meinen befehlen und den SetTimer im /kick befehl.Der Kick kommt, aber die message dazu wird nicht ausgegeben.
Befehl sieht so aus:
dcmd_kick(playerid,params[])
{
new pid;
new grund[256];
new servertext[256];
new spielertext[256];
new spielername[MAX_PLAYER_NAME];
new adminname[MAX_PLAYER_NAME];
GetPlayerName(pid,spielername,sizeof(spielername));
GetPlayerName(playerid,adminname,sizeof(adminname));
if(sscanf(params, "us",pid,grund)) return SendClientMessage(playerid,Weiß,"Info: /kick [playerid] [grund]");
if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,Weiß,"Kein Spieler mit angegebener ID Online!");
if(sSpieler[playerid][Adminlevel] < 2) return SendClientMessage(playerid,Weiß,"Du hast nicht die benötigten Rechte, um diesen Befehl auszuführen!");
{
format(spielertext,sizeof(spielertext),"INFO: Du wurdest von %s gekickt! Grund: %s",adminname,grund);
format(servertext,sizeof(servertext),"SERVER: %s wurde von %s gekickt! Grund: %s",spielername,adminname,grund);
SendClientMessage(pid,Weiß,spielertext);
SendClientMessageToAll(Weiß,servertext);
SetTimer("KickTimer",200,0);
}
return 1;
} -
Siehe http://wiki.sa-mp.com/wiki/Kick. Du musst also einen Timer einbauen, nachdem die Nachricht gesendet wurde, welcher dann den Spieler kickt.
-
Danke hat geklappt.
Dabei ist mirjedoch ein weiterer Fehler aufgefallen.
dcmd_amodus(playerid,params[])
{
#pragma unused params
if(sSpieler[playerid][Adminlevel] < 1) return SendClientMessage(playerid,Weiß,"Du hast nicht die benötigten Rechte, um diesen Befehl auszuführen!");
if(aDuty[playerid] == 0)
{
aDuty[playerid] = 1;
new str[64], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
SetPVarString(playerid, "oldName", name);
format(str, sizeof(str), "[ADMIN]%s", name);
SetPlayerName(playerid, str);
SetPlayerHealth(playerid,60000);
SetPlayerArmour(playerid,60000);
SendClientMessage(playerid,Weiß,"Du hast den Adminmodus gestartet!");
}
else
{
aDuty[playerid] = 0;
new name[MAX_PLAYER_NAME];
GetPVarString(playerid, "oldName", name, MAX_PLAYER_NAME);
SetPlayerName(playerid, name);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
SendClientMessage(playerid,Weiß,"Du hast den Adminmodus beendet!");
}
return 1;
}Wenn ich Aduty aktiviert habe, passt alles.
Sobald ich aber den Aduty auf 0 setzen lasse, steht [ADMIN][ADMIN]Spielername: Text!
Wieso verdoppelt sich das [ADMIN], anstatt wegzugehen? -
Hmm also ich sehe keinen Fehler darin und bei mir funktioniert es auch. Veränderst du die aduty oder oldName Variablen noch irgendwo anders?
-
ne die variable ist nur oben definiert.
Ich versteh das auch nicht