Ich brauchte mall wieder etwas Hilfe hab 26 Error
Das klingt nach einem Klammerfehler :o
Wenn du magst, kannst du gerne mein Tool ausprobieren, ob es hiflt: Klammerfehler finden
Ich brauchte mall wieder etwas Hilfe hab 26 Error
Das klingt nach einem Klammerfehler :o
Wenn du magst, kannst du gerne mein Tool ausprobieren, ob es hiflt: Klammerfehler finden
Jetzt mal no hate oder so, aber, was bzw. wer ist denn das "Crypto Team"?
Worum geht es überhaupt?
Wollt ihr euch nicht einmal in Ruhe vorstellen und zeigen, was ihr habt und anstrebt?
Ist das überhaupt ein SA:MP Projekt oder ein Kryptowährungsforum?!
Ich habe keine Ahnung, worum es überhaupt geht und sollte mich darauf bewerben?
Das macht nun nicht sehr viel Sinn 😅
Hast du denn einen V-Server?
Dann kannst du das Forum ja darüber laufen lassen und eine Domain kostet nur so 1-2€ im Jahr...
Das Problem wäre die Forensoftware, es gäbe da bestimmte Lite Versionen, die man kostenlos nutzen kann oder du musst jemanden finden der dir sowas zur Verfügung stellt oder eine andere Free-Foren-Software nutzen ![]()
Dann hast du keine Ahnung vom Scripting und dein Server scheitert ohne Scripter
Wow, was für ein qualitativer Beitrag, vielen Dank.
Und ich dachte immer ich sei hier am Herablassesten ![]()
Ist OnPlayerSpawn nicht OnPlayerRequestClass ( Da verstehe ich es aber bei OnPlayerSpawn nicht )
Du musst unter OnPlayerSpawn einfach SetPlayerPos verwenden ![]()
So, ich möchte nun meine folgende Intrinsics Frage stellen.
Die Sektion hier ist für Scripting Fragen, das was du hier fragst, ist eine sehr spezifische Programmierfrage, die nichts mit Pawno zu tun hat.
Hier ein kleiner Überblick: https://www.linux-magazin.de/a…vier-auf-einen-streich/4/
Öhm, das hat geklappt, woran lag das Problem.
Bei dem "neuen" Compiler ist es notwendig, dass alle Strings als const angegeben werden.
Zum Beispiel:
Das müsste zu:
Theoretisch ist es nicht notwendig, aber der Compiler, kann solche Funktionen dann besser optimieren.
Versuch es mal so:
/**
* MySQL plugin R39-6
*/
#if defined mysql_included
#endinput
#endif
#define mysql_included
/**
* Common error codes
*
* Client: http://dev.mysql.com/doc/refman/5.1/en/error-messages-client.html
* Server: http://dev.mysql.com/doc/refman/5.1/en/error-messages-server.html
*/
#define ER_DBACCESS_DENIED_ERROR 1044
#define ER_ACCESS_DENIED_ERROR 1045
#define ER_UNKNOWN_TABLE 1109
#define ER_SYNTAX_ERROR 1149
#define CR_SERVER_GONE_ERROR 2006
#define CR_SERVER_LOST 2013
#define CR_COMMAND_OUT_OF_SYNC 2014
#define CR_SERVER_LOST_EXTENDED 2055
enum E_MYSQL_LOGLEVEL
{
LOG_NONE = 0,
LOG_ERROR = 1,
LOG_WARNING = 2,
LOG_DEBUG = 4,
LOG_ALL = LOG_ERROR | LOG_WARNING | LOG_DEBUG
};
enum E_MYSQL_LOGTYPE
{
LOG_TYPE_TEXT = 1,
LOG_TYPE_HTML = 2
};
enum ORM_Error
{
ERROR_OK,
ERROR_NO_DATA
};
enum E_MYSQL_OPTION
{
DUPLICATE_CONNECTIONS,
LOG_TRUNCATE_DATA
};
enum E_EXECTIME_UNIT
{
UNIT_MILLISECONDS,
UNIT_MICROSECONDS
};
#define mysql_real_escape_string mysql_escape_string
#define cache_num_fields cache_get_field_count
#define cache_num_rows cache_get_row_count
#define mysql_function_query(%0,%1,%2,%3,"%4"%5) mysql_tquery(%0,%1,%3,#%4%5)
#define mysql_reload(%0) mysql_tquery(%0,"FLUSH PRIVILEGES")
#define mysql_debug(%0) (%0?mysql_log(LOG_ALL):mysql_log())
#define ismysqlnull(%0) (strcmp(%0,"NULL",false)==0)
// ORM functions
native ORM:orm_create(const table[], connectionHandle = 1);
native orm_destroy(ORM:id);
native ORM_Error:orm_errno(ORM:id);
native orm_apply_cache(ORM:id, row);
native orm_select(ORM:id, const callback[] = "", const format[] = "", {Float, _}:...);
/*
native orm_select_inline(ORM:id, callback:Callback, format[], {Float,_}:...); //y_inline
*/
native orm_update(ORM:id);
native orm_insert(ORM:id, const callback[] = "", const format[] = "", {Float, _}:...);
/*
native orm_insert_inline(ORM:id, callback:Callback, format[], {Float,_}:...); //y_inline
*/
native orm_delete(ORM:id, bool:clearvars=true);
native orm_load(ORM:id, const callback[] = "", const format[] = "", {Float, _}:...) = orm_select;
native orm_save(ORM:id, const callback[] = "", const format[] = "", {Float, _}:...);
native orm_addvar_int(ORM:id, &var, varname[]);
native orm_addvar_float(ORM:id, &Float:var, varname[]);
native orm_addvar_string(ORM:id, var[], var_maxlen, varname[]);
native orm_delvar(ORM:id, const varname[]);
native orm_setkey(ORM:id, const varname[]);
// MySQL functions
native mysql_log(E_MYSQL_LOGLEVEL:loglevel = LOG_ERROR | LOG_WARNING, E_MYSQL_LOGTYPE:logtype = LOG_TYPE_TEXT);
native mysql_connect(const host[], const user[], const database[], const password[], port = 3306, bool:autoreconnect = true, pool_size = 2);
native mysql_close(connectionHandle = 1);
native mysql_reconnect(connectionHandle = 1);
native mysql_unprocessed_queries(connectionHandle = 1);
native mysql_current_handle();
native mysql_option(E_MYSQL_OPTION:type, value);
native mysql_errno(connectionHandle = 1);
native mysql_escape_string(const source[], const destination[], connectionHandle = 1, max_len = sizeof(destination));
native mysql_format(connectionHandle, const output[], len, const format[], {Float,_}:...);
native mysql_pquery(connectionHandle, const query[], const callback[] = "", const format[] = "", {Float,_}:...);
/*
native mysql_pquery_inline(connHandle, query[], callback:Callback, format[], {Float,_}:...); //y_inline
*/
native mysql_tquery(connectionHandle, const query[], const callback[] = "", const format[] = "", {Float,_}:...);
/*
native mysql_tquery_inline(connHandle, query[], callback:Callback, format[], {Float,_}:...); //y_inline
*/
native Cache:mysql_query(conhandle, const query[], bool:use_cache = true);
native mysql_stat(const destination[], connectionHandle = 1, max_len = sizeof(destination));
native mysql_get_charset(const destination[], connectionHandle = 1, max_len = sizeof(destination));
native mysql_set_charset(const charset[], connectionHandle = 1);
// Cache functions
native cache_get_data(&num_rows, &num_fields, connectionHandle = 1);
native cache_get_row_count(connectionHandle = 1);
native cache_get_field_count(connectionHandle = 1);
native cache_get_field_name(field_index, const destination[], connectionHandle = 1, max_len = sizeof(destination));
native cache_get_row(row, field_idx, const destination[], connectionHandle = 1, max_len = sizeof(destination));
native cache_get_row_int(row, field_idx, connectionHandle = 1);
native Float:cache_get_row_float(row, field_idx, connectionHandle = 1);
native cache_get_field_content(row, const field_name[], const destination[], connectionHandle = 1, max_len = sizeof(destination));
native cache_get_field_content_int(row, const field_name[], connectionHandle = 1);
native Float:cache_get_field_content_float(row, const field_name[], connectionHandle = 1);
native Cache:cache_save(connectionHandle = 1);
native cache_delete(Cache:cache_id, connectionHandle = 1);
native cache_set_active(Cache:cache_id, connectionHandle = 1);
native cache_is_valid(Cache:cache_id, connectionHandle = 1);
native cache_affected_rows(connectionHandle = 1);
native cache_insert_id(connectionHandle = 1);
native cache_warning_count(connectionHandle = 1);
native cache_get_query_exec_time(E_EXECTIME_UNIT:unit = UNIT_MICROSECONDS);
native cache_get_query_string(const destination[], max_len = sizeof(destination));
// Forward declarations
forward OnQueryError(errorid, error[], callback[], query[], connectionHandle);
#if defined MYSQL_USE_YINLINE || defined E_CALLBACK_DATA
#if !defined E_CALLBACK_DATA
#include <YSI\y_inline>
#endif
static g_MySQL_InlineData[1000][E_CALLBACK_DATA];
static g_MySQL_VarArray[32][YSI_MAX_STRING];
static g_MySQL_AddressArray[32];
stock MySQL_Internal_SaveInline(callback:CB)
{
static bool:g_MySQL_LazyInit = true;
if(g_MySQL_LazyInit == true)
{
//set g_MySQL_InlineData empty
for(new i=0; i < sizeof(g_MySQL_InlineData); ++i)
for(new E_CALLBACK_DATA:e = E_CALLBACK_DATA:0; e < E_CALLBACK_DATA; ++e)
g_MySQL_InlineData[i][e] = 0;
g_MySQL_LazyInit = false;
}
for(new i=0; i < sizeof(g_MySQL_InlineData); ++i)
if(_:g_MySQL_InlineData[i][E_CALLBACK_DATA_POINTER] == 0)
if (Callback_Get(CB, g_MySQL_InlineData[i]))
return i;
return -1;
}
#define mysql_pquery_inline(%0,%1,%2,"%3"%4) \
mysql_pquery(%0,%1,"FJ37DH3JG_MYSQL_INTERNAL","d"#%3,MySQL_Internal_SaveInline(%2)%4)
#define mysql_tquery_inline(%0,%1,%2,"%3"%4) \
mysql_tquery(%0,%1,"FJ37DH3JG_MYSQL_INTERNAL","d"#%3,MySQL_Internal_SaveInline(%2)%4)
#define orm_select_inline(%0,%1,"%2"%3) \
orm_select(%0,"FJ37DH3JG_MYSQL_INTERNAL","d"#%2,MySQL_Internal_SaveInline(%1)%3)
#define orm_insert_inline(%0,%1,"%2"%3) \
orm_insert(%0,"FJ37DH3JG_MYSQL_INTERNAL","d"#%2,MySQL_Internal_SaveInline(%1)%3)
forward FJ37DH3JG_MYSQL_INTERNAL(...);
public FJ37DH3JG_MYSQL_INTERNAL(...)
{
new InlineDataIndex = getarg(0);
if(InlineDataIndex < 0)
return 0;
for(new i=0; i < numargs()-1; ++i)
{
for(new l=0; l < YSI_MAX_STRING; ++l)
{
new TmpVal = getarg(i+1, l);
if(l == 0 || g_MySQL_VarArray[i][l-1] < 256)
g_MySQL_VarArray[i][l] = TmpVal;
else
break;
}
g_MySQL_AddressArray[i] = AMX_GetRelativeAddress(g_MySQL_VarArray[i][0]);
}
Callback_Array(g_MySQL_InlineData[InlineDataIndex], g_MySQL_AddressArray);
Callback_Release(g_MySQL_InlineData[InlineDataIndex]);
for(new E_CALLBACK_DATA:e = E_CALLBACK_DATA:0; e < E_CALLBACK_DATA; ++e)
g_MySQL_InlineData[InlineDataIndex][e] = 0;
for(new i=0; i < numargs()-1; ++i)
{
g_MySQL_AddressArray[i] = 0;
for(new l=0, lmax=strlen(g_MySQL_VarArray[i]); l < lmax; ++l)
g_MySQL_VarArray[i][l] = 0;
}
return 1;
}
#endif
Alles anzeigen
Kannst du uns deine a_mysql.inc zeigen? ![]()
steht auch kein fehler drin?
Und du bist sicher, dass du crashdetect geladen hast?
Wie sieht denn der log aus?
Okay danke hat geklappt hab jetzt nur noch 1 Warning
Jaaaa...uuund welchen?!
Script läuft nicht
Dann lade mal crashdetect...
warning 219: local variable "modelid" shadows a variable at a preceding level
Das kommt daher, da du wohl global einmal modelid deklariert hast.
Das war nicht sehr smart...also du hast 2 Möglichkeiten:
1. Du änderst die globale Variable (evtl auch in einem enum) zu etwas anderem wie z.B. e_modelid oder what ever...
Dann benennst du modelids zu modelid in dem Callback um.
2. Du änderst es wieder zurück zu modelids gehst in das Include und ändert das forward OnPlayerModelSelectionEx so um, dass da auch modelids drinnen steht ![]()
modelids
Das s muss weg ![]()
Nur beim login hab ich nicht wirklich ahnung wie ich das vorhandene passwort vergleichen soll
Mach es so:
forward OnAccountCheckPW(playerid, name[], text[]);
public OnAccountCheckPW(playerid, name[], text[]){
new rows, fields;
cache_get_data(rows, fields, mysql);
if(!rows) return Kick(playerid);
new PW[BCRYPT_HASH_LENGTH];
cache_get_field_content(0, "passwort", PW, mysql);
bcrypt_check(text, PW, "OnPasswordChecked", "d", playerid);
return 1;
}
forward OnPasswordChecked(playerid);
public OnPasswordChecked(playerid)
{
new bool:match = bcrypt_is_equal();
if(match) LoadAccount(playerid);
else {
if(GetPVarInt(playerid,"failpass")==2) {
SendClientMessage(playerid,ROT,"Du hast zu oft ein falsches Passwort angegeben.");
KickEx(playerid);
} else {
SetPVarInt(playerid,"failpass",GetPVarInt(playerid,"failpass")+1);
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","{FFD700}Falsches Passwort\n\nDu kannst dich nun mit deinen Passwort einloggen.","Login","Abbrechen");
}
}
return 1;
}
Alles anzeigen
Wird irgendwo nochmal OnGameModeInit aufgerufen?
Wird es gehookt...evtl mal in die Includes schauen...
Wird irgendwo SendRconCommand und dann eben gmx verwendet?
Das könnte das erklären...
Kennt sich hier jemand mit C intrisics aus?
Einfach die Frage stellen...wirst du dann sehen ![]()
Aber genau das passiert doch im minuten/stunden takt (je nachdem in welchen timer ich es einfüge) oder irre ich mich?
Ja, es wird jede Minute/Stunde abgefragt, ob es der 1. im Monat ist.
Da es ja aber nur 24 Stunden im Monat der 1. im Monat ist, und der delay dafür sorgt, dass das nicht 2x am Tag aufgerufen wird, passiert da nichts.
Halt eben nur am 1. und 1x im Monat.
meine frage steht noch, irgendjemand ne idee wie man das am besten umsetzen könnte? bräuchte hier nur den ansatz. danke im voeraus.
//Oben im Skript
new month_delay;
//Im Minuten Timer von mir aus...oder im Stunden Timer whatever
new Year, Month, Day;
getdate(Year, Month, Day);
if(Day == 1 && gettime() > month_delay)
{
//irgendwas
month_delay = gettime()+60*60*48;
}
Alles anzeigen
Dadurch ist sichergestellt, dass es nur 1x im Monat aufgerufen wird ![]()
Versuche gerade Mersenne Twister in PAWN zu implementieren, scheiter jedoch noch an dem Block hier.
Wieso auch immer man das wollen würde...die random Funktion tuts doch auch ganz gut xD
Naja, im Endeffekt kannst du diesen Block fast 1:1 übernehmen.
Das UL steht einfach nur für unsigned long (also positive 64 Bit Integer)
In Pawn gibt es nur 32 Bit Integer, aber sollte auch damit funktionieren.
Und diese ganzen anderen Operatoren (bis auf den ternary operator) sind einfach nur Bit-Shifting Operationen: https://forum.sa-mp.com/showthread.php?t=177523
Weiß zwar nicht was Distibution ist aber Debian 10
Jaaa...nice one, Debian ist doch die Distribution hahaha xD
Google ist ein mächtiges Werkzeug: https://www.linuxuprising.com/…test-firefox-non-esr.html
Wenn du mit VNC drauf bist, kannst dir doch auch einfach über einen anderen Browser firefox downloaden...musst das doch gar nicht über das Terminal machen...
Aber, jeder wie er mag ![]()
Ehhm, welche Linux Distribution nutzt du denn?