Beiträge von Kobiro
-
-
Ich meine mich zu entsinnen, dass wir damals immer nur Probleme mit SendInput hatten und man auf Send oder SendEvent umsteigen musste.
Meine Erfahrung damit liegen aber auch ein paar Tage zurück - wenn dies keine Lösung bringt, kannst du ja mit einer AddChatMessage mal schauen, ob der Timer getriggert wird.Hey! Ja so klappt es jetzt. Perfekt! Aber zweites Problem. Der spammt das jetzt alle 100ms. kann man da einen Cooldown einbauen, dass er sobald ich die Coodinate betrete es sofort triggert. und danach erstmal 5 Sekunden den Timer ausmacht und nach 5 Sekunden erneut triggert?
Code
Alles anzeigenAutoDuty: if (IsPlayerInRangeOfPoint(239.7061, 1858.9551, 14.0840, 2.0)) { SendEvent, {n down} Sleep, 50 SendEvent, {n up} return } if (IsPlayerInRangeOfPoint(248.5680, 1860.6121, 14.0840, 2.0)) { SendEvent, {n down} Sleep, 50 SendEvent, {n up} return } returnHabe das mit dem Cooldown mal so versucht. Aber diesmal muss ich dann 5 Sekunden in der Koordinate warten, bis er triggert.
Code
Alles anzeigenAutoDuty: if (IsPlayerInRangeOfPoint(239.7061, 1858.9551, 14.0840, 2.0)) { SetTimer, AutoDuty, Off SendEvent, {n down} Sleep, 50 SendEvent, {n up} Sleep, 5000 SetTimer, AutoDuty, 100 return } if (IsPlayerInRangeOfPoint(248.5680, 1860.6121, 14.0840, 2.0)) { SetTimer, AutoDuty, Off SendEvent, {n down} Sleep, 50 SendEvent, {n up} Sleep, 5000 SetTimer, AutoDuty, 100 return } return -
Hallo,
ich bin gerade dabei einen Funktion zu bauen, die es mir erlaubt automatisch in den Dienst zu gehen und mich zu equipen.
Leider funktioniert diese Version nicht automatisch.
Ich benutze die SAMP UDF R18 von Chuck_Floyd für folgende Version: SAMP Version: 0.3.7, 0.3.7-R2, 0.3.DL.
Das ganze soll für OpenMP sein.
Mein Code:
Code
Alles anzeigenAutoDuty: if (IsPlayerInRangeOfPoint(239.7061, 1858.9551, 14.0840, 2.0)) ; Duty { SendInput, n Sleep, 500 return } if (IsPlayerInRangeOfPoint(248.5680, 1860.6121, 14.0840, 2.0)) ; Equip { SendInput, n Sleep, 500 return } returnMein Timer:
Code
Alles anzeigen#SingleInstance Force #Persistent #NoEnv #Include, includes/SAMP.ahk SetBatchLines -1 SetKeyDelay -1 SetTimer, AutoDuty, 500 if (!A_IsAdmin) { Run *RunAs "%A_ScriptFullPath%" ExitApp } WinGetTitle, gta_title, ahk_exe gta_sa.exe WinGet, gta_process, ProcessName, ahk_exe gta_sa.exe WinGet, gta_path, ProcessPath, ahk_exe gta_sa.exe gta_folder := StrReplace(gta_path, gta_process) IniFile := "ArmyBinder.ini" IniRead, HK_SU, %IniFile%, Hotkeys, SU, IniRead, HK_Bounce, %IniFile%, Hotkeys, Bounce, IniRead, HK_Clear, %IniFile%, Hotkeys, Clear, ....es funktioniert aber nicht.
Ich dachte erstmal die UDF wird von OpenMP nicht erkannt. Um das zu testen, habe ich geschaut ob die Coordinaten überhaupt erkannt werden. Diese habe ich so getestet:
Code
Alles anzeigenF9:: GetPlayerPos(x, y, z) AddChatMessage("X: " . x . " | Y: " . y . " | Z: " . z) return F8:: if (IsPlayerInRangeOfPoint(248.5680, 1860.6121, 14.0840, 2.0)) AddChatMessage("JA") else AddChatMessage("NEIN") returnResultat:
Danach habe ich getestet ob Sendinput, n überhaupt erkannt wird.
Es auf die Taste F10 gepackt und immer wenn ich F10 gedrückt habe, wurde die Taste N auch getriggert. Also klappt auch
Ich brauche bitte eure Hilfe
-
In der Funktion OnAccountCheckPW da gibt es folgende Zeile:
Schreib mal direkt darüber folgendes:
Und dann schau mal im serverlog und in der DB, was da so unter Passwort steht.
Alles gut hat geklappt.
musste bei PhpMyAdmin unter SQL einfügen:
ALTER TABLE accounts
ALTER name SET DEFAULT '',
ALTER passwort SET DEFAULT '';
anscheinend hat dieses kein(e) dahinter zu diesem Problem geführt.
-
Perfekt, hat geklappt bin jetzt auf dem Server!
Kann ich die aber weiterhin auf kein(e) lassen? Weil alle anderen sind jetzt auf NULL
_____________________________
Neues Problem:
Registrierung klappt. Account wird auch jetzt in der Datenbank gespeichert.
Nur wenn ich mich wieder neu einloggen will, sagt der mir, dass mein Passwort falsch ist.

-
1. Wird dir denn der Dialog "Herzlich Willkommen auf Calikartell-Deathmatch...." angezeigt?
2. Bekommst du, wenn du das Skript kompilierst eine Info wo irgendwas von Stack/Heap Size steht und Total requirements?
3. Check mal die Ordner, ob es einen Log Ordner gibt mit einem mysql log? Ansonsten unter OnGameModeInit, mal mysql_log(LOG_ALL); schreiben und dann nochmal probieren und prüfen.

1. Ja
2. Nein
3. MySQL Log: gist:9ea8b587d4ceabd67356c19adf8004d6
Edit:
MySQL Log hinzugefügt
-
Hätte ja sein können, dass ein Account bereits in der Datenbank existiert, den du manuell angelegt oder noch von einem früheren Server hattest.
Du hast dich oben etwas missverständlich ausgedrückt.
Aber na gut, dann brauchen wir natürlich die: OnPlayerCreateAccount Funkion

