[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Hast du mal folgendes probiert: RE: Run time error 20: "Invalid index parameter (bad entry point)" bei jedem Schuss
-
Also hab folgende Logs gefunden aber vermute das es an sich nichts schlimmes ist

im mysql log:
[13:50:45] [WARNING] mysql_connect: no password specified
log core: [13:50:50] [INFO] received Windows console close event; shutting log-core down
warnings: [13:50:45] [plugins/mysql] mysql_connect: no password specified
hoffe du meintest das so in etwa Whice
-
Hast du auch eine main Funktion im Skript?
-
Kaliber oh man danke, lag daran ab versehentlich zuviel gelöscht

Hab einen neuen Fehler nachdem ich sscanf eingefügt habe
fatal error 111: user error: sscanf likes the community compiler. Use `#define SSCANF_NO_NICE_FEATURES` to ignore this.
Code
Alles anzeigenpublic OnPlayerConnect(playerid) { PlayerInfo[playerid][p_id] = 0; PlayerInfo[playerid][pLoggedIn] = false; //laut compiler handelt es sich um diese Zeile PlayerInfo[playerid][pLevel] = 0; PlayerInfo[playerid][pMoney] = 0; PlayerInfo[playerid][pKills] = 0; PlayerInfo[playerid][pDeaths] = 0; GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME); return 1; } -
-
fatal error 111: user error: sscanf likes the community compiler. Use `#define SSCANF_NO_NICE_FEATURES` to ignore this.
liegt an sccanf, schau nach ob du das richtige version benutzt
-
NixMuss hab es mittlerweile behoben habe jetzt aber in meiner Konsole diverse meldungen wenn ich bspw. /makeleader oder /clearchat oder ähnliche sscanf abfragen nutze
die Meldung sieht so aus: kann ja bspw. den Clearchat befehl hier dazu geben
Code
Alles anzeigenocmd:clearchat(playerid,params[]) { if(!PlayerInfo[playerid][pLoggedIn]) NOLOGIN_MSG); if(!isAdmin(playerid, 3)) return ADMIN_MSG); new cc_grund[31],cc_form[156]; if(sscanf(params,"s[31]",cc_grund)) return SCM(playerid,WEISS,"[{ECFF00} AdminInfo {FFFFFF}]: /clearchat [Grundangabe]"); SpamChat(playerid,1); format(cc_form,sizeof(cc_form),"Der Chat wurde von %s %s (ID: %i): gesäubert Grund: %s", Adminrang(playerid),SpielerName(playerid), playerid,cc_grund); SCM(playerid,ORANGE,cc_form); return 1; } -
die Meldung sieht so aus
Hast du mal probiert, das zu machen, was dort vorgeschlagen wird?
Also mit der anscheinend neuen Version von sscanf, die du dir geholt hast das Script recompiled?
Wichtig ist, dass du sowohl das plugin als auch das inlcude austauscht, dann recompilest und dann erst den Server startest
-
-
Und welche Version verwendest du nun?
Kann sonst folgende empfehlen: https://github.com/Y-Less/sscanf/releases
-
um ehrlich zu sein weiß ich es nicht hab sie jetzt auf die Version gemacht die du empfiehlst und nun habe ich wieder folgenden Fehler beim compilen vom script
fatal error 111: user error: sscanf likes the community compiler. Use `#define SSCANF_NO_NICE_FEATURES` to ignore this.
-
um ehrlich zu sein weiß ich es nicht hab sie jetzt auf die Version gemacht die du empfiehlst und nun habe ich wieder folgenden Fehler beim compilen vom script
fatal error 111: user error: sscanf likes the community compiler. Use `#define SSCANF_NO_NICE_FEATURES` to ignore this.
Dann mach doch einfach in dein Script oben
#define SSCANF_NO_NICE_FEATURES
und guck dann mal
-
@Grosim passiert leider nichts
-
@Grosim passiert leider nichts
Was meinst du mit nix?
-
gleicher fehler im compiler @Grosim
Hab jetzt Version 2.8.3 und nun keine weiteren Probleme danke dennoch für eure Hilfsversuche

