[SAMMELTHREAD] Kleine Scripting Fragen

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
  • Ufff, dann kannst du das nicht so machen, da ja accountid immer gleich wäre pro Spieler (also hätten 4 Charaktere die selbe accountid jeweils).

    Bei character_pos beziehst du dich auf die accountid, was ja aber nicht mehr funktioniert, da wir nun 4x die Gleiche accountid hätten.


    Da muss der Primary Key z.B. aus 2 Spalten wie accountid & slot bestehen, damit das eindeutig referenzierbar wäre.

    Du meinst jeder der 4 Characktere die selbe Accountid? Aktuell hat in meiner DB jeder Charackter eines Accounts die selbe Accountid, heißt ein Account z. B. (Allrounder18) = 4 Charactere z. B. (Luis_Bauer, Susi_Saier, ... , ...).

  • Code
    gamemodes\ilovedm.pwn(1939) : error 029: invalid expression, assumed zero
    gamemodes\ilovedm.pwn(1939) : warning 215: expression has no effect
    gamemodes\ilovedm.pwn(1939) : error 001: expected token: ";", but found ")"
    gamemodes\ilovedm.pwn(1939) : error 029: invalid expression, assumed zero
    gamemodes\ilovedm.pwn(1939) : fatal error 107: too many error messages on one line
    
    Compilation aborted.Pawn compiler 3.2.3664              Copyright (c) 1997-2006, ITB CompuPhase
    
    
    4 Errors.

    Error wurde Markiert! (( ERROR ))


    Kann mir bitte wer helfen?


    Maho

    Kaliber

    Jeffry

  • Klammerfehler wird angezeigt, Schon alles versucht passiert nichts

    Boah dann fix es


  • Tja, dann haben wir alles getan.

    Da du selbst nichts machen möchtest, wirst du wohl oder übel damit leben müssen.


    Tut mir leid.


    Boah dann fix es


    Hab es gefixt

  • Moin,


    wenn der Spieler stirbt, soll er nach dem Spawn wieder an der gleichen Stelle spawnen.


    Nur irgendwie wird er immer an die Stelle gesetzt, wo er bei OnPlayerRequestClass standartmäßig steht.



    Code
    //OnPlayerDeath
    PlayerInfo[playerid][pDeaths]++;
    GetPlayerPos(playerid,PlayerInfo[playerid][DeadPosX],PlayerInfo[playerid][DeadPosY],PlayerInfo[playerid][DeadPosZ]);
    MapAndreas_FindZ_For2DCoord(PlayerInfo[playerid][DeadPosX],PlayerInfo[playerid][DeadPosY],PlayerInfo[playerid][DeadPosZ]); // if he is in a plane or smth
    SendDeathMessage(killerid, playerid, reason);


    (Ja pDead wird auf true gesetzt)






    Hätte jemand ne Idee worans liegt?


    LG

  • Nur irgendwie wird er immer an die Stelle gesetzt, wo er bei OnPlayerRequest standartmäßig steht.

    Verwendest du evtl DeadPosX noch irgendwo anders? Bzw, dass sich das dann evtl überschreibt?

    ast2ufdyxkb1.png


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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Eventuell in ein paar Includes?


    Ansonsten printe es dir einfach mal bei OnPlayerDeath und OnPlayerSpawn die Variablen :)

    ast2ufdyxkb1.png


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

  • Code
    [20:04:17] OnPlayerDeath: pDeadPosX: -65.428703, pDeadPosY: -1359.864013, pDeadPosZ: 12.461299
    [20:04:17] OnPlayerSpawn: pDeadPosX: -65.428703, pDeadPosY: -1359.864013, pDeadPosZ: 11.420000




    Code
    //OnPlayerDeath
    
    PlayerInfo[playerid][pDeaths]++;
        GetPlayerPos(playerid,PlayerInfo[playerid][DeadPosX],PlayerInfo[playerid][DeadPosY],PlayerInfo[playerid][DeadPosZ]);
        printf("OnPlayerDeath: pDeadPosX: %f, pDeadPosY: %f, pDeadPosZ: %f",PlayerInfo[playerid][DeadPosX],PlayerInfo[playerid][DeadPosY],PlayerInfo[playerid][DeadPosZ]);
        MapAndreas_FindZ_For2DCoord(PlayerInfo[playerid][DeadPosX],PlayerInfo[playerid][DeadPosY],PlayerInfo[playerid][DeadPosZ]); // if he is in a plane or smth
        SendDeathMessage(killerid, playerid, reason);



    Sind identisch.


    Generell scheint irgendwas mit dem Spawnsystem nicht zu stimmen.



    https://i.imgur.com/dAKqDvL.mp4 ( Die Kamera fadet bspw nicht aus )



    Die Koordinaten wären dann hier:


    SuBAwDB.png

  • Das sieht für mich schon fast nach einem Syncro Problem aus...


    Kannst ja mal aus Spaß einen Leeren Gamemode schreiben, wo du das so verwendest und dann mal testest, wenn es da funktioniert, impliziert das ein Syncro Problem.


    Das kann entstehen, wenn zu viel unter OnPlayerUpdate ist oder wenn da return 0; zurückgegeben wird.



    //Edit:

    Evtl kannst sogar über das Profiler Plugin mal ermitteln, wie das bei deinem Server so ist.

    ast2ufdyxkb1.png


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

  • Habs mal auf nem leeren Game-Mode getestet, da ist es genau das gleiche.


    Wo ist denn dann der Fehler? Wie hättet ihr es gemacht?



    //Edit das mit der Position sollte nun gehen, hab das mit GetPlayerPos einfach


    bei meinem updater reingehauen.


    Nur das mit Fast-Respawn ist irgendwie seltsam, ich glaube die Ursache ist nicht behoben

  • Guten Morgen,


    ich hab nen kleines Problem.


    format(carname,sizeof(carname),"Tank: %.2f/%dL",VehicleInfo[vID][Tankmenge],FahrzeugInfo[mID-400][veh_Liter]);

    hier bei den -400 sagt der Compiler Array index out of Bounds.

    Ich habe new mID = GetVehicleModel(vID);.


    Wie bekomme ich den Fehler gefixt?


    Danke im Voraus.


    MfG


    Allrounder18

  • Etwas mehr Code wäre natürlich schön.


    Aber an sich besteht das Problem darin, dass mID 0 ist, bzw kein Spieler im Fahrzeug sich befindet, diesen Fall musst du abdecken.


    Kannst sowas darüber schreiben:


    C
    if(!mID) return 1;

    ast2ufdyxkb1.png


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

  • Hallo,


    ich finde hier den Fehler nicht, in einem anderen Script wo die selbe Funktion und der selbe Dialog drin sind kommt der Fehler nicht. Ich habe an den Funktionen nichts geändert.

    Code
    stock FormatNumber(geld, const szChar[] = ".")
    {
        new str[24],i;
        valstr(str,geld),i=(geld > 0) ? strlen(str)-3 : strlen(str)-4;
        for(; i>0; i-=3) strins(str,szChar,(geld > 0) ? i : i+1,sizeof(str));
        return str;
    }
    Code
    [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
    [debug]  Stack pointer (STK) is 0x4D7A24, heap pointer (HEA) is 0x4D7A1C
    [debug] AMX backtrace:
    [debug] #0 00020178 in FormatNumber (geld=0, szChar[]=@004a4640 ".") at C:\Users\Administrator\Desktop\Selfmade Roleplay\pawno\include\../include/core/allgemeines.inc:470
    [debug] #1 0003f1fc in dialoge (playerid=0, dialogid=56, response=1, listitem=0, inputtext[]=@004d7584 "R") at C:\Users\Administrator\Desktop\Selfmade Roleplay\pawno\include\../include/core/dialoge.inc:524
    [debug] #2 0005ba94 in public OnDialogResponse (playerid=0, dialogid=56, response=1, listitem=0, inputtext[]=@004d7584 "R") at selfmade.pwn:283

    470 ist new str[24],i;

    524 ist das format(string10

    283 ist aloge(playerid, dialogid, response, listitem, inputtext);


    Wo liegt der Fehler?


    Danke im Voraus.


    MfG


    Allrounder18

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen