Da hast du
Ist ungetestet, sollte aber theoretisch funktionieren...
Beiträge von M4rciii
-
-
else if ist eigentlich nur eine Kurzschreibweise. Du kannst eine Abfrage auf zwei Weisen schreiben:
if(a == 1) // Ist a = 1
{
//...
}
else // Wenn a != 1 ist
{
if(a == 2) // Ist a = 2
{
//...
}
}Oder:
if(a == 1) // Ist a = 1
{
//...
}
else if(a == 2) // Wenn a != 1 ist, aber a = 2 ist
{
//...
}Das else if (Zeile 5) wird nur aufgerufen, wenn die Abfrage (Zeile 1) falsch ist.
Das ist etwas doof mit Worten zu erklären, hoffentlich hast du es so verstanden...
-
Bei diesem AdminFS muss man RCON-Admin sein, um die Befehle benutzen zu können.
Schau in deine server.cfg nach rcon_password, dahinter steht das RCON-Passwort.
Dann gehst du in den Server und gibst /rcon login <rconpasswort> ein.
Also zum Beispiel /rcon login lolmuhaharofl, wenn das RCON-PW lolmuhaharofl ist.Das ist mit der NAMELOG.txt ist so, dass alle Namen der Spieler, die den Server betreten dort abgepeichert werden.
-
Natürlich geht das auch...
// EDIT: Ok, ich mach mich an die Arbeit (Will nich noch nen Beitrag extra aufmachen ) -
Hast du denn schon einen /undercover-befehl, den man einfach umbauen könnte.
Wenn nicht, dann bräuchten wir ein bisschen mehr Informationen.
Wie sollen die Sachen im ListDialog heißen, welche Skins soll man dann bekommen, etc. -
Soweit ich das überblicken kann nicht. Die Autos werden an deiner Position gespawnt und verschwinden erst wieder beim Serverrestart.
-
Leider muss ich sagen, dass darin einige Fehler enthalten sind...
Listitem 14 spawnt das Fahrzeug 360. Wenn man also das 15. in der Liste spawnt, stürzt der Server ab...(Muss zu 560 = Sultan geändert werden)
Du fragst bei OnDialogResponse gar nicht ab, ob es sich um den CarSpawnDialog handelt => Bei jedem Dialog wird ein Auto gespawnt. Auch bei einem Inputdialog würde ein Buffalo gespawnt werden, da da listitem = 0 wäre.
Insgesamt ist das Script viel zu lang, dafür dass es nur ein ListDialog ist...
EDIT: Achso ja, außerdem ist da strtok drin, obwohl man es gar nicht braucht...Ich es mir mal erlaubt das Script zu korregieren und etwas einfacher zu machen: breadfish.de/wcf/attachment/1502/
-
Dazu brauchst du den /save-Command. Erklärung:
ZitatBei Teleports wird man immer zu einer Position teleportiert, die eindeutig durch 3 Koordinaten bestimmbar ist. Man erhält diese Koordinaten ganz einfach, indem man sich auf einem Server an eine Stelle stellt und dort den Command /save [Kommentar] eingibt. Nun müsst ihr in euer Rockstar Games/GTA San Andreas-Verzeichnis schauen, dort sollte eine Datei namens savedpositions.txt sein. In dieser Datei werden alle eure gespeicherten Positionen aufbewahrt. Ihr könnt dort beispielsweise so etwas vorfinden:
AddPlayerClass(212,-1061.8599,1562.4587,33.2313,32.5994,0,0,0,0,0,0); // Kommentar -1061.8599,1562.4587,33.2313 sind die X, Y und Z Koordinaten. Direkt dahinter könnt ihr die Drehung sehen, in der ihr in dem Moment gestanden seid, hier 32.5994. Die restlichen Variablen in dieser Zeile interessieren uns nicht.
Quelle: [ SCRIPTING ] Teleport-Tutorial (Am besten mal durchlesen)
So könnte dann dein Teleport aussehen, du musst nur die Koordinaten aus der Zeile aus savedpositions.txt richtig einfügen.
if(strcmp("/teleport",cmdtext,true) == 0)
{
SetPlayerPos(playerid,1864.5662,-1383.5651,13.4896);
SetPlayerFacingAngle(playerid,233.7254);
SendClientMessage(playerid,COLOR_YELLOW," Du wurdest zu dem Ort blabla teleportiert!");
return 1;
} -
Godfather?
Wenn ja, dann schau in deine Accountdatei und ändere Level, sowie AdminLevel auf einen gewünschten Wert.Wahrscheinlich ist dein Level auf -999, das ist dazu, dass man mit deinem Account nicht mehr reinkommt (man ist ja schließlich gebannt).
EDIT: Ja, ich hatte Recht! xD -
Ok, jetzt haben wirs fast
if(dini_IntGet(save,"passwort") == udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt
zu
if(dini_Int(save,"passwort") == udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmtMein Fehler xD (schon wieder )
-
Sorry, ich muss mich entschuldigen. Ich habe udb_hash mit einer anderen Verschlüsselung verwechselt. udb_hash verschlüsselt Strings in eine Zahl, und nicht etwa in einen String.
Also muss es so lauten:
if(strcmp(strget(cmdtext,0), "/register", true) == 0)
{
new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
GetPlayerName(playerid,spieler,sizeof(spieler));
format(save, sizeof(save),"Spieler/%s.ini",spieler);
if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
{
dini_Create(save); // Erstelle eine Neue .ini Datei
dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegebne hat)
SendClientMessage(playerid, COLOR_GREEN, "***Dein Account wurde erfolgreich registriert***");
SendClientMessage(playerid, COLOR_GREEN, "***Nutze /login [Passwort] um dich einzuloggen***");
}
else if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
{
SendClientMessage(playerid, COLOR_RED, "Der Account ist bereits registriert");
Kick(playerid); // Kickt den Spieler
}
return 1;
}if(strcmp(strget(cmdtext,0), "/login", true) == 0)
{
new save[40];
GetPlayerName(playerid,spieler,sizeof(spieler));
format(save,sizeof(save),"Spieler/%s.ini",spieler);
if(dini_Exists(save))
{
if(dini_IntGet(save,"passwort") == udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt
{
loggedin[playerid] = true;
SendClientMessage(playerid, COLOR_LIGHTBLUE, "***Du hast dich erfolgreich eingeloggt***");
}
else
{
SendClientMessage(playerid, COLOR_RED, "Passwort Falsch!");
}
}
return 1;
} -
Ahhh, jetzt seh ich das. Brauchst dich nicht für den Fehler zu schämen, hab ihm grade bei 4. Mal drüberlesen gesehn
Ändere
dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegebne hat)
zu
dini_Set(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegebne hat)Schließlich ist das Passwort eine Zeichenkette und keine Zahl.
-
Wenn die Variable dafür, dass er im Job ist Muellmann[playerid][pmi_bAktiv] entspricht, dann sollte das hier funktionieren:
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(Muellmann[playerid][pmi_bAktiv] == true)
{
Muellmann[playerid][pmi_bAktiv] = false;
SendClientMessage(playerid,COLOR_RED," Du hast das Fahrzeug verlassen und somit die Route beendet!");
}
return 1;
} -
In dieser Zeile sehe ich den Fehler:
if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmtProbiers so:
if(strcmp(s2,udb_hash(strget(cmdtext,1)),false) == 0) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt -
Soweit ich das noch in Erinnerung habe, müssen das die IDs 200 und 201 sein.
//OnPlayerConnect:
SendDeathMessage(playerid,INVALID_PLAYER_ID,200);//OnPlayerDisconnect:
SendDeathMessage(playerid,INVALID_PLAYER_ID,201); -
new vehicleid;
AddVehicleComponent(vehicleid, 1010);Ich glaube das Problem liegt darin, dass du dauernd VehicleID 0 Nitro gibst
Entweder so:
new vehicleid = GetPlayerVehicleID(playerid);
AddVehicleComponent(vehicleid, 1010);
Oder so:
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); -
Ja, du hast mich grade eines besseren gelehrt xD. Ich dachte im Auto kann man keine Pickups aufnehmen.
Nen Timer würde man brauchen, um zu überprüfen, ob sich jemand in der Nähe des Pickups befindet und ihm dann Nitro zu geben. -
Ändere
if(dialogid == 3) // Deine Dialogid
zu
if(dialogid == 3 && response) // Deine Dialogid -
-
Du Pusha *g*
Also wenn ich dich richtig verstehe, willst du den Text einer Textbox an einen anderen Text anheften.
Ich bin zwar kein großer Kenner, mein gesunder Menschverstand leitet mich zu dieser ZeileTheoretisch sollte das funktionieren, aber wie gesagt, ich kenn mich da nich so aus.