In der Log steht [18:50:14] 0 != 0 && 0 == 1
Dann weißt du, dass er offensichtlich pOrgMember von nix ist, da das 0 ist.
Ist er eventuell pOrgLeader? Kann es sein, dass du da 2 Variablen hast? ![]()
In der Log steht [18:50:14] 0 != 0 && 0 == 1
Dann weißt du, dass er offensichtlich pOrgMember von nix ist, da das 0 ist.
Ist er eventuell pOrgLeader? Kann es sein, dass du da 2 Variablen hast? ![]()
Irgendeine idee?
Schreibs mal so:
{
new org = PlayerInfo[playerid][pOrgMember];
printf("%d != 0 && %d == 1",org,OrgInfo[org][OrgMech]);
return (org != 0 && OrgInfo[org][OrgMech] == 1);
}
Dann schau mal, was geprintet wird im Server-Log und dann weißt du, was falsch läuft ![]()
PS: Funktionsname entfernt weil angeblich das ein zensiertes Wort ist *roflkopter*
Gibt es wirklich keine genauere Bezeichnung dazu?
Naja, kannst ja die Genre von Spielen einfach googeln, dann hast du alle exakt.

Und bei dem anderen Game steht nur Adventure, General
Und doch die games sind ähnlich.
Da man bei den io games auch interaktiv ist um mit der Maus Dingen auszuweichen oder sonstiges.
Auf was legst du denn genau Wert bei deiner Spiele Suche, wenn es dir um Musik geht, ist das natürlich eine andere Geschichte.
Empfehle dir folgendes:
1. Lösche CountDownFromAmount.
2. Schreib es so:
SetTimerEx("CountDownTimer2", 997, 0, "i", 10); //10 = Sekunden
forward CountDownTimer2(countDown);
public CountDownTimer2(countDown)
{
if (--countDown == 0) return GameTextForAll("Mach dich bereit!", 3000, 5);
new string[32];
format(string, sizeof(string), "~w~%d Sekunden", countDown);
GameTextForAll(string, 990, 4);
SetTimerEx("CountDownTimer2", 997, 0, "i", countDown);
return 1;
}
Dann brauchst du keine Globale Variable und der Timer beendet sich automatisch ![]()
Leider finde ich auch nicht das Paket welches diese Datei beinhaltet.
Das kommt auf deine Distribution an.
Unter Debian/Ubuntu müsste das libmysqlclient-dev sein und unter CentOS mysql-libs
Also das bezeichnet man eigentlich einfach als "Action Games" oder auch "Casual Games".
Gibt ja viele davon, sowie agar.io, slither.io, diep.io etc. pp.
Denke du suchst so nach io games ![]()
Ist es möglich z.B der aktuelle Stand von Bitcoin auszulesen und im Script einzubauen?
Ja, das ist sehr gut möglich.
Es gibt schon eine API die dir das zur Verfügung stellt: https://api.coinmarketcap.com/v1/ticker/bitcoin/?convert=EUR
Und mit der Funktion: https://wiki.sa-mp.com/wiki/HTTP kannst du das einfach abfragen und angeben ![]()
Am Ende wuerde ich gerne in einem Dialog alle Spieler auflisten, sortiert absteigend nach den meisten Kills.
Schreib das mal so:
new scoreTable[MAX_PLAYERS][2], idx;
for(new i = GetPlayerPoolSize(); i!=-1; i--)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
scoreTable[i][0] = playerdataInfo[i][pKills];
scoreTable[i][1] = i;
}
SortDeepArray(scoreTable, 0, .order = SORT_DESC); //Sortiert nach Kills
//Platz 1 - Meisten Kills
idx = scoreTable[0][1];
playerdataInfo[idx][pKills] //Platz 1 Kills
playerdataInfo[idx][pDeaths] //Platz 1 Deaths
playerdataInfo[idx][pBeds] //Platz 1 Betten
//Dann einfach Platz 2
idx = scoreTable[1][1];
playerdataInfo[idx][pKills] //Platz 2 Kills
playerdataInfo[idx][pDeaths] //Platz 2 Deaths
playerdataInfo[idx][pBeds] //Platz 2 Betten
//Dann einfach Platz 3
idx = scoreTable[2][1];
playerdataInfo[idx][pKills] //Platz 3 Kills
playerdataInfo[idx][pDeaths] //Platz 3 Deaths
playerdataInfo[idx][pBeds] //Platz 3 Betten
Alles anzeigen
Nutze dafür: https://forum.sa-mp.com/showthread.php?t=343172
Kleine Frage
Das keine kleine Frage, weil das komplett unverständlich ist, was du eigentlich wissen magst.
Und so gut wie keiner kennt doch die Funktionen etc was du da verwendest.
Schreib mir eine PN wenn du doch offensichtlich zu dem Callback Mechanismus von mir fragen hast ![]()
Ja...so könntest du es machen, dann musste einfach wieder das .pwn dranhängen und gut ist.
Aber es ist halt einfach unsinnig. Du könntest es ja auch .c oder .exe nennen, aber das macht ja keinen Sinn.
Du verwendest die Direktive #include somit ist faktisch alles was du da angibst, ein Include und nichts anderes.
Also solltest du .inc verwenden.
...ja hast du meinen Beitrag überhaupt genau gelesen?
Wie sieht denn dein Code und deine Ordnerstruktur jetzt aus...
Du solltest ja jetzt was angepasst haben
3 Dinge.
Das nennt man CULL Zones und das wird von GTA:SA geladen.
Das heißt, für sich selbst könnte man es evtl deaktivieren, aber nicht für einen SA:MP Server.
Hier nochmal eine Grafik: https://forum.sa-mp.com/showpost.php?p=3762186&postcount=13
Alsoo, irgendwo in deinem Gamemode steht:
#include <server/enums.pwn>
Also eine Sache dazu, man nennt Includes nicht .pwn, sondern .inc.
Dementsprechend schreib einfach: #include <server/enums>
So und nun muss es folgende Datei geben unter Pawno/includes/server/enums.inc.
Falls dann immer noch der Fehler auftritt liegt es eventuell daran, dass du das falsche Pawno geöffnet hast und er deshalb die Include nicht findet ![]()
sizeof(Donutshop[0][itemName])
Das kannst du leider nicht machen.
Die einzige Möglichkeit wäre sizeof(Donutshop[]) oder du nutzt einen direkten Wert ![]()
Format ist aber auch sehr langsam und in diesem Beispiel, wird auch kein format benötigt, da könntest du den String direkt setzen.
Donutshop[0][itemName] = "Donut ohne Füllung";
oder memcopy bzw strcat. Alles schneller und besser, als format ![]()
alle anderen auch 10 Minuten warten..
Dann musst du das auf die Spieler beschränken.
Anstatt atmtime musst das individualisieren mit atmtime[playerid].
Also auch mit new atmtime[MAX_PLAYERS]; deklarieren.
Hmm, also hier mal generell Limits: https://wiki.sa-mp.com/wiki/Limits
Hier z.B. mit der Map (hatte mich geirrt, die SA Map ist von 3000 bis -3000 groß, aber getriggert wird wohl bis 4096)
Known Bug(s): Pickups that have a X or Y lower than -4096.0 or bigger than 4096.0 won't show up and won't trigger OnPlayerPickUpPickup either.
Und die höhe der Interiors kannst du an der Z-Koordinate ablesen: http://weedarr.wikidot.com/interior
Also z.B. -25.884498,-185.868988,1003.546875 da sehen wir, dass die Höhe 1003 SA Meter sind.
Und alle weiteren sind auch so um ~1000 SA Meter über der Map ![]()
1. Es ist nur wichtig, dass sich die Interiors in den Zonen der SA:MP Map befinden. Also von -3000 bis 3000. Und zu weit unter der Map ist schlecht, weil man dann evtl über die Map gesetzt werden kann. Dementsprechend empfehle ich dir in der Luft (so wie das GTA SA auch macht) die Interiors zu mappen. Am Besten so auf einer Höhe von 2000. Weil bei 1000 sind die offline gta interiors.
2. Es gibt sowas: https://wiki.sa-mp.com/wiki/GameTextStyle
Das eine sind GameTexts (da ist die Auswahl limitiert, wie du siehst) und das andere sind TextDraws, wo du alles mögliche mit machen kannst. Also das was du vor hast ist definitiv mit TextDraws umsetzbar ![]()
Musst mal nach einem TextDraw Creator und Tutorial schauen, da wird dir das alles erklärt ![]()
Meiner Meinung nach, ist sowas wie Bcrypt in SA:MP garnicht nötig.
Z.b. Whirlpool ist schon ziemlich sicher, und wir reden hier ja nur von einem SA:MP Server Passwort. Ich glaube nicht, dass jemand mehrere Monate oder Jahre mein Passwort brute forcet, um dann meine 500.000GTA$ auf sein Konto zu überweisen.
Es geht hier nicht um SA:MP.
Das geht ja viel weiter.
In den meisten Datenbanken steht ja auch noch die Email dieses Nutzer oder der Nickname ist eben eindeutig.
Es besteht jetzt eine hohe Wahrscheinlichkeit, dass der User dieses Passwort überall verwendet (nicht nur auf dem SA:MP Server).
Das ist auch der Grund, wieso das so ein Ding im Thread über ReborN ist, es geht hier nicht um einen SA:MP Server, der eh down ist, sondern um die Tatsache, dass es nun möglich wäre die Email Adresse von Nutzern zu knacken oder sogar auf anderen Plattformen wie Facebook/Twitter/Instagram/Breadfish etc zu hacken oder gar zu erpressen.
Der Punkt ist, dass User-Daten sensible Daten sind und diese mit höchster Sicherheit zu verwahren sind. (In Deutschland gilt ja jetzt die DSGVO, weswegen man sogar juristisch angreifbar wäre).
Und um ein SHA-256 Passwort zu knacken bedarf es keine Monate. Ohne Salt/Pepper hat man das in Millisekunden dank riesen Rainbow-Tables.
Mit Salt/Pepper dauert es je nach Rechenleistung aber auch nicht so lange, da diese Hash-Funktionen gut parallelisierbar sind (das heißt je mehr Geräte, desto schneller).
Und man könnte leicht sich eine bestimmte Person raussuchen und fertig machen.
Deshalb wirklich bcrypt (da es ja auch gar keinen großen Aufwand darstellt, dies einfach zu nutzen) um sicher zu gehen ![]()
cache_get_value_name: field 'name' not found
Das sagt aus, dass es in deiner Tabelle keine Spalte mit dem Namen "name" gibt ![]()
Deshalb kann BizInfo[i][bName] nicht geladen werden.
Das mit dem cache_get_row_count: no active cache kommt ja erst später.
Kann es ventuell sein, dass es sich da gar um eine andere Funktion handelt oder dass du das einfach so irgendwo im Code plötzlich verwendest, wo es gar keinen Cache gibt?!
Das würde das dann erklären ![]()
Die alten C++ Redist Packages kann ich auch nicht installieren, laesst Windows 10 leider nicht zu, da angeblich von allem neuere Versionen installiert sind.
Sicher? Das ist sehr merkwürdig.
https://forum.sa-mp.com/showpost.php?p=3696651&postcount=3
Mal überall versucht die x86 zu installieren?