Das tut mir leid.
Code: OnPlayerCreateAccount
Alles anzeigenforward OnPlayerCreateAccount(playerid); public OnPlayerCreateAccount(playerid){ SetPVarInt(playerid,"accountid", cache_insert_id(mysql)); ClearChatForPlayer(playerid,20); new str[700],str_[370],str__[330]; format(str_,sizeof(str_),"{FF8C00}Herzlich Willkommen auf Calikartell-Deathmatch!\n\n{B9B9BF}Calikartell-Deathmatch ist ein DM Server, wie der Name ja schon sagt.\nNatürlich bieten wir neben den DM Arenen auch andere Arten von Arenen, wie Stunt Arenen.\n\nWie auf jedem anderen Server auch, gibt es hier Regeln.\nDu solltest wissen: Unwissenheit schützt vor Strafe nicht!\n\nAlle Regeln kannst du im Forum sehen.\n\n"); format(str__,sizeof(str__),"\nAlle Plattformen von Calikartell-Deathmatch:\nSA-MP\t\t{FF8C00}kommtnoch\n{B9B9BF}Teamspeak3\t{FF8C00}kommtnoch\n{B9B9BF}Control Panel\t{FF8C00}kommtnoch\n\n{B9B9BF}Fragen kannst du per /sup stellen, Cheater oder Buguser per /a melden.\nDas Team von Calikartell-Deathmatch wünscht dir viel Spaß!"); format(str,sizeof(str),"%s%s",str_,str__); ShowPlayerDialogEx(playerid,DIALOG_REGISTER_INFO,DIALOG_STYLE_MSGBOX,"Willkommen!",str,"Ok",""); SendClientMessage(playerid,HELLGRUEN,"* Mit /skinauswahl kannst du deinen Skin ändern."); new pName[MAX_PLAYER_NAME+1]; GetPlayerName(playerid,pName,sizeof(pName)); new rand = random(sizeof(skinList)); mysql_format(mysql, str,sizeof(str),"UPDATE accounts SET regip = '%e', loginip = '%e', oldName = '', skin = %i, money = 10000, achievementkills = 10, achievementtime = 1, clan = -1, connected = 1, loggedin = 1, lastlogin = %i, register = %i WHERE name = '%e'",ipinfo[playerid][ip__],ipinfo[playerid][ip__],skinList[rand][0],gettime(),gettime(),pName); mysql_tquery(mysql, str); format(str__, sizeof(str__), "[user]%i[/user] hat sich registriert. (IP: %s)", GetPVarInt(playerid, "accountid"), ipinfo[playerid][ip__]); Log(str__, 6); LoadAccount(playerid); format(str, sizeof(str), "%s hat sich Erfolgreich auf Calikartell-Deathmatch Registriert.",SpielerName(playerid)); ServerStats[sAccounts] ++; return 1; } -
Und hast du dich auch eingeloggt oder wolltest du dich registrieren?
Ich wollte mich registrieren, weil Login kann ich ja nicht, da noch kein Account existiert
-
Hattest du das Skript auch neu kompiliert, als du die Log Funktion angepasst hattest?

Ja hab ich

-
Alles anzeigen
Und wie sieht die OnPlayerLoadAccount

