Angepinnt [SAMMELTHREAD] Kleine Scripting Fragen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

  • ne sagt nichts, alles normal

    //Edit zum 3. Mal :D

    Fehler gefunden, ich hatte kein Enum benutzt.

    Warum wiederholt er das ganze richtig oft? (soll nur alle AHCarSpawn1 mit Fahrzeuge Füllen (6) Stück)Komme mit Doppelschleifen noch nicht so klar... Oder soll man es nicht so machen
    prntscr.com/nzds61

    C-Quellcode

    1. for(new i; i<sizeof(AHCarSpawn1); i++)
    2. {
    3. for(new icar; icar<sizeof(AutohausCar1); icar++)
    4. {
    5. new FahrzeugID;
    6. new zufall = random(1000);
    7. if(zufall < 10) FahrzeugID = 0;
    8. else if(zufall <= 10 && zufall < 20) FahrzeugID = 1;
    9. else if(zufall >= 21) FahrzeugID = random(7) + 2;
    10. new Color1 = random(127);
    11. new Color2 = random(127);
    12. AutohausCar1[icar] = CreateVehicle(AHVehTypes1[FahrzeugID][Model], AHCarSpawn1[i][0], AHCarSpawn1[i][1], AHCarSpawn1[i][2], AHCarSpawn1[i][3], Color1, Color2, 300);
    13. printf("%d (%d), %d , %f, %f, %f, %f", AutohausCar1[icar],icar,AHVehTypes1[FahrzeugID][Model],AHCarSpawn1[i][0],AHCarSpawn1[i][1],AHCarSpawn1[i][2],AHCarSpawn1[i][0]);
    14. }
    15. }
    Alles anzeigen

    Ich weiß, dass ich weiß, dass ich nichts weiß.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von BrightLeaN ()

  • @BrightLeaN:

    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?
  • Danke, habs!
    Ich mache nichts anders als bei dem anderen Array, trotzdem gibt er mir Array index out of bounds waurm?
    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.

    C-Quellcode

    1. stock const BizType[][25]=
    2. {
    3. "-",
    4. "24/7", //1
    5. "Ammunation" //2
    6. //...
    7. },


    C-Quellcode

    1. BizTextFarbe[][25]=
    2. {
    3. "{FFFFFF}",
    4. "{FAFAFA}"
    5. },

    C-Quellcode

    1. stock UpdateBizInfos()
    2. {
    3. new string[228];
    4. for(new b;b<sizeof(bInfo);b++)
    5. {
    6. format(string, sizeof(string), "%s, %s",BizTextFarbe[bInfo[b][biztextfarbe]],BizType[bInfo[b][biztype]] );
    7. CreateDynamic3DTextLabel(string,GREEN,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ],20.0);
    8. }
    9. return 1;
    10. }

    C-Quellcode

    1. forward BizLaden();
    2. public BizLaden()
    3. {
    4. new rows;
    5. cache_get_row_count(rows);
    6. if(rows==0) return print("(*)Geschäfte konnten nicht geladen werden.");
    7. for(new bizid = 0; bizid < sizeof(bInfo); bizid++)
    8. {
    9. cache_get_value_name_int(bizid,"biztype",bInfo[bizid][biztype]);
    10. cache_get_value_name_int(bizid,"bizcolor",bInfo[bizid][biztextfarbe]);

    Quellcode

    1. enum bizinfo{
    2. db_bid,
    3. biztype,
    4. biztextfarbe,

    Ich weiß, dass ich weiß, dass ich nichts weiß.
  • 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


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/
  • 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[biztextfarbe] printen lassen.

    Lasse ich mir jetzt BizTextFarbe[bInfo[b][biztextfarbe]] printen, erscheint das richtige 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?

    Ich weiß, dass ich weiß, dass ich nichts weiß.

    Beitrag von hav0K~ ()

    Dieser Beitrag wurde von Eddy aus folgendem Grund gelöscht: Spam/ ziemlich unnötig findest nicht? ().
  • 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 wie

    Admin
    Projektleiter
    Admin

    steht.
    Und wenn keiner online ist soll stehen das derzeit keine Teammitglieder online sind.


    PAWN-Quellcode

    1. 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;}
    Mit freundlichen Grüßen
    ArcadioN
  • Habe einen massiven Überblicksfehler.

    So kauft man ein Fahrzeug:
    prntscr.com/nzn3ks

    Kämpfe seit einer Stunde mit dem Fehler. Alles funktioniert, nur irgendwas scheint nicht richtig zu sein.

    C-Quellcode

    1. if(dialogid == DIALOG_X)
    2. {
    3. if(response)
    4. {
    5. for(new p; p < sizeof(AutohausCar1); p++)
    6. {
    7. for(new i; i < sizeof(AHVehTypes1); i++)
    8. {
    9. new vid = GetPlayerVehicleID(playerid);
    10. if(GetVehicleModel(vid) == AHVehTypes1[i][AHVmodel1])
    11. if(vid == AutohausCar1[p])
    12. {
    13. for(new d = 0; d < sizeof(PCar[]); d++)
    14. {
    15. break;
    16. }
    17. }
    18. }
    19. }
    20. }
    21. }
    Alles anzeigen


    Es gibt 6 Fahrzeuge

    C-Quellcode

    1. new AutohausCar1[6];
    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

    Quellcode

    1. stock const Float:AHParkSpawn1[][] = //Spawn nach Kauf
    2. {
    3. {782.6870,-1340.3259,13.6310, 90.0},
    4. //....
    5. };

    Quellcode

    1. stock const AHVehTypes1[][AHType1] = //Spawn der Fahrzeuge
    2. {
    3. {"X","X",411,1,0,0,0,0.0,0.0},
    4. //...
    5. };

    Ich weiß, dass ich weiß, dass ich nichts weiß.
  • 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:

    PAWN-Quellcode

    1. C:\Users\Flo\Desktop\Mapping+\filterscripts\Tor.pwn(251) : error 010: invalid function or declaration
    2. C:\Users\Flo\Desktop\Mapping\filterscripts\Tor.pwn(675) : warning 203: symbol is never used: "g_Object"
    3. C:\Users\Flo\Desktop\Mapping\filterscripts\Tor.pwn(675) : warning 203: symbol is never used: "g_Vehicle"
    4. Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
    5. 1 Error.


    Wird hier ein spezielles Include benötigt?

    Bitte um Hilfe
  • wcf schrieb:

    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:

    PAWN-Quellcode

    1. g_Object[0] = CreateObject(19445, -2262.6679, 553.4104, 35.8698, 0.0000, 0.0000, 90.0000); //wall085
    2. SetObjectMaterial(g_Object[0], 0, 10442, "graveyard_sfs", "ws_graveydfence", 0xFFFFFFFF);
  • Schreib es einfach:


    PAWN-Quellcode

    1. new stock g_Object[245];
    2. //und
    3. 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)


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. X/