da sieht die Stadthalle anders aus
Wie sieht sie denn bei dir aus, mach doch mal ein Screen ingame...
Die Zeile, die 1:1 wie aus dem Video ist bringt natürlich herzlich wenig hahahaha ![]()
da sieht die Stadthalle anders aus
Wie sieht sie denn bei dir aus, mach doch mal ein Screen ingame...
Die Zeile, die 1:1 wie aus dem Video ist bringt natürlich herzlich wenig hahahaha ![]()
Setzt du denn, wenn der Spieler sich eingeloggt hat das account_Eingeloggt auch auf true?
oder soll das auf false bleiben?
Kannst ja mal das Makro so schreiben:
#define IsNotConnected(%0) (!IsPlayerConnected(%0) || AccountInfo[%0][account_Eingeloggt])
Woran kann das liegen?
Du bringst id und pID durcheinander.
Du solltest wirklich mehr Ordnung in deinen Code bringen, dann hast du es generell auch viel einfacher...
//Oben im Skript
#define IsNotConnected(%0) (!IsPlayerConnected(%0) || !AccountInfo[%0][account_Eingeloggt])
#define SCME(%0,%1,%2,%3) format(string,sizeof(string),%2,%3),SendClientMessage(%0,%1,string)
#define GetName(%0) global_names[%0]
new global_names[MAX_PLAYERS][MAX_PLAYER_NAME];
//Unter OnPlayerConnect
GetPlayerName(playerid, GetName(playerid), MAX_PLAYER_NAME);
//Der Befehl
ocmd:pm(playerid, params[])
{
new string[256], msg[145], pID;
if(sscanf(params, "us[145]", pID, msg)) return SendFehler(playerid,"/pm [Name/ID] [Nachricht]"),1;
if(IsNotConnected(pID)) return SendFehler(playerid,"Der angegebene Spieler ist nicht online");
if(playerid == pID) return SendFehler(playerid,"Du kannst dir nicht selber eine PM senden");
SCME(playerid, ORANGE, "(( PM an %s[%d]: %s ))", GetName(pID), pID, msg);
SCME(pID, ORANGE, "(( PM von %s[%d]: %s ))", GetName(playerid), playerid, msg);
return 1;
}
Alles anzeigen
Dann sieht man auch, was Sache ist...
Wie kann ich den Serverspawn ändern SetPlayerPos geht nicht?
Was meinst du denn mit Serverspawn?
Wo sich der Spieler befindet, nachdem er gespawnt wurde?
Oder die Position wo er den Skin wechselt?
Zeig uns evtl mal dein OnPlayerSpawn und was du versucht hast zu ändern ![]()
Kann man das so machen für farbe ist für ein Login Dialog.
Nein, dafür musst du sowas nutzen: https://wiki.sa-mp.com/wiki/Colors_List#Color_embedding
Ergo:
"{FF1400}Sobald du auf Registrieren klickst, wird deine IP temporär gesichert! ","Registrieren","Abbrechen");
Ja habe es gerade ausprobiert, bringt leider nichts. IsNull prüft ja auch lediglich ob params vorhanden sind, hat ja eigentl. an sich nichts mit der string-formatierung zu tun
Doch, da bei dir vorher sscanf das nochmal konvertiert, und du so direkt die Params nutzt.
Schreib mal aus Spaß ein print(params); wird das denn richtig ausgegeben, was du eingibst?
Wenn wir die Datenbank vom Script ändern Laden die Objekte von den Arenen
nicht wieso?
Mal Crashdetect geladen?
Ja danke, aber das hat leider nichts mit meinem Problem, das Kommas nur z.T. ausgegeben werden, zu tun
Bist du sicher?
Hast du den Code 1:1 so getestet und da geht es auch nicht?
Du solltest sscanf nicht bei einem einfachen String nutzen.
Da kannst du einfach direkt params verwenden ![]()
Also einfach:
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 ![]()