Beitrag von Jameso ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Hat sich erledigt :D ().
und warum kommen diese fehler `?
----------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3.7-R2, (C)2005-2015 SA-MP Team
filterscripts = "" (string)
Server Plugins
--------------
Loading plugin: crashdetect
CrashDetect plugin 4.19.4
Loaded.
Loading plugin: sscanf
===============================
sscanf plugin loaded.
Version: 2.8.3
(c) 2018 Alex "Y_Less" Cole
===============================
Loaded.
Loading plugin: mysql
>> plugin.mysql: R39-6 successfully loaded.
Loaded.
Loading plugin: streamer
*** Streamer Plugin v2.9.4 by Incognito loaded ***
Loaded.
Loading plugin: Whirlpool
==================
Whirlpool loaded
==================
Loaded.
Loading plugin: mapandreas
Loaded.
Loaded 6 plugins.
Started server on port: 7777, with maxplayers: 100 lanmode is OFF.
Filterscripts
---------------
Loaded 0 filterscripts.
AMX (42989592) loaded
=======================================
| |
| YSI version 3.09.0684 |
| By Alex "Y_Less" Cole |
| |
=======================================
Keine definierte Verbindung gefunden. Vermutung auf Localhost - Verbindung wird initialisiert.
Es wurden 10 Lieder geladen.
Es wurden 6 Derbymaps geladen.
AMX (43081384) loaded
[MAPS.amx] Es wurden 0 Objekte erstellt.
[MAPS.amx] Es wurden 0 Dynamische Objekte erstellt.
Filterscript 'maps.amx' loaded.
Number of vehicle models: 1
Only create trains with AddStaticVehicle/Ex
[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at index 65535 in array of size 55
[debug] AMX backtrace:
[debug] #0 002000a0 in GetGroupName (mysqlid=7) at D:\German-Street-Life\gamemodes\gsl.pwn:31012
[debug] #1 001fd8d8 in InitPlayerGangZoneInfo (gangzone=8) at D:\German-Street-Life\gamemodes\gsl.pwn:30843
[debug] #2 0013ae9c in public OnQueryFinished (queryid=5) at D:\German-Street-Life\gamemodes\gsl.pwn:20112
forceac existiert nicht als Befehl.
takeac existiert nicht als Befehl.
cconfig existiert nicht als Befehl.
whisper existiert nicht als Befehl.
PO: imdex: 0, name: Tankestelle Spawn SF
PO: imdex: 1, name: SF Autohaus
PO: imdex: 2, name: Arenen
PO: imdex: 3, name: Mats Autohaus
PO: imdex: 4, name: Job: Lieferant
PO: imdex: 5, name: Job: Bauer
PO: imdex: 6, name: Zivispawn LV
PO: imdex: 7, name: Bank SF
PO: imdex: 8, name: Casino
PO: imdex: 9, name: Geldtransporter
PO: imdex: 10, name: Fischverkauf
PO: imdex: 11, name: SFPD
PO: imdex: 12, name: Tuning Garage
PO: imdex: 13, name: Drogenmaschine
PO: imdex: 14, name: Blütenhändler
PO: imdex: 15, name: Mats Abholpunkt Red County
PO: imdex: 16, name: Mats Abholpunkt Green Palm
PO: imdex: 17, name: Hitman Base
PO: imdex: 18, name: sf ammu oceandocks
MS: 1 (SecondsTimer)
[connection] 127.0.0.1:58921 requests connection cookie.
[connection] incoming connection: 127.0.0.1:58921 id: 0
[npc:join] securityguy has joined the server (0:127.0.0.1)
[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at negative index -1
[debug] AMX backtrace:
[debug] #0 001d01d0 in GivePlayerExp (playerid=0, Float:exp=2.00000, bool:doubleexp=true, reason[]=@006e4694 "Ticket") at D:\German-Street-Life\gamemodes\gsl.pwn:27919
[debug] #1 00216f58 in PlayerAcceptCopTicket (playerid=0) at D:\German-Street-Life\gamemodes\gsl.pwn:32546
[debug] #2 00058780 in public Itter_OnPlayerDisconnect (playerid=0, reason=2) at D:\German-Street-Life\gamemodes\gsl.pwn:5658
[debug] #3 000214b8 in ?? (0, 2) at D:\German-Street-Life\pawno\include\YSI\y_iterate.inc:909
[debug] #4 0000e40c in public SSCANF_OnPlayerDisconnect (playerid=0, reason=2) at D:\German-Street-Life\pawno\include\YSI\y_hooks/impl.inc:661
[debug] #5 000024f4 in public OnPlayerDisconnect (playerid=0, reason=2) at D:\German-Street-Life\pawno\include\sscanf2.inc:266
[debug] #6 native Kick () in samp-server.exe
[debug] #7 000549ac in public Itter_OnPlayerConnect (playerid=0) at D:\German-Street-Life\gamemodes\gsl.pwn:5414
[debug] #8 00020a58 in ?? (0) at D:\German-Street-Life\pawno\include\YSI\y_iterate.inc:646
[debug] #9 0000e278 in public SSCANF_OnPlayerConnect (playerid=0) at D:\German-Street-Life\pawno\include\YSI\y_hooks/impl.inc:618
[debug] #10 000024a8 in public OnPlayerConnect (playerid=0) at D:\German-Street-Life\pawno\include\sscanf2.inc:242
[npc:part] securityguy has left the server (0:2)
MS: 1 (dataTimer)
Hä? @LeonMrBonnie
https://forum.sa-mp.com/showthread.php?t=642022
Sicher, dass das das richtige Include ist ? ![]()
Vehicle Synchronization
This include contains some bug fixes and new vehicle related functions.
https://github.com/RIDE-2DAY/v…aster/README.md#bug-fixesBug Fixes
https://github.com/RIDE-2DAY/v…master/README.md#featuresFeatures
Only create trains with AddStaticVehicle/Ex
Du versuchst einen Zug mit CreateVehicle zu erstellen, das geht aber nicht, wie der Fehler es dir auch sagt.
Alles anzeigen[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at index 65535 in array of size 55
[debug] AMX backtrace:
[debug] #0 002000a0 in GetGroupName (mysqlid=7) at D:\German-Street-Life\gamemodes\gsl.pwn:31012
[debug] #1 001fd8d8 in InitPlayerGangZoneInfo (gangzone=8) at D:\German-Street-Life\gamemodes\gsl.pwn:30843
[debug] #2 0013ae9c in public OnQueryFinished (queryid=5) at D:\German-Street-Life\gamemodes\gsl.pwn:20112
Du versuchst auf ein Array mit dem Index 65535 zuzugreifen, also hast du wohl irgendwo vergessen zu checken, ob playerid == INVALID_PLAYER_ID.
Guck dir am besten mal die Funktionen an, die dort aufgelistet sind.
Alles anzeigen[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at negative index -1
[debug] AMX backtrace:
[debug] #0 001d01d0 in GivePlayerExp (playerid=0, Float:exp=2.00000, bool:doubleexp=true, reason[]=@006e4694 "Ticket") at D:\German-Street-Life\gamemodes\gsl.pwn:27919
[debug] #1 00216f58 in PlayerAcceptCopTicket (playerid=0) at D:\German-Street-Life\gamemodes\gsl.pwn:32546
[debug] #2 00058780 in public Itter_OnPlayerDisconnect (playerid=0, reason=2) at D:\German-Street-Life\gamemodes\gsl.pwn:5658
[debug] #3 000214b8 in ?? (0, 2) at D:\German-Street-Life\pawno\include\YSI\y_iterate.inc:909
[debug] #4 0000e40c in public SSCANF_OnPlayerDisconnect (playerid=0, reason=2) at D:\German-Street-Life\pawno\include\YSI\y_hooks/impl.inc:661
[debug] #5 000024f4 in public OnPlayerDisconnect (playerid=0, reason=2) at D:\German-Street-Life\pawno\include\sscanf2.inc:266
[debug] #6 native Kick () in samp-server.exe
[debug] #7 000549ac in public Itter_OnPlayerConnect (playerid=0) at D:\German-Street-Life\gamemodes\gsl.pwn:5414
[debug] #8 00020a58 in ?? (0) at D:\German-Street-Life\pawno\include\YSI\y_iterate.inc:646
[debug] #9 0000e278 in public SSCANF_OnPlayerConnect (playerid=0) at D:\German-Street-Life\pawno\include\YSI\y_hooks/impl.inc:618
[debug] #10 000024a8 in public OnPlayerConnect (playerid=0) at D:\German-Street-Life\pawno\include\sscanf2.inc:242
Dort ist es wieder ähnlich, irgendeine Variable hat den Wert -1 und du versuchst sie als Index in einem Array zu verwenden, das funktioniert aber nicht.
Guck dir die aufgelisteten Funktionen an und guck ob du dort irgendwo einer Variable -1 als Wert gibst, und füge einen Check dafür hinzu.
Alles anzeigenHä? @LeonMrBonnie
https://forum.sa-mp.com/showthread.php?t=642022
Sicher, dass das das richtige Include ist ?
![]()
Vehicle Synchronization
This include contains some bug fixes and new vehicle related functions.
https://github.com/RIDE-2DAY/v…aster/README.md#bug-fixesBug Fixes[/url]
- No more desynchronized vehicle colors when using -1 for the color parameters.
- Players won't collide anymore if they enter at once inside a mod shop.
- OnVehicleRespray isn't called anymore when you exit a mod shop if the colors didn't change.
- OnVehicleRespray isn't called anymore when a component is previewed inside a mod shop.
- Now the Firetruck (ladder variant) has the addsiren parameter set to true by default.
- Vehicles won't change their color to white anymore when a paintjob is removed.
- Bullbar components won't use anymore the same slots as front/rear bumpers (GetVehicleComponentInSlot).
- Now GetVehicleComponentInSlot works correctly when checking the CARMODTYPE_STEREO slot.
- Players won't crash anymore if someone tries to add an invalid component to a vehicle.
[url='https://github.com/RIDE-2DAY/vSync/blob/master/README.md#features']Features
- Now Pay 'n' Spray shops apply random colors and call OnVehicleRespray.
- Now ChangeVehicleColor applies random colors when using -1 for the color parameters.
- When using random colors, vehicles get their own colors, those used single player.
- Two new vehicle component slots: CARMODTYPE_FRONT_BULLBAR, CARMODTYPE_REAR_BULLBAR. Check "Modified Functions" in the documentation.
- Neon lights related functions (with offsets for all vehicles and Streamer support).
- New functions and callbacks (check the documentation).
Ja, das ist das richtige Include. Damit hast du dann die GetVehicleNumberPlate Funktion und das MAX_VEHICLE_NUMBER_PLATE Define.
Du kannst aber dieses Include verwenden, dann sparst du dir die Arbeit und hast genau diese Funktion
Jein, im Grunde bläht man den ganzen Gamemode mit nicht benötigtem Stuff auf.
Dafür, dass man eine Funktion braucht, die eigentlich nur einen weiteren Eintrag in der Enum Strucktur benötigt und evtl. das man einmal format nutzt und zwar, wenn man SetVehicleNumberPlate benutzt (evtl. hooked man das auch einfach), finde ich das persönlich eher unnötig.
Jein, im Grunde bläht man den ganzen Gamemode mit nicht benötigtem Stuff auf.Dafür, dass man eine Funktion braucht, die eigentlich nur einen weiteren Eintrag in der Enum Strucktur benötigt und evtl. das man einmal format nutzt und zwar, wenn man SetVehicleNumberPlate benutzt (evtl. hooked man das auch einfach), finde ich das persönlich eher unnötig.
Wenn ihn das stört, kann er sich ja die Funktion und das was dazu gehört einfach rauskopieren, und den Rest weglassen, geht auch. Wollte damit nur sagen, dass er nicht selbst lange rumprobieren soll das hinzukriegen, da es schon jemand gemacht hat.
das was dazu gehört einfach rauskopieren
Also im Grunde das was ich die ganze Zeit sage/möchte.
Variable im enum hinzufügen -> format -> profit.
Aber nichts destotrotz ist seine Schleife/Funktion noch falsch, denn man kann in PAWN nicht einfach string mit == vergleichen.
Dazu benötigt man strcmp.
Aber nichts destotrotz ist seine Schleife/Funktion noch falsch, denn man kann in PAWN nicht einfach string mit == vergleichen.
Dazu benötigt man strcmp.
Stimmt! Hab ich ganz vergessen, hab zu viel JavaScript verwendet ![]()
Also im Grunde das was ich die ganze Zeit sage/möchte.
Variable im enum hinzufügen -> format -> profit.
Hab mir ehrlich gesagt nicht angeguckt wie die Funktion dort funktioniert, also ja, dann eben genau so.
Das heißt ich füge in meinem VehicleDataEnum eine neue Variable hinzu.
e_Kennzeichen[10];
Das heißt, ich muss immer, wenn ich jetzt wo ein Fahrzeug mit Kennzeichen erstelle folgendes tun:
vehData[vehicleid][e_Kennzeichen] = string;
Aber trotzdem, wie kann ich das dann abfragen, ob es == ist?
Ich könnte doch dann ganz einfach in einer MAX_VEHICLE Schleife abfragen, ob inputtext == vehData[vehicleid][e_Kennzeichen] ist oder??
Das heißt, ich muss immer, wenn ich jetzt wo ein Fahrzeug mit Kennzeichen erstelle folgendes tun:
lieber strcat(vehData[vehicleid][e_Kennzeichen], string, 10); oder format(vehData[vehicleid][e_Kennzeichen], 10, string);
inputtext == vehData[vehicleid][e_Kennzeichen]
nein das machst du mit [wiki]strcmp[/wiki]
@LeonMrBonnie warum lässt du bei einer "IsXY" Funktion etwas anderes als 1 oder 0 bzw true oder false zurückgeben ?
Das widerspricht dem, was der Funktionsname impliziert.
Weil er möchte, dass ihm die Funktion die VehicleID zurückgibt, hatte er oben ja gesagt.
Ich würde es auch eher etwas wie GetVehicleFromNumberplate nennen oder ähnliches, aber das ist ja seine Sache. ![]()
stock isVehicleValidByPlate(plate[])
{
for(new i=0, j=MAX_VEHICLES; i<=j; i++)
{
if(!strcmp(plate, vehData[i][e_Kennzeichen])) return i;
}
return -1;
}
Löst sein Problem komplett.
Man kann dann in der Abfrage sowohl auf ID als auch auf Existenz prüfen, wenn man richtig denkt.
if(isVehicleValidByPlate(plate) >= 0 && isVehicleValidByPlate(plate) <= MAX_VEHICLES) return SCM(ID, Farbe, "Fahrzeug existiert mit ID %d", ID …);//Natürlich format
if(isVehicleValidByPlate(plate) == 0) return SCM(…,...., "Fahrzeug existiert nicht");
Die Umsetzung ist eher mangelhaft. Warum genau möchtest du statt GetVehiclePoolSize MAX_VEHICLES verwenden? Damit erhöhst du nur unnötig die Anzahl der Ausführungen der Schleife.
Auch deine Abfrage ist komisch, warum rufst du unten nochmal isVehicleValidByPlate auf und führst damit nochmal unnötig einen Loop aus? Dazu returnt die Funktion -1 und nicht 0 bei einem nicht existierenden Fahrzeug. Die ersten beiden Abfragen ergeben auch wenig Sinn, warum lässt du die Funktion insgesamt 3 mal aufrufen, wenn man es auch bei einem mal belassen könnte und somit Ressourcen sparen könnte?
if(isVehicleValidByPlate(plate) == -1) return 0; //Es existiert kein Fahrzeug mit diesem Kennzeichen
else return 1; //Es existiert ein Fahrzeug mit diesem Kennzeichen
for(new i=0, j=MAX_VEHICLES; i<=j; i++)
Was ist denn das hier ?
Warum weist du einen Konstanten Wert einer Variable zu, statt gleich die Konstante zu nutzen.
Mal davon ganz ab, warum postet du eine leicht abgewandelte Version die LeonMrBonnie bereits gepostet hat ?
Da ich und BrightLeaN uns darüber per Skype unterhalten haben und ich euch nur informieren wollte, dass es gelöst ist.
Das mit der MAX_VEHICLES haben wir selbst bereits bemerkt.
Schön, dass du das gleich so formulierst als hätte ich eine schwere Straftat begangen, wobei diese variable ja wohl Standard shit und nichts einzigartig schweres ist.
Btw hab ich dieses leicht abgewandelte selbst geschrieben und wollte damit nicht jemand anderes Code klauen, sondern einfach nur Bescheid geben, damit man sich nicht länger drüber Gedanken machen muss. @Akino Kiritani
Scheint nicht so wirklich zu klappen,
So viel schon ausprobiert aber, kann keine Lösung finden.
Folgendes, ich habe ein Kennzeichen das LS-8229 ist.
http://prntscr.com/oaywr6 - kriege immer den VID Wert returnt (den falschen VID Wert)
(plate[] ist ein inputtext und dieser wird in einem string gesetzt)
Stimmt, ich habe ganz vergessen, dass du natürlich auch darüber einen IsNull Check einfügen musst, da sonst immer FahrzeugID 1 richtig ist, da [wiki]strcmp[/wiki] bei Null Strings auch 0 zurückgibt.
kriege immer den VID Wert returnt.
Schreib das alles mal so: