Willst du die Uhrzeit haben, wo er sich das letzte mal connected, oder disconnected hat?
[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
-
-
Willst du die Uhrzeit haben, wo er sich das letzte mal connected, oder disconnected hat?
Ich möchte gerne, das die Letzte Aktivität wo er Online war Angezeigt/Gespeichert wird.
Damit ich dann z.b herausfinden kann per Abfragen, wer wann das letzte mal Aktiv war. -
Ja, die Aktivität vom Disconnected oder Connecten, also wann er das letzte mal Connected / disconnected ist?
-
Ja, die Aktivität vom Disconnected oder Connecten, also wann er das letzte mal Connected / disconnected ist?
wo er Online war
Somit meint er den letzten Connect.
-
Somit meint er den letzten Connect.
Genau so meinte ich das. Gibt es eine Möglichkeit dies Herauszufinden und es zu Speichern? -
Okay.
Du fragst unter OnPlayerConnect die Uhrzeit ab, und speicherst sie in die Datei ab.Schau dir das mal an: http://wiki.sa-mp.com/wiki/Gettime Das wird dich wohl interessieren
-
Okay.
Du fragst unter OnPlayerConnect die Uhrzeit ab, und speicherst sie in die Datei ab.Schau dir das mal an: http://wiki.sa-mp.com/wiki/Gettime Das wird dich wohl interessieren
Danke für denn Tipp
Werde es mir mal gleich Genau anschauen. -
Sehr geehrte Leser/in,
ich komme bei einem Befehl nicht weiter und bräuchte die Hilfe von euch.
}
if(strcmp(x_job,"heilen",true) == 0)
{
[color=#ff0000] if(CarOffer[playerid] < 999)
{
if(IsPlayerConnected(CarOffer[playerid]))
{
if(GetPlayerMoney(playerid) > CarPrice[playerid])
{
if(IsPlayerInVehicle(CarOffer[playerid], CarID[playerid]))[/color]
{
[color=#ff0000]GetPlayerName(CarOffer[playerid], giveplayer, sizeof(giveplayer));[/color]
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Du hast Medizin für $%d von Auto Dealer %s gekauft.",HeilPrice[playerid],giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Du hast %s Medizin für $%d verkauft.",sendername,HeilPrice[playerid]);
SendClientMessage(CarOffer[playerid], COLOR_LIGHTBLUE, string);
GivePlayerMoney(playerid, -HeilPrice[playerid]);
[color=#ff0000]PlayerInfo[CarOffer[playerid]][pPayCheck] += HeilPrice[playerid];[/color]
GivePlayerMoney(playerid, -HeilPrice[playerid]);
[color=#ff0000]SetPlayerHealth(??,100);[/color]
return 1;
}
else
{
[color=#ff0000]SendClientMessage(playerid, COLOR_GREY, " Der Dealer ist nicht in dem Auto!");[/color]
return 1;
}
}
else
{
[color=#ff0000]SendClientMessage(playerid, COLOR_GREY, " Du kannst das Auto nicht kaufen!");[/color]
return 1;
}
}
return 1;
}
else
{
[color=#ff0000] SendClientMessage(playerid, COLOR_GREY, " Keiner will ein Auto verkaufen !");[/color]
return 1;
}
}So lautet der Befehl derzeit ich schreibe ihn vom car Befehl zum Heilen Befehl um.
Im Scripte habe ich HeilPrice definiert, und habe den auf 500 € gesetzt.
Bei den rotmakierten Stellen komme ich nicht weiter.
Wie heißt nochmal die Person der man was anbieten playerid oder wie? Und wie heißt die die etwas angeboten hat bzw. wie ist die definiert?
Mit freundlichen Grüßen
duengonalex -
Erst einmal:
Der Spieler der von SA:MP aus definiert ist, heißt playerid.
Dann kannst du den zweiten Spieler irgendwie definieren. pID, oder giveplayerid, oder auch was anderes.GetPlayerName(CarOffer[playerid], giveplayer, sizeof(giveplayer));
Das ist auch falsch.
Ganz oben im Befehl das:
new giveplayer;
Darunter das:
new gplayer[MAX_PLAYER_NAME];
Danach machst du das, um den Spieler den Namen auszulesen.
GetPlayerName(gplayer, giveplayer, sizeof(giveplayer));giveplayer ist jetzt der zweite definierte Name.
Wenn du Hilfe brauchst, melde dich.
-
Zitat
Der Spieler der von SA:MP aus definiert ist, heißt playerid.
Das ist Quatsch! Ein Spieler ist nicht von SA:MP irgendwie definiert. Das sind einfach nur Parameternamen, die du selbst nach Belieben ändern kannst! -
Kein keiner von euch mir richtig helfen bitte?
-
Hab mal ne Frage.
Hab meinen /ahelp befehl so geschrieben das ich /ahelp befehl machen kann
Mein Problem. Wenn ich /ahelp /ban mache funktzioniert das wunderbar.
Wenn ich jedoch /ahelp /banip mache bekomme ich die banhelp. Eigentlich ja logisch da ich mit strfind arbeite. CODE:
if(strfind(string, "/ban", true)!= -1)
{
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /ban [Spielerid/Name] [Grund]");
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
return 1;
}
if(strfind(string, "/banip", true)!= -1)
{
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /banip [IP] [Grund]");
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
return 1;
}
Wie kann ich das jetzt ändern das wenn ich /ahelp /banip mache das dan auch die banip help kommt und nicht das andere?
MFG, TheBlueFireKing//EDIT arbeite mit ocmd!
-
strcmp statt strfind.
-
commands schreibt man mit strcmp, mit strfind kannst du strings nach zb "1" durchsuchen
-
Habs jetzt so jetzt zeigt er mir jedoch nur die kickhelp an bei allen befehlen und ohne returns immer alles.
CODE:
if(strcmp(string,"/kick",true,5))
{
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /kick [Spielerid/Name] [Grund]");
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
return 1;
}
if(strcmp(string,"/ban",true,4))
{
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /ban [Spielerid/Name] [Grund]");
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
return 1;
}
if(strcmp(string,"/banip",true,6))
{
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /banip [IP] [Grund]");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: Beispiel: /banip 128.000.000.00 Cheater-Family");
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
return 1;
}
if(strcmp(string,"/unbanip",true,8))
{
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /unbanip [Spielerid/Name] [Grund]");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: Beispiel: /unbanip 128.000.000.00 Falsche IP");
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
return 1;
}
if(strcmp(string,"/tv",true,3))
{
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /tv [Spielerid/Name]");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: Man sieht alles aus des Sicht des angegebenen Spielers.");
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
return 1;
}
if(strcmp(string,"/gmx",true,4))
{
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /gmx");
SendClientMessage(playerid,COLOR_WHITE,"Benutzung: Speichert alle Daten und starten den Server in "restartsek" Sekunden neu.");
SCM(playerid, COLOR_GREEN, "|_______________________________________________________|");
return 1;
} -
Unter OnPlayerCommand Text packen
und arbeite mal wenns nicht geht mit if und else.Achja dein aufbau sieht etwas komisch aus, hier mal das beispiel vom main script an
if (strcmp("/mycommand", cmdtext, true, 10) == 0) -
Hallo Leute,
ich möchte einen eigentlichen Carbefehl umschreiben in ein heil Befehl doch leider scheitert es an der Umsetzung.
Der Befehl sieht so aus:
}
if(strcmp(x_job,"heilen",true) == 0)
{
if(CarOffer[playerid] < 999)
{
if(IsPlayerConnected(CarOffer[playerid]))
{
if(GetPlayerMoney(playerid) > CarPrice[playerid])
{
if(IsPlayerInVehicle(CarOffer[playerid], CarID[playerid]))[/color]
{
GetPlayerName(CarOffer[playerid], giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Du hast Medizin für $%d von Auto Dealer %s gekauft.",HeilPrice[playerid],giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Du hast %s Medizin für $%d verkauft.",sendername,HeilPrice[playerid]);
SendClientMessage(CarOffer[playerid], COLOR_LIGHTBLUE, string);
GivePlayerMoney(playerid, -HeilPrice[playerid]);
PlayerInfo[CarOffer[playerid]][pPayCheck] += HeilPrice[playerid];
GivePlayerMoney(playerid, -HeilPrice[playerid]);
SetPlayerHealth(??,100);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Der Dealer ist nicht in dem Auto!");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Du kannst das Auto nicht kaufen!");
return 1;
}
}
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Keiner will ein Auto verkaufen !");
return 1;
}
}
Der Spieler der /accept heilung gemacht hat sollte 100% hp bekommen und ihm sollten 500 Dollar abgezogen werden.
Und der der die Heilung angeboten hat dem sollten 500 Dollar zugewiesen werden. -
Unter OnPlayerCommand Text packen
und arbeite mal wenns nicht geht mit if und else.Achja dein aufbau sieht etwas komisch aus, hier mal das beispiel vom main script an
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
Was? Arbeite mit OCMD und sscanf kann dir sonst mal den ganzen Command schicken wenn du willst. -
@TheBlueFireKing:
Achsoo sag das doch
wenn du das so mit sscanf machst OHNE / davor -
//EDIT arbeite mit ocmd!
@TheBlueFireKing:
Achsoo sag das doch
wenn du das so mit sscanf machst OHNE / davorHab ich oben geschrieben aber ist jetzt egal.
Funktzioniert jetzt super Danke @ All -