Hey und zwar wollte ich ein Befehl erstellen der sich erstellen nennt, da ich mit einem befehl mehrere sachen erstellen möchte wie bspw. bei /accept [x,y,z]
der Befehl soll /erstellen [x,y,z] heißen habe mittlerweile "einiges" geschrieben jedoch funktioniert der Befehl im Spiel nicht wie ich es mir wünsche er wird kein Fahrzeug erstellt etc. Das Fahrzeug wird bisher nicht in der DB gespeichert etc. jedoch wollte ich das noch mit einbauen
mein Befehl bisher:
Code
Alles anzeigenocmd:erstellen(playerid, params[]) { new item[64]; if(sscanf(params,"s[64]", item))return SCM(playerid,WEISS, "[ {ECFF00}Information{FFFFFF} ]: /erstellen [Auto]"); if(!strcmp(item, "auto", false)) { new pID, vehid, farbe, farbe2; if(sscanf(params,"s[64]iiii", item,pID, vehid, farbe, farbe2))return SCM(playerid,WEISS,"[{ECFF00} AdminInfo {FFFFFF}]: /erstellen [Auto] [playerid] [VehID] [Model] [Farbe] [Farbe 2]"); new Float:xc,Float:yc,Float:zc,Float:rc; GetPlayerPos(pID,xc,yc,zc); GetPlayerFacingAngle(pID,rc); createPlayerCar(pID,vehid, xc, yc, zc, rc); } return 1; }Dazu die createPlayerCar funktion
Code
Alles anzeigencreatePlayerCar(playerid, modelid, Float:x,Float:y,Float:z,Float:r) { for(new i=0; i <sizeof(carInfo); i++) { if(carInfo[i][id_x] !=0)continue; format(carInfo[i][besitzer], MAX_PLAYER_NAME,"%s",SpielerName(playerid)); carInfo[i][c_x] = x; carInfo[i][c_y] = y; carInfo[i][c_z] = z; carInfo[i][c_r] = r; carInfo[i][c_x] = x; carInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r, -1,-1,-1); new string[128]; format(string,sizeof(string),"[ {ECFF00}Information{FFFFFF} ] Das Auto carInfo[ID: %i] wurde erstellt!", i); SCM(playerid,WEISS,string); return 1; } return 1; }und natürlich das carenum:
-
Muss man bei Mysql die Daten irgendwie setzen und nicht nur per UPDATE speichern? Wenn ich einen User bei mir registriere speichert er nämlich nicht, aber wenn der User erstellt ist und ich per Login mich einlogge um mich anschließend abzumelden schon.
Oder muss man eine Connection aufbauen die ich wohl irgendwo im Code habe, aber nicht erkenne? Habe ordentlich rumgewühlt aber bin nicht vorangekommen. Wenn ja wäre es nett wenn man mir die entsprechenden Befehle schickt damit ich die umsetzen kann.
-
Muss man bei Mysql die Daten irgendwie setzen und nicht nur per UPDATE speichern? Wenn ich einen User bei mir registriere speichert er nämlich nicht, aber wenn der User erstellt ist und ich per Login mich einlogge um mich anschließend abzumelden schon.
Oder muss man eine Connection aufbauen die ich wohl irgendwo im Code habe, aber nicht erkenne? Habe ordentlich rumgewühlt aber bin nicht vorangekommen. Wenn ja wäre es nett wenn man mir die entsprechenden Befehle schickt damit ich die umsetzen kann.
Deine Frage ist etwas vewirrend formuliert - oder ich bin es.
Bevor du einen Eintrag "Updaten" kannst musst du ihn mit Hilfe von https://dev.mysql.com/doc/refman/8.0/en/insert.html erstellen, was du denke ich irgendwo tust.
Daher kann man viel mehr mit Codeschnipsel deines Codes anfangen, als deiner Erzählung.
-
Muss man bei Mysql die Daten irgendwie setzen und nicht nur per UPDATE speichern? Wenn ich einen User bei mir registriere speichert er nämlich nicht, aber wenn der User erstellt ist und ich per Login mich einlogge um mich anschließend abzumelden schon.
Oder muss man eine Connection aufbauen die ich wohl irgendwo im Code habe, aber nicht erkenne? Habe ordentlich rumgewühlt aber bin nicht vorangekommen. Wenn ja wäre es nett wenn man mir die entsprechenden Befehle schickt damit ich die umsetzen kann.
Ich will nichts falsches sagen, jedoch hatte ich auch so ein ähnliches problem.
Sobald sich bei mir ein spieler einloggt wird bei ihm "sInfo[playerid][eingeloggt] = 1;" auf 1 gesetzt.
Dies dient dazu, damit bei savePlayer nicht alle Datenbankeinträge gespeichert werden sondern nur von denen die auf eingeloggt = 1 stehen.
Somit müsstest du, je nach dem was für eine Abfrage du verwendest, diese noch dort einbauen, wo sich der spieler erfolgreich registriert hat.
Bei mir hat es den Fehler komplett behoben.
Lass mich wissen, ob es dieses Problem war oder ich es einfach falsch verstanden habe :b
-
Muss man bei Mysql die Daten irgendwie setzen und nicht nur per UPDATE speichern?
Speicherst du den User via ID? Falls ja, musst du bei der Registrierung auch die insert_id abfangen und setzen.
