Ich suche eine Animation wo es so aussieht als würde man etwas aus dem Regal nehmen.
Sprich wo er sich nach Vorne Beugt und etwas aufnimmt.
Suche immernoch eine passende Animation dafür
Ich suche eine Animation wo es so aussieht als würde man etwas aus dem Regal nehmen.
Sprich wo er sich nach Vorne Beugt und etwas aufnimmt.
Suche immernoch eine passende Animation dafür
stock MySQL_SetupConnection(ttl = 3)
{
print("[MySQL] Verbindungsaufbau...");
handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
if(mysql_errno(handle) != 0)
{
if(ttl > 1)
{
print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
return MySQL_SetupConnection(ttl-1);
}
else
{
print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
print("[MySQL] Bitte prüfen Sie die Verbindungsdaten.");
print("[MySQL] Der Server wird heruntergefahren.");
return SendRconCommand("exit");
}
}
printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
return 1;
}
Alles anzeigen
Ist bei beiden Gamemodes natürlich exakt das Selbe
Habe in dem englisch sprachigen Forum eine Funktion gefunden um des Fahrzeug zu ermitteln was am nächsten am Spieler ist.
Allerdings wird mir kein Fahrzeug zurück gegeben sondern die Schleife wird unendlich lang weitergeführt.
Hier nochmal der Original Code aus dem Forum:
stock GetClosestVehicle(playerid, Float:range)
{
new Float:p_X;
new Float:p_Y;
new Float:p_Z;
new Float:Distance;
new Float:PretendentDistance = range +1;
new Pretendent;
GetPlayerPos(playerid, p_X, p_Y, p_Z);
for(new vehicleid=1; vehicleid < MAX_VEHICLES; vehicleid++)
{
Distance = GetVehicleDistanceFromPoint(vehicleid, p_X, p_Y, p_Z);
if(Distance <= range && Distance <= PretendentDistance)
{
Pretendent = vehicleid;
PretendentDistance = Distance;
}
}
return Pretendent;
}
Alles anzeigen
Hatte es mal umgeschrieben und so geschrieben das die Schleife ein break macht sobald die ID Invalide ist allerdings hat dies nichts gebracht.
Erkennt ihr den Fehler?
stock GetClosestVehicle(playerid, Float:range)
{
new Float:p_X, Float:p_Y, Float:p_Z, Float:tmp, Float:dist = range, id = INVALID_VEHICLE_ID;
GetPlayerPos(playerid, p_X, p_Y, p_Z);
for(new vehicleid=1; vehicleid < MAX_VEHICLES; vehicleid++)
{
if(!IsValidVehicle(vehicleid)) continue;
tmp = GetVehicleDistanceFromPoint(vehicleid, p_X, p_Y, p_Z);
if(tmp < dist)
{
id = vehicleid;
dist = tmp;
}
}
return id;
}
Sollte dir weiterhin kein valides Fahrzeug ausgegeben werden, erhöhe mal deinen angegebenen Range.
Weiß jemand warum er mir als Code sowas komisches ausgibt?
format(Gutschein[i][gCode], 16, "%s%d%s%d-%s%d%s%d-%s%d%s%d", getRandomLetter(), random(10), getRandomLetter(), random(10), getRandomLetter(), random(10), getRandomLetter(), random(10), getRandomLetter(), random(10), getRandomLetter(), random(10));
Wollte 3 Blöcke, wo jeweils Buchstabe, Zahl, Buchstabe und Zahl kommt.
Er gibt mir jedoch folgendes aus: R6NR4-dNR0n0
Du müsstest dein Code posten von deiner Funktion hier ein alternative :
static const randomChars[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z'};
#define getRandomLetter() randomChars[random(24)]
#define getRandomNumber(%0) random(%0)
format(Gutschein[i][gCode], 16, "%c%d%c%d-%c%d%c%d-%c%d%c%d",getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),
getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10),
getRandomLetter(),getRandomNumber(10), getRandomLetter(),getRandomNumber(10));
Wie wäre es hier richtig? Die Abfrage ob der Code existiert, funktioniert leider nicht.
for(new i=1;i<MAX_GUTSCHEINE;i++)
{
if(Gutschein[i][gErstellt] != 0)
{
if(!strcmp(inputtext, Gutschein[i][gCode], false))
{
if(Gutschein[i][gGebunden] == 1)
{
}
else
{
}
SendClientMessage(playerid, COLOR_GREY, "Richtiger Code.");
return 1;
}
else
{
ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen", ""COLOR_HEX_YELLOW"Du hast einen ungültigen Gutschein-Code eingegeben\n\n"COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in das untere Feld ein.", "Auswählen", "Abbrechen");
return 1;
}
}
}
}
Hey, kleine Frage:
Ich öffne und schließe ein Gebäude und setze dann ein Boolean auf true oder false. Danach möchte ich mir in einem Dialog den aktuellen Status anzeigen, habe aber dann nur 0 & 1 zur Verfügung. Wie könnte ich jetzt z.B. Aufgeschlossen / Abgeschlossen anzeigen lassen?
Hilft nicht, beim string werden trotzdem weiterhin komische Zahlen ausgegeben (weils's immernoch ein Integer ist).
MachineCongiguration(playerid)
{
new buffer[350];
if(TowerOpened == true)buffer="Aufgeschlossen";
else buffer="Abgeschlossen";
format (buffer, sizeof(buffer), "\
Name\tStatus\tType\n\
{0080FF}Min Bet\t{80FF00}%d$\t{FFFFFF}INPUT\n\
{0080FF}Max Bet\t{80FF00}%d$\t{FFFFFF}INPUT\n\
{0080FF}Tower Status\t{80FF00}%s\t{FFFFFF}LIST", MinBet, MaxBet, TowerOpened);
ShowPlayerDialog(playerid, DIALOG_GCFG, DIALOG_STYLE_TABLIST_HEADERS, "Machine Configuration", buffer, "OK", "Close");
return 1;
}
Du sollst ja auch buffer statt TowerOpened angeben.
Weiß jemand zufällig, warum nur der erste Eintrag in der Tabelle überprüft wird und die anderen nicht?
case DIALOG_GUTSCHEIN:
{
if(response)
{
if(!strlen(inputtext))return ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen", ""COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in das untere Feld ein.", "Auswählen", "Abbrechen");
for(new i=1;i<MAX_GUTSCHEINE;i++)
{
if(Gutschein[i][gErstellt] != 0)
{
if(!strcmp(inputtext, Gutschein[i][gCode], false))
{
if(Gutschein[i][gGebunden] == 1)
{
}
else
{
}
SendClientMessage(playerid, COLOR_GREY, "Richtiger Code.");
return 1;
}
else
{
ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen", ""COLOR_HEX_YELLOW"Du hast einen ungültigen Gutschein-Code eingegeben\n\n"COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in das untere Feld ein.", "Auswählen", "Abbrechen");
return 1;
}
}
}
}
}
Beachte bitte sollte die Bedingung nicht zutreffen lass die Schleife nicht abbrechen und den text anzeigen, sollte der erste EIntrag nicht zutreffen wird die Spalte gleich beendet, daher
Schau erst nach einem treffer und falls dies sein sollte kannst du ein return plazieren und sollte kein treffer gefunden werden, so gibst du nach der Schleife die Nachricht as nix gefunden wurde.
case DIALOG_GUTSCHEIN:
{
if(response)
{
if(!strlen(inputtext))return ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen", ""COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in das untere Feld ein.", "Auswählen", "Abbrechen");
for(new i=1;i<MAX_GUTSCHEINE;i++)
{
if(Gutschein[i][gErstellt] != 0)
{
if(!strcmp(inputtext, Gutschein[i][gCode], false))
{
SendClientMessage(playerid, COLOR_GREY, "Richtiger Code.");
return 1;
}
}
}
ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN, DIALOG_STYLE_INPUT, "Gutschein einlösen", ""COLOR_HEX_YELLOW"Du hast einen ungültigen Gutschein-Code eingegeben\n\n"COLOR_HEX_WHITE"Bitte gebe deinen Gutschein-Code nun in das untere Feld ein.", "Auswählen", "Abbrechen");
return 1;
}
}
Alles anzeigen
Gibt es eine Funktion, wo aufgerufen wird wenn jemand ein Fahrzeug verlässt, auch wenn er z.b teleportiert wird?
also nicht OnPlayerExitVehicle
Alles anzeigenAlso hallo,
Zurzeit habe ich Warns weg bekommen
Doch jetzt habe ich es richtig eingefügt hoffe ich mal den bei mir kamen keine Errors
Textdraw0 = TextDrawCreate(-3.000000, 437.000000, " Forum:"); TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 1);
TextDrawLetterSize(Textdraw0, 0.500000, 1.000000);
TextDrawColor(Textdraw0, 65535);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
TextDrawUseBox(Textdraw0, 1);
TextDrawBoxColor(Textdraw0, 255);
TextDrawTextSize(Textdraw0, 640.000000, 70.000000);
TextDrawSetSelectable(Textdraw0, 0);
TextDrawShowForAll(Textdraw0);
Textdraw1 = TextDrawCreate(65.000000, 437.000000, "www.kommtnoch.de");
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 1);
TextDrawLetterSize(Textdraw1, 0.500000, 1.000000);
TextDrawColor(Textdraw1, -1);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
TextDrawSetSelectable(Textdraw1, 0);
TextDrawShowForAll(Textdraw1);
Textdraw2 = TextDrawCreate(295.000000, 437.000000, "Teamspeak:");
TextDrawBackgroundColor(Textdraw2, 255);
TextDrawFont(Textdraw2, 1);
TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
TextDrawColor(Textdraw2, 65535);
TextDrawSetOutline(Textdraw2, 0);
TextDrawSetProportional(Textdraw2, 1);
TextDrawSetShadow(Textdraw2, 1);
TextDrawSetSelectable(Textdraw2, 0);
TextDrawShowForAll(Textdraw2);
Textdraw3 = TextDrawCreate(394.000000, 437.000000, "kommtnoch.teamspeak.me");
TextDrawBackgroundColor(Textdraw3, 255);
TextDrawFont(Textdraw3, 1);
TextDrawLetterSize(Textdraw3, 0.500000, 1.000000);
TextDrawColor(Textdraw3, -1);
TextDrawSetOutline(Textdraw3, 0);
TextDrawSetProportional(Textdraw3, 1);
TextDrawSetShadow(Textdraw3, 1);
TextDrawSetSelectable(Textdraw3, 0);
TextDrawShowForAll(Textdraw3);;
Doch das klappt immer noch nicht
Brauche noch Hilfe wende mich mal hier
Brauche noch Hilfe wende mich mal hier
Bei was brauchst du hilfe?
Gibt es eine Funktion, wo aufgerufen wird wenn jemand ein Fahrzeug verlässt, auch wenn er z.b teleportiert wird?
also nicht OnPlayerExitVehicle
Ja, OnPlayerStateChange und dort checken ob oldstate == PLAYER_STATE_PASSENGER oder PLAYER_STATE_DRIVER war
Ehm.
Also ich habe diese Testdraw erstellt doch es kommt Ingame nicht an.
Heißt das es Ingame nicht angezeigt wird.
Obwohl keine Errors kamen
Ehm.
Also ich habe diese Testdraw erstellt doch es kommt Ingame nicht an.
Heißt das es Ingame nicht angezeigt wird.
Obwohl keine Errors kamen
Wo rufst du die denn auf?
Benutz du https://wiki.sa-mp.com/wiki/TextDrawShowForPlayer ?