[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
  • Naja, du musst lediglich die Parameter, die du bei dem Command übergibst, in eine Datenbank oder File eintragen lassen. Genau so, wie bei anderen Speichersystemen.


    Dann musst du die Koordinaten aus der DB bzw File laden und bei AddPlayerClass (oder SetSpawnInfo) einfügen.

  • Beitrag von Pascal. ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Gibt es etwas, das aufgerufen wird, wenn ein Fahrzeug einen Anhänger ankuppelt?


    Nein, aber du könntest es per Timer und http://wiki.sa-mp.com/wiki/IsTrailerAttachedToVehicle lösen.
    Wenn ein Fahrzeug dran hängt, dann http://wiki.sa-mp.com/wiki/GetVehicleTrailer nutzen, dann hast du sowohl Anhänger als auch das Fahrzeug.
    Dann eine Array-Variable auf 1 setzen, damit es nicht ständig aufgerufen wird. Und wenn das Fahrzeug keinen Trailer mehr hat dann setzt du die Variable wieder auf 0.

  • Habe lange nix mehr an meinem Script gemacht und bekomme diese 8 Warnings..



    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(282) : warning 235: public function lacks forward declaration (symbol "OnRconLoginAttempt")
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(292) : warning 235: public function lacks forward declaration (symbol "OnPlayerStreamIn")
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(297) : warning 235: public function lacks forward declaration (symbol "OnPlayerStreamOut")
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(302) : warning 235: public function lacks forward declaration (symbol "OnVehicleStreamIn")
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(307) : warning 235: public function lacks forward declaration (symbol "OnVehicleStreamOut")
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(312) : warning 235: public function lacks forward declaration (symbol "OnDialogResponse")
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(317) : warning 235: public function lacks forward declaration (symbol "OnPlayerClickPlayer")
    C:\Users\Dave\Desktop\Texture-Studio-master\gamemodes\LnD.pwn(323) : warning 235: public function lacks forward declaration (symbol "OnPlayerTakeDamage")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    8 Warnings.


    So sieht das im Script ab der Zeile aus:



    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    return 1;
    }


    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }


    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }



    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
    {
    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Scheinbar sind die Includes, die du verwendest, etwas alt.


    Die Fehlermeldung kommt idR nur, wenn forwards zu den publics fehlen.
    Die "public"s wurden zu 0.3a Zeiten hinzugefügt - solltest mal schauen was da nicht stimmt

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ich bin mir ziehmlich sicher, dass du einen hast.
    Ansonsten würdest du nicht diese Fehlermeldungen bekommen, sondern ganz andere.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ich bin mir ziehmlich sicher, dass du einen hast.
    Ansonsten würdest du nicht diese Fehlermeldungen bekommen, sondern ganz andere.


    Nope leider nicht, jedenfalls nicht in meinem Ordner.


    Habe da mal jetzt einen eingefügt, doch das ändert nichts.
    Im Ordner sind dann aber auch nur die Standart Includes drin.


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Warum zeigt er mir die Nachricht nicht ?



    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new j=0; j<11; j++) GetPlayerWeaponData(playerid, j, Weapons[playerid][j], Ammo[playerid][j]);
    ResetPlayerWeapons(playerid);
    new vid = GetPlayerVehicleID(playerid);
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
    if(engine == VEHICLE_PARAMS_OFF)
    {
    SendClientMessage(playerid,COLOR_PURPLE2,"Der Motor ist Ausgeschaltet, drücke die STRG Taste um den Motor zu starten.");
    }
    }


    #edit

  • Dann schreibe es mal so, was wird geprintet?
    printf("newstate = %d / playerid: %d", newstate, playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    printf("in");
    for(new j=0; j<11; j++) GetPlayerWeaponData(playerid, j, Weapons[playerid][j], Ammo[playerid][j]);
    ResetPlayerWeapons(playerid);
    new vid = GetPlayerVehicleID(playerid);
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
    printf("engine: %d", engine);
    if(engine == VEHICLE_PARAMS_OFF)
    {
    SendClientMessage(playerid,COLOR_PURPLE2,"Der Motor ist Ausgeschaltet, drücke die STRG Taste um den Motor zu starten.");
    }
    }

  • Reicht das ?
    weil da steht viel drin :D


    Spoiler anzeigen


    Function OnPlayerStateChange(playerid, newstate, oldstate)
    {
    FRAC_OnPlayerStateChange(playerid, newstate, oldstate);
    new string[256];

    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
    for(new p=0;p<MAX_PLAYERS;p++)
    {
    if(GetPlayerVehicleSeat(playerid) == 0 && GetPlayerVehicleID(playerid) == acar [p])
    {
    if(PlayerInfo[playerid][pAdmin] == 0 && PlayerInfo[playerid][pSupporter] == 0)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid, COLOR_WHITE, "Du kannst keine Supporter Fahrzeuge fahren.");
    }
    }
    }
    if(IsABike(GetPlayerVehicleID(playerid)))
    {
    switch(GetPlayerSkin(playerid))
    {
    #define SPAO{%0,%1,%2,%3,%4,%5} SetPlayerAttachedObject(playerid, SLOT, 18645, 2, (%0), (%1), (%2), (%3), (%4), (%5));
    case 0, 65, 74, 149, 208, 273: SPAO{0.070000, 0.000000, 0.000000, 88.000000, 75.000000, 0.000000}
    case 1..6, 8, 14, 16, 22, 27, 29, 33, 41..49, 82..84, 86, 87, 119, 289: SPAO{0.070000, 0.000000, 0.000000, 88.000000, 77.000000, 0.000000}
    case 7, 10: SPAO{0.090000, 0.019999, 0.000000, 88.000000, 90.000000, 0.000000}
    case 9: SPAO{0.059999, 0.019999, 0.000000, 88.000000, 90.000000, 0.000000}
    case 11..13: SPAO{0.070000, 0.019999, 0.000000, 88.000000, 90.000000, 0.000000}
    case 15: SPAO{0.059999, 0.000000, 0.000000, 88.000000, 82.000000, 0.000000}
    case 17..21: SPAO{0.059999, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 23..26, 28, 30..32, 34..39, 57, 58, 98, 99, 104..118, 120..131: SPAO{0.079999, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 40: SPAO{0.050000, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 50, 100..103, 148, 150..189, 222: SPAO{0.070000, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 51..54: SPAO{0.100000, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 55, 56, 63, 64, 66..73, 75, 76, 78..81, 133..143, 147, 190..207, 209..219, 221, 247..272, 274..288, 290..293: SPAO{0.070000, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 59..62: SPAO{0.079999, 0.029999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 77: SPAO{0.059999, 0.019999, 0.000000, 87.000000, 82.000000, 0.000000}
    case 85, 88, 89: SPAO{0.070000, 0.039999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 90..97: SPAO{0.050000, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 132: SPAO{0.000000, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 144..146: SPAO{0.090000, 0.000000, 0.000000, 88.000000, 82.000000, 0.000000}
    case 220: SPAO{0.029999, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 223, 246: SPAO{0.070000, 0.050000, 0.000000, 88.000000, 82.000000, 0.000000}
    case 224..245: SPAO{0.070000, 0.029999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 294: SPAO{0.070000, 0.019999, 0.000000, 91.000000, 84.000000, 0.000000}
    case 295: SPAO{0.050000, 0.019998, 0.000000, 86.000000, 82.000000, 0.000000}
    case 296..298: SPAO{0.064999, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
    case 299: SPAO{0.064998, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
    }
    }
    }
    else
    {
    RemovePlayerAttachedObject(playerid, SLOT);
    }
    if(oldstate == PLAYER_STATE_ONFOOT && (newstate == PLAYER_STATE_DRIVER))
    {
    new SName[MAX_PLAYER_NAME]; GetPlayerName(playerid,SName,MAX_PLAYER_NAME);
    SetPlayerArmedWeapon(playerid,0);
    if(EnterLockedV[playerid] <= 0)return 1;
    if(EnterLockedV[playerid] == GetPlayerVehicleID(playerid))return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Enter locked Vehicle!",SName);
    }
    if((newstate == PLAYER_STATE_ONFOOT) && ((oldstate == PLAYER_STATE_DRIVER)))
    {
    for(new j=0; j<11; j++) GivePlayerWeaponEx(playerid, Weapons[playerid][j], Ammo[playerid][j]);
    return 1;
    }
    printf("newstate = %d / playerid: %d", newstate, playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    printf("in");
    for(new j=0; j<11; j++) GetPlayerWeaponData(playerid, j, Weapons[playerid][j], Ammo[playerid][j]);
    ResetPlayerWeapons(playerid);
    new vid = GetPlayerVehicleID(playerid);
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
    printf("engine: %d", engine);
    if(engine == VEHICLE_PARAMS_OFF)
    {
    SendClientMessage(playerid,COLOR_PURPLE2,"Der Motor ist Ausgeschaltet, drücke die STRG Taste um den Motor zu starten.");
    }
    }
    if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
    {
    new Weap[2];
    GetPlayerWeaponData(playerid, 4, Weap[0], Weap[1]);
    SetPlayerArmedWeapon(playerid, Weap[0]);
    }
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 525)
    {
    if(PlayerInfo[playerid][pMember] == 24 || PlayerInfo[playerid][pLeader] == 24)
    {
    IsTowTrucker[playerid]=1;
    TowTruckers++;
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"*Nutze die Strg Taste, um ein Auto abzuschleppen.");
    }
    }
    }
    else if(TowTruckers > 0 && newstate == PLAYER_STATE_DRIVER)
    {
    SendClientMessage(playerid, COLOR_YELLOW4, "Wenn Probleme auftreten ruf den Ordnungstienst mit /noamt.");
    }
    else if(newstate == PLAYER_STATE_ONFOOT &&(IsTowTrucker[playerid] == 1))
    {
    IsTowTrucker[playerid] = 0;
    TowTruckers--;
    }
    else if(newstate == PLAYER_STATE_PASSENGER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 417)
    {
    SetPlayerPosEx(playerid, 1261.269,-803.480,1185.830);
    SetPlayerFacingAngle(playerid, 0);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid, 1);
    InLevi[playerid] = GetPlayerVehicleID(playerid);
    }
    else if(newstate == PLAYER_STATE_PASSENGER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 548)
    {
    SetPlayerPosEx(playerid, 89.773613, 2027.749756, 2865.647705);
    SetPlayerFacingAngle(playerid, 0);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid, 0);
    InCargo[playerid] = GetPlayerVehicleID(playerid);
    }
    else if(newstate == PLAYER_STATE_PASSENGER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 427 && IsACop(playerid))
    {
    SetPlayerPosEx(playerid, 260.4671,118.6456,1029.7023);
    SetPlayerFacingAngle(playerid, 178.6620);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid, 3);
    InEnfo[playerid] = GetPlayerVehicleID(playerid);
    }
    else if(newstate == PLAYER_STATE_PASSENGER && PlayerInfo[playerid][pJailed] > 0 && !IsAPlane(GetPlayerVehicleID(playerid)))
    {

    FreezePlayer(playerid);
    UnFreezePlayer(playerid);
    }

  • Ich weiß nicht was das andere Zeug alles macht, und ob da irgendein return ausgeführt wird, wird wohl so sein.
    Schreibe deinen Code mal über diese Zeile:
    //HIER HIN
    FRAC_OnPlayerStateChange(playerid, newstate, oldstate);


    Geht es dann?
    Wenn nein, was sagt der Log?