Oder die Sesamstraße ![]()
Sieht so n bisschen aus wie Bert mit Baskenmütze hahaha xD

Oder die Sesamstraße ![]()
Sieht so n bisschen aus wie Bert mit Baskenmütze hahaha xD

Das die Gebäude ect ordentlich geladen werden.
Nein, da reicht es wenn du den Spieler in den Spectate Modus setzt, mit [wiki]TogglePlayerSpectating[/wiki]
Kurze frage kann man den Spieler irgendwie mit fahren lassen?
Was meinst du mit fahren?
Wenn du langsame Bewegung meinst, dann so:
InterpolateCameraPos(playerid, 2039.615722, 1712.241210, 15.445195, 2039.757934, 951.170471, 30.502363, 50000, CAMERA_MOVE);
Primzahlen, sind Zahlen, die nur durch sich selbst und 1 teilbar sind.
Also musst du leider wenn du wissen willst, ob N eine Primzahl ist erstmal checken, von 2-wurzel(n) ob da eine Zahl ist, mit der man N teilen kann.
Ups, sorry ![]()
public class Primzahlen
{
public static void main(String[] args) {
int erg = prim(2,30);
System.out.println(+erg);
}
private static int prim(int zahl1, int zahl2) {
if(zahl1 < 2 || zahl2 < 2)return System.out.println("Die Zahlen müssen mindestens 2 betragen!");
if(zahl2 < zahl1)return System.out.println("Zahl 2 muss größer als Zahl 1 sein!");
if(zahl2 == zahl1)return System.out.println("Gib 2 unterschiedliche Zahlen an!");
int primzahlen = 0;
for(int i=zahl1; i <= zahl2; i++)
{
if(isPrime(i))
{
primzahlen++;
}
}
return primzahlen;
}
private static boolean isPrime(int num)
{
if (num == 2)
return true;
if (num < 2 || num % 2 == 0)
return false;
for (int i = 3; i * i <= num; i += 2)
if (num % i == 0)
return false;
return true;
}
}
Alles anzeigen
Was soll die Funktion denn zurückgeben?
Aber jetzt Crasht Game immer
Gibt es einen crash-log? ![]()
Einfach mal googeln ![]()
Den Fehler gab es schon sehr oft, dir fehlen die C++ Redistributable ![]()
wobei es nicht mal einen inputtext gibt
Du musst schon lesen, was ich dir schicke.
inputtext hat den String als Wert, auf die listrow, auf die du geklickt hast.
Klickst du beispielsweise auf die 2. Zeile steht in inputtext "a (1)" in deinem Fall.
Dafür der Link...dafür habe ich das geschrieben...
Hier der Code noch mal ein bisschen anders geschrieben, kannst an einigen Stellen auf einiges verzichten.
Zudem solltest du versuchen keine globalen Strings zu verwenden.
CMD:billboards(playerid)
{
if(Spieler[playerid][pFraktion] != 5 && Spieler[playerid][pAdmin] < 4) return SendClientMessage(playerid, COLOR_GREY, "Fehler: Sie haben keinen Zugriff auf Billboards.");
new Header[32], count, string[(64)*sizeof(Billboards)] = "ID\tStandort\tText\n";
for(new i; i<sizeof(Billboards);i++)
{
if(Billboards[i][b_Created] != 1) continue;
format(string,sizeof(string),"%s\n%d\t%s (%d)\t%s", string, Billboards[i][datenbank_id], Billboards[i][bOrt], i, Billboards[i][bText]);
count ++;
}
if(count == 0)return SendClientMessage(playerid, COLOR_GREY, "Fehler: Es existieren zur Zeit keine Billboards.");
format(Header, sizeof(Header), "Werbetafeln (Insgesamt: %d)", count);
ShowPlayerDialog(playerid, DIALOG_BILLBOARDS, DIALOG_STYLE_TABLIST_HEADERS, Header, string, "Schließen", "");
return 1;
}
//Dann der Dialog part
if(!response) return 1;
new header[32];
//Das hier eventuell so lösen:
//Das liefert dir direkt die DatenbankID
pBillboardList[playerid] = strval(inputtext);
format(header, sizeof(header),"Billboard (ID: %d)", pBillboardList[playerid]);
if(Spieler[playerid][pAdmin] >= 4)
{
ShowPlayerDialog(playerid, DIALOG_BILLBOARDS_ADMIN, DIALOG_STYLE_LIST, header, "Checkpoint setzen\nText bearbeiten\nOrt bearbeiten\nBillboard löschen", "Auswählen", "Zurück");
}
else if(Spieler[playerid][pFraktion] == 5)
{
ShowPlayerDialog(playerid, DIALOG_BILLBOARDS_NR, DIALOG_STYLE_LIST, header, "Checkpoint setzen\nText bearbeiten", "Auswählen", "Zurück");
}
return 1;
Alles anzeigen
Habe direkt mal eine mögliche Lösung im Code angegeben, über inputtext kannst du dann die Datenbankid abfragen.
Hier mal, was inputtext für den jeweiligen Dialog Typ enthält: https://wiki.sa-mp.com/wiki/Dialog_Styles
Man kann es auch anders lösen, z.B. indem du das temporär in PVars zwischenspeicherst o.ä.
Aber so ist es eigentlich am einfachsten ![]()
v_boonet
Im new schreibst du v_boonet willst aber v_bonnet nutzen.
Musst dich auf eins einigen ![]()
konstrukive Diskussionen sind nicht möglich
Hmm? Doch natürlich, kannst gerne schreiben, was dich stört, nur dann solltest du auch schon eine Alternative bieten und keine einfaches, ja das ist nicht gut.
Zumal man deine Szenarien auch durch eine 2. Variablen lösen könnte wie...er ist Gast oder er muss Angemeldet sein.
Wie dem auch sei, ich würde sowas über einen zusätzlichen Parameter im ocmd Kopf umsetzen. Das braucht keine Zeile Code, kann pro Befehl gesteuert werden, und benötigt keine Ausnahmen in dem Callback, die im schlimmsten Fall auch noch mit strcmp gemacht werden, und womöglich auch vergessen werden, was ein Notfall Update nach sich zieht. Den zugehörigen Code baut man dann in das Callback ein oder direkt in die Include.
Das ist zwar eine nette Idee, aber mit ocmd, kaum bzw gar nicht realisierbar.
Woher soll man im Callback auch wissen, dass im Funktionsheader der Parameter auf true gesetzt wurde?!
Das müsste man dann zwischenspeichern und das wäre sehr aufwändig...da ist es einfach ein paar Ausnahmen zu schreiben oder das anders zu realisieren.
Aber im Endeffekt ist das noch um einiges umständlicher und viel schwieriger.
Mein Vorschläge sind einfach zu realisieren & zu integrieren.
Klar könnte man direkt auch auf Plugins wie https://forum.sa-mp.com/showthread.php?t=608474 umsteigen, wo man schon eine größere Funktionalität geboten bekommt, aber darum ging es ja eigentlich nicht.
aber ich hätte es glaube ich so geregelt
Also die Idee mit der Schleife ist schon gut, aber dein Code wird nicht funktionieren, da du x,y,z nicht updatest + nicht als erstes abfragst.
Desweiteren verwendest du hier 2 globale Variablen mit dem index MAX_PLAYERS, ich zeige mal, dass man das nicht brauch und der Code effizienter wird:
Zudem sollte man eine Zeitsperre einbauen, damit man den Command nicht spammt, während man sich noch bewegt:
ocmd:move(playerid,params[])
{
if(GetPVarInt(playerid,"p_move")) return SendClientMessage(playerid,-1,"Du bewegst dich schon gerade!");
SetPVarInt(playerid,"p_move",1);
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
SetTimerEx("RotatePlayer", 200, 0, "iifff", playerid, 0, x, y, z);
return 1;
}
public RotatePlayer(playerid, count, Float:x, Float:y, Float:z)
{
if(++count == 10) return DeletePVar(playerid,"p_move");
y += 2;
SetPlayerPos(playerid, x, y, z);
SetTimerEx("RotatePlayer", 200, 0, "iifff", playerid, count, x, y, z);
return 1;
}
Alles anzeigen
Damit hast du dann auch den /register und /login Befehl deaktiviert, man könnte sich daher nicht mehr einloggen bzw. registrieren, ohne eingeloggt zu sein.
Ebenso Befehle wie /help oder /contact. Diese sollten durchaus ohne Login möglich sein. Daher macht es meiner Meinung nach keinen Sinn, dieses Callback für diesen Zweck zu nutzen, da der eine oder andere Befehl mehr, weniger oder andere Abfragen benötigt.
1. Wer nutzt dafür heute noch Befehle?
2. Man kann dafür Ausnahmen einfügen, ich hoffe das ist dir bewusst. Nur weil man 3 Befehle verwenden mag, soll man also in allen anderen 1000 diese Zeile Code nutzen?! aha.
Dann wäre noch eine Idee mal das hier downloaden: https://support.microsoft.com/…ported-visual-c-downloads
Und dann mal Windows Updates laufen lassen, restarten und dann noch mal probieren.
Okay, also die IP ist erreichbar ohne Probleme.
Dann noch 3 Versuche:
1. Deaktiviere dein Antiviren System, manchmal blocken die evtl auch was.
2. Deaktiviere den Windows Defender.
3.
Kannst du mir mal die IP in per PN schicken, damit ich sicher gehen kann, dass diese auch wirklich von überall aus erreichbar ist? ![]()
Theoretisch kannst du diese auch posten, da ja eh ein pw drauf ist xD
Oh sorry, habe mich verlesen, dachte der Server läuft auf deinem PC.
Naja, wenn der Server von überall aus erreichbar ist, nur nicht von deinem Laptop aus, liegt das an deinem Laptop.
Hat dein Laptop denn Internet? ![]()
Deaktiviere eventuell mal die Firewall, starte SA:MP mal als Administrator...evtl verschiebe den Pfad wo sich GTA:SA und so befindet mal.
Ist der Port denn bei deinem Router freigegeben oder befindet ihr euch alle über Hamachi in einem Virtuellen Netzwerk?