Möglicherweise hast du die Datei mal offen gehabt, mit einem Anderen Editor, und dann mit einem falschen Zeichensatz (UTF-8 / Unicode / ASCII ... ?) gespeichert.
Du kannst entweder alle falschen Zeichen ersetzen, oder du findest raus welchen Zeichensatz du genommen hast und nehmen musst, dann sollte es auch wieder passen, das ist aber die aufwändigere Methode schätze ich, es gibt ja STRG+H.
Beiträge von Jeffry
-
-
Du musst es für jedes Objekt machen:
new mauer;
mauer = CreateObject(19454, 2492.48340, -1514.41382, 22.36194, 0.00000, 0.00000, -90.00000);
SetObjectMaterial(mauer, 0, 17036, "cuntwbt", "puttywall1", 0xFFFFFFFF);
mauer = CreateObject(19454, 2482.85693, -1514.41382, 22.36190, 0.00000, 0.00000, -90.00000);
SetObjectMaterial(mauer, 0, 17036, "cuntwbt", "puttywall1", 0xFFFFFFFF);
//...uswOder direkt:
SetObjectMaterial(CreateObject(19454, 2492.48340, -1514.41382, 22.36194, 0.00000, 0.00000, -90.00000), 0, 17036, "cuntwbt", "puttywall1", 0xFFFFFFFF);
SetObjectMaterial(CreateObject(19454, 2482.85693, -1514.41382, 22.36190, 0.00000, 0.00000, -90.00000), 0, 17036, "cuntwbt", "puttywall1", 0xFFFFFFFF);
Das ist aber nicht so übersichtlich. Wie du willst.EDIT:
Post unten: @J.L.Bourne: Genau. -
Na dann Gratulation an den Programmierer, einen Code zu schreiben der fünf Minuten braucht um zu starten. Nur mal als Vergleich: Mein Server startet in einer Sekunde und lädt etwas mehr als 50.000 Bans, 700 Häuser, 10.000 Objekte und noch alles mögliche Kleinzeug.
Da diese Fehler zum Teil bei OnGameModeInit kommen, solltest du das posten, die callbacks werden ja in dem Backtrace angegeben.
Generell liegt es daran, dass du mit Index -1 auf ein Array zugreifen willst.
-
[09:52:07] [debug] Run time error 4: "Array index out of bounds"
[09:52:07] [debug] Accessing element at negative index -1Das will es uns sagen.
Poste bitte den Code dazu.
-
GetPlayerName(playerid,name,sizeof(name)),GetPlayerName(pID,givename,sizeof(givename));
Unter die Klammern der If Abfrage von gehalt.
Warum?
Du musst erst sscanf ausführen (setzt den Wert in pID) und dann musst du GetPlayerName nutzen.EDIT:
Nebenbei, das ist die online Abfrage
if(IsPlayerConnected(pID)) -
Ja das liegt an sscanf. Entweder du benutzt eine veraltete Version oder du hast noch die Funktion deklariert, zu dem Plugin dazu.
Lade dir die aktuelle Version des Plugins herunter und kompiliere den Code erneut (auch die Includes aktualisieren). Wenn das nicht geht suche ob du im Code die sscanf Funktion irgendwo deklariert hast. Die siehst so aus:
http://wiki.sa-mp.com/wiki/Sscanf_code
Diese musst du löschen.Wenn du mit keinem Weg zur Lösung kommst, dann poste den Befehl.
-
Mache einen Screenshot von deinem Bildschirm auf dem man sieht wie du es in den Code eingefügt hast.
Lade den Screenshot bei http://www.tinypic.com hoch und poste den Link.
So wie die Errors da sind und auf Grund deines geposteten "Codes" tippe ich, dass du es immer noch an der falschen Stelle einfügst. -
Kompiliert der Code denn überhaupt, wenn du es ohne die Zeile kompilierst?
Wenn ja, einfach
mysql_debug(1);
oder:
mysql_log(LOG_ALL);
(Je nach dem was das R7 mag)unter OnGameModeInit()
Bsp:
public OnGameModeInit()
{
//HIER EINFÜGEN
//...anderes Zeugseinfügen.
Das wirst du doch wohl hinbekommen.

Außerdem kommt mir das schon relativ schleierhaft vor:
Zitat[23:01:06] Dieses Script [Version: Its Possible pRP 2.0b] steht unter Datenschutz und darf
[23:01:06] nur von dem jenigen Besitzer benutzt/verwendet werden.
[23:01:06] Falls diese Richtlinien nicht eingehalten werden,werden
[23:01:06] Rechtlicheschritte gegen sie eingeleitet.
[23:01:06] © Copyright & Gründer by Fernandez_Alvarez
Aber gut, deine Sache. -
-
Falls es immer noch nicht geht, schalte den MySQL Debug an und poste was im Server Log steht wenn du den Server startest.
Und poste auch gleich den Code dazu.
-
Wenn du die Datenbank Benutzerkonten nicht verändert hast, dann hat der root Benutzer kein Passwort.
Nimm das Passwort raus und verbinde komplett ohne Passwort, oder setze in den Benutzerkonten ein Passwort ein.Falls es immer noch nicht geht, schalte den MySQL Debug an und poste was im Server Log steht wenn du den Server startest.
-
mysql_fetch_field_row(data, "id");
Wobei data der String ist in den das Result von der Spalte id geschrieben wird.
-
Aber dies kann man doch noch viel besser schreiben!
Was ist denn daran besser? Du hast alles in eine Zeile geschrieben, super! Jeder halbwegs kompetente Programmierer wird dir sagen, dass das absoluter Käse ist, da in der Programmierung eine ungeschriebene Regel gilt, nämlich nur eine Anweisung pro Zeile, in jeder Sprache.
Warum macht man das?
Liegt ganz einfach daran, dass man es besser lesen kann. Dein Code kann auf einem kleinen Bildschirm möglicherweise nicht komplett angezeigt werden.
Außerdem kann es im geschäftlichen Bereich dazu kommen, dass du einen Code ausdrucken musst, und da ist es immens wichtig, dass es keine Umbrüche gibt.Was hast du noch verändert? Public und forward zu einem @ geändert. Das macht wirklich keinen Unterschied.
Nein, der Code ist keineswegs besser, weder in Performance noch in Lesbarkeit.
-
-
Das ist egal. Wie er es lieber haben will.
OnPlayerStateChange:
GetPlayerVehicleSeat(playerid)
nutzenOnPlayerEnterVehicle:
if(ispassenger)
nutzen.Das ist alles was zu beachten ist.
-
-
Wofür die schleife?
Kannst dort doch playerid verwenden.
Naja, an sich ist es nicht falsch, die Schleife ist notwendig, wenn auch an der Stelle vielleicht etwas ungeschickt gesetzt.So wäre es geschickter:
{
if(vehicleid == Slashauto[playerid])
{
//nix
}
else if(ispassenger)
{
//nix
}
else
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(vehicleid == Slashauto[i])
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, X, Y, Z);
SendClientMessage(playerid, Rot, "Dieses Auto gehört nicht dir!");
}
}
}
TextDrawShowForPlayer(playerid, carhealth[playerid]);
return 1;
}Aber gut, das sind Kleinigkeiten.
-
Wie gesagt, es ist nur ein Vorschlag. Wenn es nicht machbar ist oder zu aufwändig ist, dann ist das kein Problem.
Ich habe einfach einen meiner Posts gemeldet und mich für die vorherige Meldung entschuldigt (maddin hat dann die Meldung abgewiesen und die Sache war geregelt).
Es geht ja auch nicht darum ob es jetzt ein Problem für die Moderatoren ist oder nicht, sondern einfach nur um den Komfort. Wenn nicht machbar, dann nicht machbar. Eine Tragödie ist es sicherlich nicht, wie Kones sagte, das habe ich ja auch nie gesagt.
-
So, also bei mir funktioniert es einwandfrei.
Query:

^ Ausgabe: 3Datenbank:

Passt, 3 wäre die nächste freie ID.Wie sieht denn dein Code und deine Datenbank aus?
-
Die Reihenfolge spielt hier auch eine Rolle. Mach es so:
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(vehicleid == Slashauto[playerid])
{
}
else if(ispassenger)
{
}
else if(vehicleid == Slashauto[i])
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, X, Y, Z);
SendClientMessage(playerid, Rot, "Dieses Auto gehört nicht dir!");
}
}
TextDrawShowForPlayer(playerid, carhealth[playerid]);
return 1;
}