So wie du es umgesetzt hast wird der Code exakt Array-Größe von AHCarSpawn1 * Array-Größe von AutohausCar1 ausgeführt. Du kannst auch dir die äußere Schleife sparen und einfach eine Variable pro Schleifendurchgang +1 rechnen und, sofern die Variable >= sizeof(AHCarSpawn1) ist, sie wieder auf 0 setzen. Ist halt die Frage, wie die beiden Arrays in Beziehung stehen?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Danke, habs!
Ich mache nichts anders als bei dem anderen Array, trotzdem gibt er mir Array index out of bounds waurm?
http://prntscr.com/nzih3w
Der Fehler tritt auf seitdem ich das mit BizTextFarben drin habe.
Vorher ging es ohne, aber ich habe ja nichts anders gemacht.Cstock UpdateBizInfos() { new string[228]; for(new b;b<sizeof(bInfo);b++) { format(string, sizeof(string), "%s, %s",BizTextFarbe[bInfo[b][biztextfarbe]],BizType[bInfo[b][biztype]] ); CreateDynamic3DTextLabel(string,GREEN,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ],20.0); } return 1; }
Cforward BizLaden(); public BizLaden() { new rows; cache_get_row_count(rows); if(rows==0) return print("(*)Geschäfte konnten nicht geladen werden."); for(new bizid = 0; bizid < sizeof(bInfo); bizid++) { cache_get_value_name_int(bizid,"biztype",bInfo[bizid][biztype]); cache_get_value_name_int(bizid,"bizcolor",bInfo[bizid][biztextfarbe]);
-
BizTextFarbe[bInfo[b][biztextfarbe]]
Printe dir halt mal, was der Wert von bInfo[b][biztextfarbe] so ist
-
http://prntscr.com/nzj9xc
Also das markierte sollte auch eine andere Farbe haben, deswegen ist da auch dieses komische Symbol, weil er die Farbe nicht in der Konsole anzeigt.
Der Rest ist FFFFFF.
Das ist richtig komisch irgendwie, ich hab ja alles gleich gemacht, eigentlich sollte ja nichts falsch sein. -
Sicher, dass du meinen Post richtig gelesen hast und bInfo[b][biztextfarbe] geprintet hast?
Denn hier verwendest du ja: BizTextFarbe[bInfo[b][biztextfarbe]]
Wie willst du denn einen String als Index verwenden?
Bekommst du da keine Fehler? wtf
-
Wenn ich den Code richtig verstehe beinhaltet biztextfarbe den jeweiligen Index für das Array BizTextFarbe. Der Fehler entscheidet, weil entweder das Array BizTextFarbe oder das Array BizType eine Größe von 4 hat (Elemente 0-3) und du versuchst, auf das Element 4 bzw. den Index 4 zuzugreifen. Da 4 außerhalb des Spektrums 0-3 ist, kommt es zu dem Fehler. Ergo: (Vermutlich) falschen Index in der DB eingetragen.
-
Ja ich habe mir nur bInfo[b][biztextfarbe] printen lassen.
Lasse ich mir jetzt BizTextFarbe[bInfo[b][biztextfarbe]] printen, erscheint das richtige http://prntscr.com/nzk7tn.
Also alles richtig jetzt, nur der Fehler ist immer noch da, es werden keine 3DTextLabels erstellt und der Fehler in der Konsole.Ist doch richtig, dass ich dann %s benutzte um die Farbe zu nehmen.
Kleine Frage dazu, ich habe eine Float:TurnOnTime, jetzt will ich den Wert in einem Timer setzen, kann aber nur Integer nehmen und keine Floats, was soll ich tun?
-
Bzgl. Timer: [wiki]floatround[/wiki]
Dann scheint das ein Indiz dafür zu sein, dass bei BizType[bInfo[b][biztype]] der Fehler liegt. Sicher, dass du dort nicht auf einen Index zu greifen willst, der fernab der möglichen Indizies ist?
-
-
Hallo, wie kann ich es einfacher schreiben und wie sortiere ich die Adminnamen nach Ränge ?
Das z.B.Projektleiter
Admin
u.s.w steht und nicht wieAdmin
Projektleiter
Adminsteht.
Und wenn keiner online ist soll stehen das derzeit keine Teammitglieder online sind.CMD:admins(playerid){if(!Spieler[playerid][pLoggedIn]) return 1;new string[256];SendClientMessage(playerid,Gruen, "Admins Online:");for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) {if(Spieler[i][pLoggedIn]) {if(Spieler[i][pAdmin] > 0) {format(string,256,"%s: %s",GetPlayerAdminName(i),Spieler[i][pName]);SendClientMessage(playerid,Grau,string);}}}return 1;}
-
-
Habe einen massiven Überblicksfehler.
So kauft man ein Fahrzeug:
http://prntscr.com/nzn3ksKämpfe seit einer Stunde mit dem Fehler. Alles funktioniert, nur irgendwas scheint nicht richtig zu sein.
C
Alles anzeigenif(dialogid == DIALOG_X) { if(response) { for(new p; p < sizeof(AutohausCar1); p++) { for(new i; i < sizeof(AHVehTypes1); i++) { new vid = GetPlayerVehicleID(playerid); if(GetVehicleModel(vid) == AHVehTypes1[i][AHVmodel1]) if(vid == AutohausCar1[p]) { for(new d = 0; d < sizeof(PCar[]); d++) { break; } } } } } }
Es gibt 6 Fahrzeuge
Hier sind Insgesamt 9 Einträge
Alternativ zu der Schleife AutohausCar1 kann ich das benutzten, da es = viele Spawns sind, wo Autos hin müssen.
Allerdings crasht der Server hierbei und hinterlässt nix.Und so klappt es aber er spuckt mir in der Konsole so etwas aus
6 Einträge
Codestock const Float:AHParkSpawn1[][] = //Spawn nach Kauf { {782.6870,-1340.3259,13.6310, 90.0}, //.... };
-
Hi. hab grade mit einen Kollegen gemappt und wollen die Map in sein FS packen mit dem beweglichen Tor, nun bekomm ich diese Meldung beim Compilen:
C:\Users\Flo\Desktop\Mapping+\filterscripts\Tor.pwn(251) : error 010: invalid function or declaration
C:\Users\Flo\Desktop\Mapping\filterscripts\Tor.pwn(675) : warning 203: symbol is never used: "g_Object"
C:\Users\Flo\Desktop\Mapping\filterscripts\Tor.pwn(675) : warning 203: symbol is never used: "g_Vehicle"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
Wird hier ein spezielles Include benötigt?
Bitte um Hilfe
-
Nein, du nutzt einfach die Variable g_Object nicht in deinem Code.
Vermutlich ist es als new g_Object; definiert, es wird aber nirgendwo im Quellcode genutzt. -
Nein, du nutzt einfach die Variable g_Object nicht in deinem Code.
Vermutlich ist es als new g_Object; definiert, es wird aber nirgendwo im Quellcode genutzt.
Was meinst du mit Quellcode?Ein Objekt sieht so aus:
g_Object[0] = CreateObject(19445, -2262.6679, 553.4104, 35.8698, 0.0000, 0.0000, 90.0000); //wall085
SetObjectMaterial(g_Object[0], 0, 10442, "graveyard_sfs", "ws_graveydfence", 0xFFFFFFFF); -
Wie ist g_Object im Code definiert?
-
-
Schreib es einfach:
new stock g_Object[245];
//und
new stock g_Vehicle[1];Aber ich glaube der Fehler entsteht durch eine Falsche Nutzung von Makros im Filterskript.
Da du vermutlich das Standard-Skript nutzt.
Kannst es mir ja mal per PN schicken, dann korrigiere ich dir das (damit du die Map nicht preisgeben musst. Der Fehler liegt aber für alle, vermutlich an den #defines)
-
Oke, ich lasse es dir eben zukommen
-
Hey, ich habe den "stay with the world boundaries" Fehler.
Ich habe keine Errors/Warnings und mein OnPlayerSpawn sieht wie folgt aus:
[pwn=OnPlayerSpawn]public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pSpawntyp] == 1){
SetPlayerPos(playerid, fInfo[PlayerInfo[playerid][pFraction]][fSpawn_X], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_Y], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_Z]);
SetPlayerFacingAngle(playerid, fInfo[PlayerInfo[playerid][pFraction]][fSpawn_R]);
}else{
//SetPlayerPos(playerid, -2446.1797,2512.5159,15.7003);
//SetPlayerFacingAngle(playerid, 279.0161);
SetPlayerPos(playerid, 0.0,0.0,0.0);
SetPlayerFacingAngle(playerid, 0.0);
}
if(PlayerInfo[playerid][pPremium] == 1){
GivePlayerWeapon(playerid, 24, 50);
}
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
return 1;
}[/pwn]Wobei man sagen muss das mein Spawntyp = 0 ist.
Ich hoffe ihr habt Ideen. -
Musst SetSpawnInfo oder AddPlayerClass nutzen
-