Und schreib die Log-Funktion mal so:
C
Alles anzeigenstock Log(const string[], ...) { new log_categories[32], entry[512], query[1024]; mysql_escape_string(string, entry); for (new i = 1; i < numargs(); i++) { format(log_categories, sizeof(log_categories), "%s|%d", log_categories, @arg[i]); } print(string); format(query, sizeof(query), "INSERT INTO logs (entry, timestamp) VALUES ('%s', %d);", entry, gettime()); mysql_tquery(mysql, query, "OnLogEntrySaved", "s", log_categories); }und dann logge dich nochmal ein und poste den server.log
Code: Serverlog (NEU)
Alles anzeigen[19:51:16] [debug] Server received interrupt signal [19:51:16] [debug] Native backtrace: [19:51:16] [debug] #0 f791be8b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so [19:51:16] [debug] #1 f7914bcf in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so [19:51:16] [debug] #2 f7915dbc in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so [19:51:16] [debug] #3 f7916176 in _ZN11CrashDetect11OnInterruptEPv () from plugins/crashdetect.so [19:51:16] [debug] #4 f791ba7c in ?? () from plugins/crashdetect.so [19:51:16] [debug] #5 f7f515b0 in __kernel_rt_sigreturn () from linux-gate.so.1 [19:51:16] [debug] #6 f79da29b in ?? () from /lib/i386-linux-gnu/libc.so.6 [19:51:16] [debug] #7 f79cd949 in ?? () from /lib/i386-linux-gnu/libc.so.6 [19:51:16] [debug] #8 f7a2586f in __clock_nanosleep_time64 () from /lib/i386-linux-gnu/libc.so.6 [19:51:16] [debug] #9 f7a379ea in nanosleep () from /lib/i386-linux-gnu/libc.so.6 [19:51:16] [debug] #10 f7a671ee in usleep () from /lib/i386-linux-gnu/libc.so.6 [19:51:16] [debug] #11 080aa172 in ?? () from ./samp03svr [19:51:16] [debug] #12 f7965cc3 in ?? () from /lib/i386-linux-gnu/libc.so.6 [19:51:16] [debug] #13 f7965d88 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6 [19:51:16] [debug] #14 0804b4e1 in ?? () from ./samp03svr [19:51:16] --- Server Shutting Down. [19:51:16] plugin.mysql: Unloading plugin... [19:51:16] plugin.mysql: Plugin unloaded. [19:51:16] [19:51:16] =============================== [19:51:16] sscanf plugin unloaded. [19:51:16] =============================== [19:51:16] *** Streamer Plugin v2.9.4 by Incognito unloaded *** [19:51:16] [19:51:16] ==================== [19:51:16] [19:51:16] Whirlpool unloaded [19:51:16] [19:51:16] ==================== [19:51:16] [19:51:16] SA-MP Clientside AntiCheat v0.10.0 is being unloaded ... ---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [19:51:25] [19:51:25] Server Plugins [19:51:25] -------------- [19:51:25] Loading plugin: crashdetect.so [19:51:25] CrashDetect v4.15.1 is OK. [19:51:25] Loaded. [19:51:25] Loading plugin: mysql.so [19:51:25] >> plugin.mysql: R39-5 successfully loaded. [19:51:25] Loaded. [19:51:25] Loading plugin: sscanf.so [19:51:25] [19:51:25] =============================== [19:51:25] sscanf plugin loaded. [19:51:25] Version: 2.8.2 [19:51:25] (c) 2012 Alex "Y_Less" Cole [19:51:25] =============================== [19:51:25] Loaded. [19:51:25] Loading plugin: streamer.so [19:51:25] *** Streamer Plugin v2.9.4 by Incognito loaded *** [19:51:25] Loaded. [19:51:25] Loading plugin: Whirlpool.so [19:51:25] [19:51:25] ================== [19:51:25] [19:51:25] Whirlpool loaded [19:51:25] [19:51:25] ================== [19:51:25] [19:51:25] Loaded. [19:51:25] Loading plugin: sampcac_server.so [19:51:25] SA-MP Clientside AntiCheat v0.10.0 is being loaded ... [19:51:25] Loaded. [19:51:25] Loaded 6 plugins. [19:51:25] [19:51:25] Filterscripts [19:51:25] --------------- [19:51:25] Loading filterscript 'antirire.amx'... [19:51:25] Unable to load filterscript 'antirire.amx'. [19:51:25] Loading filterscript 'rconCP.amx'... [19:51:25] Loaded 1 filterscripts. [19:51:25] SAMPCAC include file version (v0.00.0) does not match plugin version (v0.10.0) (script might need to be recompiled with the correct include file). [19:51:25] [19:51:25] [19:51:25] [19:51:25] ======================================= [19:51:25] | | [19:51:25] | YSI version 4.00.0001 | [19:51:25] | By Alex "Y_Less" Cole | [19:51:25] | | [19:51:25] ======================================= [19:51:25] [19:51:25] KONNTE SICH MIT DER DATENBANK VERBINDEN! [19:51:25] ---------------------------------- [19:51:25] Calikartell-Deathmatch - Script [19:51:25] ---------------------------------- [19:51:25] Number of vehicle models: 15 [19:51:25] [MYSQL] Gates wurden Erfolgreich geladen.(1) [19:51:25] [MYSQL] OBJECTE wurden Erfolgreich geladen.(2) [19:51:25] [MYSQL] PICKUPS wurden Erfolgreich geladen.(0) [19:51:25] [MYSQL] LABELS wurden Erfolgreich geladen.(0) [19:51:36] [connection] MEINEIP requests connection cookie. [19:51:37] [connection] incoming connection: MEINEIP id: 0 [19:51:37] [join] Kobiro has joined the server (0:MEINEIP) [19:51:44] [part] Kobiro has left the server (0:1)Code: OnPlayerLoadAccount
Alles anzeigenforward OnPlayerLoadAccount(playerid, name[]); public OnPlayerLoadAccount(playerid, name[]){ new rows, fields/*, TSUID[100]*/, oldName[MAX_PLAYER_NAME+1], undercoverOwner[MAX_PLAYER_NAME+1]; cache_get_data(rows, fields, mysql); if(rows){ SetPVarInt(playerid,"adminlevel",cache_get_field_content_int(0, "adminlevel", mysql)); SetPlayerScore(playerid, cache_get_field_content_int(0, "score", mysql)); SetPVarInt(playerid,"kills", cache_get_field_content_int(0, "kills", mysql)); SetPVarInt(playerid,"deaths", cache_get_field_content_int(0, "deaths", mysql)); SetPVarInt(playerid,"money", cache_get_field_content_int(0, "money", mysql)); SetPVarInt(playerid,"donator", cache_get_field_content_int(0, "donator", mysql)); SetPVarInt(playerid,"premium", cache_get_field_content_int(0, "premium", mysql)); SetPVarInt(playerid,"mute", cache_get_field_content_int(0, "mute", mysql)); SetPVarInt(playerid,"verwarnung", cache_get_field_content_int(0, "verwarnung", mysql)); SetPVarInt(playerid,"undercover", cache_get_field_content_int(0, "undercover", mysql)); SetPVarInt(playerid,"supban", cache_get_field_content_int(0, "supban", mysql)); SetPVarInt(playerid,"premiumtime", cache_get_field_content_int(0, "premiumtime", mysql)); SetPVarInt(playerid,"skin", cache_get_field_content_int(0, "skin", mysql)); SetPVarInt(playerid,"ep", cache_get_field_content_int(0, "ep", mysql)); SetPVarInt(playerid,"achievementkills", cache_get_field_content_int(0, "achievementkills", mysql)); SetPVarInt(playerid,"achievementtime", cache_get_field_content_int(0, "achievementtime", mysql)); SetPVarInt(playerid,"spielminuten", cache_get_field_content_int(0, "spielminuten", mysql)); SetPVarInt(playerid,"spielstunden", cache_get_field_content_int(0, "spielstunden", mysql)); SetPVarInt(playerid,"kampfstyle", cache_get_field_content_int(0, "kampfstyle", mysql)); cache_get_field_content(0, "oldName", oldName, mysql); cache_get_field_content(0, "undercoverOwner", undercoverOwner, mysql); SetPVarString(playerid,"undercoverOwner", undercoverOwner); SetPVarString(playerid,"oldname", oldName); SetPVarInt(playerid,"voted1hit", cache_get_field_content_int(0, "voted1hit", mysql)); SetPVarInt(playerid,"drugs", cache_get_field_content_int(0, "drugs", mysql)); SetPVarInt(playerid,"clan", cache_get_field_content_int(0, "clan", mysql)); SetPVarInt(playerid,"rank", cache_get_field_content_int(0, "rank", mysql)); SetPVarInt(playerid,"spawn", cache_get_field_content_int(0, "spawn", mysql)); SetPVarInt(playerid,"registertime", cache_get_field_content_int(0, "register", mysql)); SetPVarInt(playerid,"getComplaint", cache_get_field_content_int(0, "getComplaint", mysql)); SetPVarInt(playerid,"getCoupon", cache_get_field_content_int(0, "getCoupon", mysql)); SetPVarInt(playerid,"dailyKills", cache_get_field_content_int(0, "dailyKills", mysql)); SetPVarInt(playerid,"ac_pflicht", cache_get_field_content_int(0, "ac_pflicht", mysql)); /*SetPVarInt(playerid,"TSREG", cache_get_field_content_int(0, "TSREG", mysql)); cache_get_field_content(0, "TSUID", TSUID, mysql); SetPVarString(playerid,"TSUID", TSUID);*/ SetPVarInt(playerid,"FORUMREG", cache_get_field_content_int(0, "FORUMREG", mysql)); SetPlayerWantedLevel(playerid,GetPVarInt(playerid,"ep")); ResetPlayerMoney(playerid); GivePlayerMoney(playerid,GetPVarInt(playerid,"money")); // new text[128]; SetPVarInt(playerid,"loggedin",1); if(IsPlayerAnAdmin(playerid,3)){ SetPVarInt(playerid,"eventkit",1); } new str[128]; switch(GetPVarInt(playerid,"adminlevel")){ case 1: { format(str,sizeof(str),"Du bist %s.",RANK1); SendClientMessage(playerid,ROT,str); } case 2: { format(str,sizeof(str),"Du bist %s.",RANK2); SendClientMessage(playerid,ROT,str); } case 3: { format(str,sizeof(str),"Du bist %s.",RANK3); SendClientMessage(playerid,ROT,str); } case 4: { format(str,sizeof(str),"Du bist %s.",RANK4); SendClientMessage(playerid,ROT,str); } case 5: { format(str,sizeof(str),"Du bist %s.",RANK5); SendClientMessage(playerid,ROT,str); } } if(GetPVarInt(playerid,"clan") != -1){ new lname[32]; format(lname,sizeof(lname),"%s",GetClanNameById(GetPVarInt(playerid,"clan"))); clanlabel[playerid][islabel]=1; strins(clanlabel[playerid][labelname],lname,0); new rank[18]; if(IsPlayerLeader(playerid)){ rank="Leader"; }else if(GetPVarInt(playerid,"rank") == 9){ rank="CO-Leader"; }else{ rank="Member"; } new msgstr[128]; format(msgstr,sizeof(msgstr),"Du bist %s von %s.",rank,lname); SendClientMessage(playerid,ROT,msgstr); clanlabel[playerid][label]=Create3DTextLabel(lname,GELB,0.0,0.0,0.0,30,-1,1); } new query[128]; if(GetPVarInt(playerid, "getComplaint") == 1){ SendClientMessage(playerid, HELLROT, "Es gibt etwas neues zu deinen Beschwerden! Bitte überprüfe es im Control Panel!"); SetPVarInt(playerid, "getComplaint", 0); mysql_format(mysql, query, sizeof(query), "UPDATE accounts SET getComplaint = 0 WHERE name = '%e'", name); mysql_tquery(mysql, query); } if(GetPVarInt(playerid, "getCoupon") == 1){ SendClientMessage(playerid, HELLROT, "Du hast einen Gutschein erhalten. Den Code findest du im Control Panel!"); SetPVarInt(playerid, "getCoupon", 0); mysql_format(mysql, query, sizeof(query), "UPDATE accounts SET getCoupon = 0 WHERE name = '%e'", name); mysql_tquery(mysql, query); } SetTimerEx("SpawnPlayerNachLogin", 50, false, "i", playerid); if(doublescore == 1){ ClearChatForPlayer(playerid,1); SendClientMessage(playerid,GELB,"EVENT: Zur Zeit bekommst du für sechs Erfahrungspunkte zwei Score."); ClearChatForPlayer(playerid,1); } if(IsPlayerAnAdmin(playerid,1)){ new ticketstr[500]; for(new i=0;i<MAX_TICKETS;i++){ if(TicketData[i][adminid]>-1){ format(ticketstr,sizeof(ticketstr),"%s%i: %s(%s)~n~",ticketstr,i,SpielerName(TicketData[i][playerid__]),SpielerName(TicketData[i][adminid])); }else{ format(ticketstr,sizeof(ticketstr),"%s%i: %s~n~",ticketstr,i,SpielerName(TicketData[i][playerid__])); } } PlayerTextDrawSetString(playerid,TicketTextdraw[playerid],ticketstr); PlayerTextDrawShow(playerid,TicketTextdraw[playerid]); } PlayerTextDrawShow(playerid,Clock[playerid]); PlayerTextDrawShow(playerid, dailyKillsTxd0[playerid]); PlayerTextDrawShow(playerid, dailyKillsTxd1[playerid]); PlayerTextDrawShow(playerid, dailyKillsTxd2[playerid]); updateDailyKills(playerid); switch(GetPVarInt(playerid,"kampfstyle")){ case 0:{ SetPlayerFightingStyle(playerid,FIGHT_STYLE_GRABKICK); } case 1:{ SetPlayerFightingStyle(playerid,FIGHT_STYLE_BOXING); } case 2:{ SetPlayerFightingStyle(playerid,FIGHT_STYLE_KUNGFU); } case 3:{ SetPlayerFightingStyle(playerid,FIGHT_STYLE_KNEEHEAD); } case 4:{ SetPlayerFightingStyle(playerid,FIGHT_STYLE_ELBOW); } } SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,999); }else{ Kick(playerid); } return 1; } -
Code: Loadaccount
stock LoadAccount(playerid){ SetPlayerVirtualWorld(playerid,0); new name[MAX_PLAYER_NAME+1]; GetPlayerName(playerid,name,sizeof(name)); new query[512]; mysql_format(mysql, query,sizeof(query),"SELECT * FROM accounts WHERE name = '%e'",name); mysql_tquery(mysql, query, "OnPlayerLoadAccount", "is", playerid, name); return 1; }Code: Log Funktion
Alles anzeigenstock Log(const string[], ...) { new log_categories[32], entry[512], query[1024]; mysql_escape_string(string, entry); for (new i = 1; i < numargs(); i++) { format(log_categories, sizeof(log_categories), "%s|%d", log_categories, @arg[i]); } format(query, sizeof(query), "INSERT INTO logs (entry, timestamp) VALUES ('%s', %d);", entry, gettime()); mysql_tquery(mysql, query, "OnLogEntrySaved", "s", log_categories); } forward OnLogEntrySaved(log_categories[]); public OnLogEntrySaved(log_categories[]) { new Cache:cacheid = cache_save(), tmp[5], query[256]; if (strlen(log_categories)) { cache_set_active(cacheid); new logid = cache_insert_id(); for (new i = 0; i < strlen(log_categories); i++) { if (log_categories[i] == '|') { if (strlen(tmp)) { mysql_format(mysql, query, sizeof(query), "INSERT INTO log_to_categories (logID, categoryID) VALUES (%i, %i)", logid, strval(tmp)); mysql_tquery(mysql, query); format(tmp, sizeof(tmp), ""); } } else { format(tmp, sizeof(tmp), "%s%c", tmp, log_categories[i]); } if (i == strlen(log_categories)-1) { mysql_format(mysql, query, sizeof(query), "INSERT INTO log_to_categories (logID, categoryID) VALUES (%i, %i)", logid, strval(tmp)); mysql_tquery(mysql, query); } } } cache_delete(cacheid); } -
Okay, und wie sieht OnAccountCheckPW aus?
Code
Alles anzeigenforward OnAccountCheckPW(playerid, name[], text[]); public OnAccountCheckPW(playerid, name[], text[]){ new rows, fields; cache_get_data(rows, fields, mysql); if(rows){ new PW[130]; cache_get_field_content(0, "passwort", PW, mysql); if(!strcmp(PW,hashPass(text),false)){ ClearChatForPlayer(playerid,20); SetPVarInt(playerid,"loggedin",1); new Query[256]; mysql_format(mysql, Query, sizeof(Query), "UPDATE accounts SET loggedin = 1, loginip = '%s', lastlogin = %i WHERE name = '%e'",ipinfo[playerid][ip__], gettime(), name); mysql_tquery(mysql, Query); format(Query, sizeof(Query), "[user]%i[/user] hat sich eingeloggt. (IP: %s)", GetPVarInt(playerid, "accountid"), ipinfo[playerid][ip__]); Log(Query, 6); 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); ShowPlayerDialogEx(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Calikartell-Deathmatch - Login","{FFD700}Falsches Passwort\n\n{B9B9BF}Herzlich Willkommen auf Calikartell-Deathmatch\n\nDein Account wurde in unsere Datenbank gefunden.\nDu kannst dich nun mit deinen Passwort einloggen.","Login","Abbrechen"); new str[128]; format(str, sizeof(str), "IP %s hat sich versucht in den Account [user]%i[/user] einzuloggen.",ipinfo[playerid][ip__], GetPVarInt(playerid, "accountid")); Log(str, 30); } } }else{ Kick(playerid); } return 1; } /* mysql_tquery(mysql, query, "OnAccountCheckPW", "is", playerid, name); if(!strcmp(mysql_ReturnPasswort(name),hashPass(inputtext),false)){ ClearChatForPlayer(playerid,20); SetPVarInt(playerid,"loggedin",1); new Query[256]; mysql_format(mysql, Query, sizeof(Query), "UPDATE accounts SET loggedin = 1, loginip = '%s', lastlogin = %i WHERE name = '%e'",ipinfo[playerid][ip__], gettime(), name); mysql_tquery(mysql, Query); format(Query, sizeof(Query), "[user]%i[/user] hat sich eingeloggt. (IP: %s)", GetPVarInt(playerid, "accountid"), ipinfo[playerid][ip__]); Log(Query, 6); 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); ShowPlayerDialogEx(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Calikartell-Deathmatch - Login","{FFD700}Falsches Passwort\n\n{B9B9BF}Herzlich Willkommen auf Calikartell-Deathmatch\n\nDein Account wurde in unsere Datenbank gefunden.\nDu kannst dich nun mit deinen Passwort einloggen.","Login","Abbrechen"); new str[128]; format(str, sizeof(str), "IP %s hat sich versucht in den Account [user]%i[/user] einzuloggen.",ipinfo[playerid][ip__], GetPVarInt(playerid, "accountid")); Log(str, 30); } } */ -
Zeig gerne mal den Code von DIALOG_LOGIN unter OnDialogResponse.
Dann wissen wir, was passiert, wenn du das Passwort beim Login eingegeben hast.
PS: Gerne mal crashdetect laden und damit mal auf den Serverjoinen und dann die server.log nochmal anschauen/hier posten.
Code: Register & Login Dialog unter OnDialogResponse
Alles anzeigenif(dialogid==DIALOG_REGISTER){ if(response==1){ if(strlen(inputtext) < 4){ ShowPlayerDialogEx(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Calikartell-Deathmatch - Registrieren","{FFD700}Passwort war nicht lang genug\n\n{B9B9BF}Herzlich Willkommen auf Calikartell-Deathmatch\n\nDein Account wurde nicht in unsere Datenbank gefunden.\nDu kannst dir nun einen Account mit einen Passwort anlegen.","Registrieren","Abbrechen"); }else{ new query[256]; mysql_format(mysql, query, sizeof(query), "INSERT INTO `accounts` (`name`, `passwort`) VALUES ('%e', '%e')", SpielerName(playerid), hashPass(inputtext)); mysql_tquery(mysql, query, "OnPlayerCreateAccount", "i", playerid); return 1; } }else{ SendClientMessage(playerid,WEISS,""#HTML_GREEN"INFO | "#HTML_WHITE"Vorgang Abgebrochen"); KickEx(playerid); } }else if(dialogid==DIALOG_LOGIN){ if(response==1){ if(!strlen(inputtext)){ 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); ShowPlayerDialogEx(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Calikartell-Deathmatch - Login","{FFD700}Falsches Passwort\n\n{B9B9BF}Herzlich Willkommen auf Calikartell-Deathmatch\n\nDein Account wurde in unsere Datenbank gefunden.\nDu kannst dich nun mit deinen Passwort einloggen.","Login","Abbrechen"); new str[128]; format(str, sizeof(str), "IP %s hat sich versucht in den Account [user]%i[/user] einzuloggen.",ipinfo[playerid][ip__], GetPVarInt(playerid, "accountid")); Log(str, 30); } }else{ new name[MAX_PLAYER_NAME+1]; GetPlayerName(playerid, name, sizeof(name)); new query[128]; mysql_format(mysql, query, sizeof(query), "SELECT passwort FROM accounts WHERE name = '%e'", name); mysql_tquery(mysql, query, "OnAccountCheckPW", "iss", playerid, name, inputtext); } }else{ SendClientMessage(playerid,ROT,"* Vorgang abgebrochen."); KickEx(playerid); }Code: server.log
Alles anzeigen---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [17:06:55] [17:06:55] Server Plugins [17:06:55] -------------- [17:06:55] Loading plugin: crashdetect.so [17:06:55] CrashDetect v4.15.1 is OK. [17:06:55] Loaded. [17:06:55] Loading plugin: mysql.so [17:06:55] >> plugin.mysql: R39-5 successfully loaded. [17:06:55] Loaded. [17:06:55] Loading plugin: sscanf.so [17:06:55] [17:06:55] =============================== [17:06:55] sscanf plugin loaded. [17:06:55] Version: 2.8.2 [17:06:55] (c) 2012 Alex "Y_Less" Cole [17:06:55] =============================== [17:06:55] Loaded. [17:06:55] Loading plugin: streamer.so [17:06:55] *** Streamer Plugin v2.9.6 by Incognito loaded *** [17:06:55] Loaded. [17:06:55] Loading plugin: Whirlpool.so [17:06:55] [17:06:55] ================== [17:06:55] [17:06:55] Whirlpool loaded [17:06:55] [17:06:55] ================== [17:06:55] [17:06:55] Loaded. [17:06:55] Loading plugin: sampcac_server.so [17:06:55] SA-MP Clientside AntiCheat v0.10.0 is being loaded ... [17:06:55] Loaded. [17:06:55] Loaded 6 plugins. [17:06:55] [17:06:55] Filterscripts [17:06:55] --------------- [17:06:55] Loading filterscript 'antirire.amx'... [17:06:55] Unable to load filterscript 'antirire.amx'. [17:06:55] Loading filterscript 'announce.amx'... [17:06:55] [SACNR Monitor] Announcing server... [17:06:55] Loading filterscript 'rconCP.amx'... [17:06:55] Loaded 2 filterscripts. [17:06:55] SAMPCAC include file version (v0.00.0) does not match plugin version (v0.10.0) (script might need to be recompiled with the correct include file). [17:06:55] [17:06:55] [17:06:55] [17:06:55] ======================================= [17:06:55] | | [17:06:55] | YSI version 4.00.0001 | [17:06:55] | By Alex "Y_Less" Cole | [17:06:55] | | [17:06:55] ======================================= [17:06:55] [17:06:55] KONNTE SICH MIT DER DATENBANK VERBINDEN! [17:06:55] ---------------------------------- [17:06:55] Calikartell-Deathmatch - Script [17:06:55] ---------------------------------- [17:06:55] Number of vehicle models: 15 [17:06:55] [MYSQL] Gates wurden Erfolgreich geladen.(1) [17:06:55] [MYSQL] OBJECTE wurden Erfolgreich geladen.(2) [17:06:55] [MYSQL] PICKUPS wurden Erfolgreich geladen.(0) [17:06:55] [MYSQL] LABELS wurden Erfolgreich geladen.(0) [17:07:30] [connection] MEINEIPADRESSE requests connection cookie. [17:07:31] [connection] incoming connection: MEINEIPADRESSE id: 0 [17:07:31] [join] Kobiro has joined the server (0:MEINEIPADRESSE) [17:07:41] [part] Kobiro has left the server (0:2) -
Code
Alles anzeigenforward OnPlayerCheckAccount(playerid, name[]); public OnPlayerCheckAccount(playerid, name[]){ new rows, fields; cache_get_data(rows, fields, mysql); if(rows){ new tmpname[MAX_PLAYER_NAME+1], string[128]; cache_get_field_content(0, "name", tmpname, mysql); if(strcmp(SpielerName(playerid), tmpname, false)){ format(string, sizeof(string), "* Der Accountname wurde nicht richtig geschrieben. Richtige Schreibweise: %s", tmpname); SendClientMessage(playerid, ROT, string); KickEx(playerid); } SetPVarInt(playerid, "accountid", cache_get_field_content_int(0, "id", mysql)); new duration = cache_get_field_content_int(0, "tban", mysql); format(string, sizeof(string), "[user]%i[/user] hat den Server betreten. (IP: %s)", GetPVarInt(playerid, "accountid"), ipinfo[playerid][ip__]); Log(string, 6); if(cache_get_field_content_int(0, "banned", mysql) == 1){ new banmsg[500], banreason[64], banadmin[MAX_PLAYER_NAME+1]; cache_get_field_content(0, "banadmin", banadmin, mysql); cache_get_field_content(0, "bangrund", banreason, mysql); format(string,sizeof(string),"* %s wurde vom Server gekickt, Grund: Account-Ban",name); SendClientMessageToAll(ROT,string); format(banmsg,sizeof(banmsg),"Dieser Account wurde von Calikartell-Deathmatch gebannt.\nIst das nicht dein Account, dann beende das Spiel und such dir einen anderen Namen aus.\nWenn dass dein Account ist, und du zu unrecht gebannt wurdest, erstelle einen Entbann Antrag im Forum.\n\n\nausführender Admin: %s\nGrund: %s\nDauer: Permanent\n",banadmin,banreason); ShowPlayerDialogEx(playerid,DIALOG_BANNED,DIALOG_STYLE_MSGBOX,"Calikartell-Deathmatch - Account Gebannt",banmsg,"OK",""); KickEx(playerid); return 1; }else if(duration > gettime()){ new tbanadmin[MAX_PLAYER_NAME+1], tbanreason[64]; cache_get_field_content(0, "tbanadmin", tbanadmin, mysql); cache_get_field_content(0, "tbanreason", tbanreason, mysql); format(string,sizeof(string),"* %s wurde vom Server gekickt, Grund: Time-Ban",name); SendClientMessageToAll(ROT,string); new string2[360]; format(string2,sizeof(string2),"Dieser Account wurde von Calikartell-Deathmatch gebannt.\nIst das nicht dein Account, dann beende das Spiel und such dir einen anderen Namen aus.\nWenn dass dein Account ist, und du zu unrecht gebannt wurdest, erstelle einen Entbann Antrag im Forum.\n\n\nausführender Admin: %s\nGrund: %s\nDauer: %s\n",tbanadmin,tbanreason,returnDate(duration)); ShowPlayerDialogEx(playerid, DIALOG_BANNED, DIALOG_STYLE_MSGBOX, "Calikartell-Deathmatch - Account gebannt", string2, "Schließen", ""); KickEx(playerid); return 1; }else{ ShowPlayerDialogEx(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Calikartell-Deathmatch - Login","{B9B9BF}Herzlich Willkommen auf Calikartell-Deathmatch\n\nDein Account wurde in unsere Datenbank gefunden.\nDu kannst dich nun mit deinen Passwort einloggen.","Login","Abbrechen"); } }else{ ShowPlayerDialogEx(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Calikartell-Deathmatch - Registrieren","{B9B9BF}Herzlich Willkommen auf Calikartell-Deathmatch\n\nDein Account wurde nicht in unserer Datenbank gefunden.\nDu kannst dir nun einen Account mit einem Passwort anlegen.","Registrieren","Abbrechen"); } ShowClanZoneForPlayer(playerid); SetPlayerTeam(playerid,NO_TEAM); return 1; } forward OnPlayerConnectEx(playerid); public OnPlayerConnectEx(playerid){ new name[MAX_PLAYER_NAME+1]; GetPlayerName(playerid,name,sizeof(name)); ClearChatForPlayer(playerid,20); SetPlayerVirtualWorld(playerid,playerid+33); SetPlayerPosEx(playerid,1106.5566,-1796.5233,16.5999); InterpolateCameraPos(playerid, 1067.722412, -1796.464477, 37.472873, 1082.501831, -1802.785034, 31.697965, 3000); InterpolateCameraLookAt(playerid, 1072.492309, -1796.505371, 35.973899, 1087.259399, -1802.120971, 30.310689, 2000); GangZoneShowForPlayer(playerid, NoDMGangZone, 0xFF0000D2); new query[256]; mysql_format(mysql, query, sizeof(query), "SELECT * FROM accounts WHERE name = '%e'", name); mysql_tquery(mysql, query, "OnPlayerCheckAccount", "is", playerid, name); /*new geo_countrycode[12]; GetPVarString(playerid, "geo_countrycode", geo_countrycode, sizeof(geo_countrycode)); if(!strcmp(geo_countrycode, "DE", true) || !strcmp(geo_countrycode, "AT", true) || !strcmp(geo_countrycode, "CH", true) || !strcmp(geo_countrycode, "N/A", true)){ OnPlayerGEO(playerid, name, 1); }else{ new query[256]; mysql_format(mysql, query, sizeof(query), "SELECT * FROM geoWhitelist WHERE name = '%e'", name); mysql_tquery(mysql, query, "OnGeoWhitelistCheck", "is", playerid, name); }*/ return 1; } forward OnPlayerCheckConnectMessages(playerid, name[], playerIP[]); public OnPlayerCheckConnectMessages(playerid, name[], playerIP[]){ new rows, fields, uc, str[128]; cache_get_data(rows, fields, mysql); if(rows){ uc = cache_get_field_content_int(0, "undercover", mysql); }else{ uc = 0; } for(new i=0;i<MAX_PLAYERS;i++){ if(!IsPlayerConnected(i))continue; if(GetPVarInt(i,"messages")!=1){ if(IsPlayerAnAdmin(i,1) && GetPVarInt(i, "togip") != 1){ if(uc == 1){ new ucIP[32]; for(new x = 1; x<5; x++){ new rand = random(255); if(x == 1){ format(ucIP, sizeof(ucIP), "%i", rand); }else{ format(ucIP, sizeof(ucIP), "%s.%i", ucIP, rand); } } format(str, sizeof(str), "* %s hat den Server betreten. ID: %i, IP: %s",name,playerid,ucIP); }else{ format(str, sizeof(str), "* %s hat den Server betreten. ID: %i, IP: %s",name,playerid,playerIP); } SendClientMessage(i,GRUEN,str); }else{ format(str,sizeof(str),"* %s hat den Server betreten. ID: %i",name,playerid); SendClientMessage(i,GRUEN,str); } } } return 1; } public OnPlayerConnect(playerid){ RandomMusic(playerid); if(IsPlayerNPC(playerid))return 1; new playerIP[24],string[128]; GetPlayerIp(playerid, playerIP, sizeof(playerIP)); if(!strcmp(antiFlood[floodAdress], playerIP, false)){ if((antiFlood[floodTime] + 3) > gettime()){ format(string, sizeof(string), "Server hat die IP %s gebannt. (Grund: Login Flood)",playerIP); Log(string, 4, 5); Ban(playerid); return 1; } } antiFlood[floodTime] = gettime(); format(antiFlood[floodAdress], 24, "%s", playerIP); SetPVarInt(playerid, "isPlayerConnected", 1); //geo_fetch_data(playerid, playerIP, "OnPlayerReceiveGEOData"); new name[32]; GetPlayerName(playerid,name,sizeof(name)); GameTextForPlayer(playerid, "Calikartell-Deathmatch wird geladen...", 2750, 3); new query[256]; mysql_format(mysql, query, sizeof(query), "UPDATE accounts SET connected = 1 WHERE name = '%e'", name); mysql_tquery(mysql, query); ipinfo[playerid][ip__]=playerIP; ClearChatForPlayer(playerid,20); SetPlayerColor(playerid,PLAYER_COLOR_GRAU); SetPVarInt(playerid,"tpanfrage",-1); mysql_format(mysql, query, sizeof(query), "SELECT * FROM accounts WHERE name = '%e'", name); mysql_tquery(mysql, query, "OnPlayerCheckConnectMessages", "iss", playerid, name, playerIP); -
Das ist kein Fehler. Ich habe testweise einige Filterscripts rausgenommen darunter auch die announce.amx
Bezüglich Fehler im Code, wäre es hilfreich zu sagen, welchen Code du brauchst um mir helfen zu können.
-
Nabend Brotfische,
hab momentan das Problem, dass wenn ich versuche auf den Server zu joinen, ich einen Login/Registerfenster bekomme, aber bei Eingabe eines Passwortes nichts passiert.
Der Server verbindet sich laut serverlog erfolgreich mit der Datenbank. Auch über Phpmyadmin sind alle Tabellen vorhanden.
Hat jemand eine Idee woran das liegen könnte? Vermute irgendwas mit Callback oder Query, aber finde es nicht
Code
Alles anzeigenSA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [00:37:42] [00:37:42] Server Plugins [00:37:42] -------------- [00:37:42] Loading plugin: crashdetect.so [00:37:42] CrashDetect v4.15.1 is OK. [00:37:42] Loaded. [00:37:42] Loading plugin: mysql.so [00:37:42] >> plugin.mysql: R39-5 successfully loaded. [00:37:42] Loaded. [00:37:42] Loading plugin: sscanf.so [00:37:42] [00:37:42] =============================== [00:37:42] sscanf plugin loaded. [00:37:42] Version: 2.8.2 [00:37:42] (c) 2012 Alex "Y_Less" Cole [00:37:42] =============================== [00:37:42] Loaded. [00:37:42] Loading plugin: streamer.so [00:37:42] *** Streamer Plugin v2.9.6 by Incognito loaded *** [00:37:42] Loaded. [00:37:42] Loading plugin: Whirlpool.so [00:37:42] [00:37:42] ================== [00:37:42] [00:37:42] Whirlpool loaded [00:37:42] [00:37:42] ================== [00:37:42] [00:37:42] Loaded. [00:37:42] Loading plugin: sampcac_server.so [00:37:42] SA-MP Clientside AntiCheat v0.10.0 is being loaded ... [00:37:42] Loaded. [00:37:42] Loaded 6 plugins. [00:37:42] [00:37:42] Filterscripts [00:37:42] --------------- [00:37:42] Loading filterscript 'antirire.amx'... [00:37:42] Unable to load filterscript 'antirire.amx'. [00:37:42] Loading filterscript 'announce.amx'... [00:37:42] [SACNR Monitor] Announcing server... [00:37:42] Loading filterscript 'rconCP.amx'... [00:37:42] Loaded 2 filterscripts. [00:37:42] SAMPCAC include file version (v0.00.0) does not match plugin version (v0.10.0) (script might need to be recompiled with the correct include file). [00:37:42] [00:37:42] [00:37:42] [00:37:42] ======================================= [00:37:42] | | [00:37:42] | YSI version 4.00.0001 | [00:37:42] | By Alex "Y_Less" Cole | [00:37:42] | | [00:37:42] ======================================= [00:37:42] [00:37:42] KONNTE SICH MIT DER DATENBANK VERBINDEN! [00:37:42] ---------------------------------- [00:37:42] CalikartellDM - Script [00:37:42] ---------------------------------- [00:37:42] Number of vehicle models: 15 [00:37:42] [SACNR Monitor] Server failed to announce: HTTP_ERROR_BAD_HOST [00:37:42] [MYSQL] Gates wurden Erfolgreich geladen.(1) [00:37:42] [MYSQL] OBJECTE wurden Erfolgreich geladen.(2) [00:37:42] [MYSQL] PICKUPS wurden Erfolgreich geladen.(0) [00:37:42] [MYSQL] LABELS wurden Erfolgreich geladen.(0) -
Maahlzeit,
hab aktuell das Problem, dass wenn ich meinen SAMP Server (0.3.7 Linux VPS) starte, er sich nach kurzer Zeit wieder beendet.
(Testweise den Standard Grand Larceny Gamemode drin)
Setup:
Debian VPS
Samp 0.3.7 Server
Port: 7777
Code: server_logSA-MP Dedicated Server v0.3.7, (C)2005-2015 SA-MP Team [21:56:47] filterscripts = "" (string) [21:56:47] Loaded 0 plugins. [21:56:47] Loaded 0 filterscripts. [21:56:47] Running Grand Larceny - by the SA-MP team [21:57:14] --- Server Shutting Down.Problem aktuell ist:
Server startet
Gamemode wird geladen
danach sofort Shutdown
kein fehler im Log sichtbar außer shutdown
Was bereits geprüft wurde:
ob Server.cfg korrekt ist (port, rcon pw, etc.)
Gamemode datei vorhanden (grandlarc.amx)
Falls jemand Erfahrung mit SAMP Linux hat, würde ich mich sehr über Hilfe freuen.
Gerne auch über Discord
Vielen Dank im Voraus KUSS
//EDIT: Hab im vServer vergessen bei der Firewall Port 7777 zuzulassen. Problem gelöst
-
Würde mich auch interessieren, arbeite aktuell an einem, aber weiß nicht wie gefragt der Gamemode wirklich sein sollte^^
Wäre schon echt geil
-
Bin nicht kevin
Vielleicht bin ich garnicht Kevin.
Sondern Manuel Neuer
-
Ist Egal.
Ihr muss alle schlafen gehen.
Kevin