[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
  • Warum kommt der User nicht ausm Knast raus und wie scripte ich das man ID angeben muss.
    if(strcmp("/arrest", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsACop(playerid))
    {
    if(OnDuty[playerid] != 1)
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Du bist nicht im Dienst!");
    return 1;
    }
    if(PlayerToPoint(6.0, playerid, 198.1741,158.6524,1003.0234) || PlayerToPoint(6.0, playerid, 268.5258,77.6269,1001.0391) || PlayerToPoint(6.0, playerid, 268.4561,84.9885,1001.0391) || PlayerToPoint(6.0, playerid, 321.8767,314.1259,999.1484))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_BENUTZETEXT, "Benutze: /arrest [Preis] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 1 || moneys > 200000) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Gefängnispreis kann nur zwischen $1 und $200000 liegen!"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_BENUTZETEXT, "Benutze: /arrest [Preis] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
    return 1;
    }
    new bail = strval(tmp);
    if(bail < 0 || bail > 1) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Kaution kann nur mit 0 oder 1 festgelegt werden!"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_BENUTZETEXT, "Benutze: /arrest [Preis] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
    return 1;
    }
    new bailprice = strval(tmp);
    if(bailprice < 0 || bailprice > 100000000) { SendClientMessage(playerid, COLOR_ERRORTEXT, " Gefängnis Kaution kann nur zwischen $0 und $100.000.000 liegen!"); return 1; }
    new suspect = GetClosestPlayer(playerid);
    if(IsPlayerConnected(suspect))
    {
    if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
    {
    GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(PlayerInfo[suspect][pWantedLevel] < 1)
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Der Spieler muss mindestens Wanted Level 1 haben!");
    return 1;
    }
    format(string, sizeof(string), "* Du hast %s eingesperrt!", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    new SteuerkasseMoney = moneys;
    GivePlayerMoneys(playerid, moneys/2);
    StuffInfo[sSteuerkasse] += SteuerkasseMoney/2;
    StuffInfo[sEinnahmen] += SteuerkasseMoney/2;
    format(string, sizeof(string), "Eingesperrt von %s ~n~fuer $%d", sendername, moneys);
    GameTextForPlayer(suspect, string, 5000, 5);
    ResetPlayerWeapon(suspect);
    if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7)
    {
    format(string, sizeof(string), "<< FBI Agent %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    }
    else if(PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14)
    {
    format(string, sizeof(string), "<< LSPD Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    }
    else if(PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pLeader] == 16)
    {
    format(string, sizeof(string), "<< SFPD Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    }
    else if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    format(string, sizeof(string), "<< LVPD Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    }
    if(PlayerToPoint(6.0, playerid, 198.1741,158.6524,1003.0234))
    {
    PlayerInfo[suspect][pJailed] = 1;
    SetPlayerInterior(suspect, 3);
    SetPlayerPos(suspect,198.8241,161.8588,1003.0300);
    }
    if(PlayerToPoint(6.0, playerid, 268.5258,77.6269,1001.0391) || PlayerToPoint(6.0, playerid, 268.4561,84.9885,1001.0391) || PlayerToPoint(6.0, playerid, 321.8767,314.1259,999.1484))
    {
    PlayerInfo[suspect][pJailed] = 3;
    SetPlayerInterior(suspect, 6);
    new zufall = random(3);
    if(zufall == 1)
    {
    SetPlayerPos(suspect, 264.3521,82.2144,1001.0391);
    }
    else if(zufall == 2)
    {
    SetPlayerPos(suspect, 264.1788,86.7012,1001.0391);
    }
    else
    {
    SetPlayerPos(suspect, 264.7485,77.6824,1001.0391);
    }
    PlayerInfo[suspect][pLocal] = -1;
    }
    PlayerInfo[suspect][pJailTime] = PlayerInfo[suspect][pWantedLevel]* 3 * 60;
    if(bail == 1)
    {
    JailPrice[suspect] = bailprice;
    format(string, sizeof(string), "Du wurdest für %d Minuten eingesperrt. Kaution: $%d", PlayerInfo[suspect][pJailTime]/60, JailPrice[suspect]);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    }
    else
    {
    JailPrice[suspect] = 0;
    format(string, sizeof(string), "Du wurdest für %d Minuten eingesperrt. Kaution: Unmöglich", PlayerInfo[suspect][pJailTime]/60);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    }
    SetPlayerFree(suspect, playerid, string, 0);
    PlayerInfo[suspect][pArrested] += 1;
    PlayerInfo[suspect][pWantedLevel] = 0;
    WantLawyer[suspect] = 1;
    format(string,sizeof(string),"%s hat den Verdächtigen %s eingesperrt", sendername, giveplayer);
    EnterToLog("arrest",string);
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Niemand ist in deiner Nähe den du einsperren kannst !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Du bist nicht in der Nähe der Zellen !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Du bist kein Polizist / FBI Agent Soldier !");
    return 1;
    }
    }
    return 1;
    }

  • Meinst du das Leben unbegrenzt Allgemein setzen oder dann wenn er nur unter Wasser ist?


    Nur wenn er im Wasser ist, bzw taucht. Du kannst das über den Animations Index herausfinden.
    Hier ein Beispiel:
    http://forum.sa-mp.com/showthread.php?t=400049


    Und wenn er nicht mehr im Wasser ist, die Health wieder zurück setzen, wie es zuvor war (natürlich zuvor gespeichert haben).

  • Beitrag von Apokrate ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Woran könnte es liegen, dass die Textdraws bei einem Restart langsam laden oder sich das Spiel aufhängt?
    Kann es auch am Server liegen?


    Da gibt es mehrere Möglichkeiten.


    Extrem schlechter Code der laggt.
    MySQL Verbindung zu einer externen Datenbank die keine Rückmeldung gibt.
    Schlechte CPU am Server (relativ unwahrscheinlich)


    Kann an allem möglichen liegen. Falls du Backups hast (wenn nicht rate ich es dir dringend von nun an mindestens ein mal am Tag zu machen!) prüfe, ob es dort auch ist. Wenn nicht, füge Stück für Stück deine Neuerungen wieder hinzu.

  • public OnPlayerDisconnect(playerid, reason)
    {
    new string[128];
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    new interior = dini_Int(Spielerdatei,"Interior");
    new vworld = dini_Int(Spielerdatei,"VWorld");
    GetPlayerInterior(interior);
    GetPlayerVirtualWorld(vworld);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    new vworld = dini_Int(Spielerdatei,"VWorld");
    SetPlayerInterior(playerid,interior);
    SetPlayerVirtualWorld(playerid,vworld);
    return 1;
    }


    Die Position nach OnPlayerDisconnect wird nicht gespeichert.
    Was ist unter OnPlayerSpawn oder Disconnect falsch?

  • PStar:
    public OnPlayerDisconnect(playerid, reason)
    {
    new string[128];
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    new interior = GetPlayerInterior(interior);
    new vworld = GetPlayerVirtualWorld(vworld);
    dini_IntSet(Spielerdatei,"Interior", interior);
    dini_IntSet(Spielerdatei,"VWorld", vworld);
    return 1;
    }



  • Geht leider komischerweise trotzdem nicht Werte bleiben auf 0.

  • public OnPlayerDisconnect(playerid, reason)
    {
    new string[128];
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    dini_IntSet(Spielerdatei,"Interior", GetPlayerInterior(interior));
    dini_IntSet(Spielerdatei,"VWorld", GetPlayerVirtualWorld(vworld));
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerInterior(playerid, dini_Int(Spielerdatei,"Interior"));
    SetPlayerVirtualWorld(playerid, dini_Int(Spielerdatei,"VWorld"));
    return 1;
    }


    Versuch es so.
    Du bist aber schon in einem Interior und einer anderen VirtualWorld, oder?



  • Jap bin ich, geht nicht.
    Vielleicht wird die Speicherung durch SpielerSpeichern oder LoadAccount beeinträchtigt?
    stock LoadAcoount(playerid)
    {
    new Spielerdatei[64],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPVarInt(playerid,"Interior",dini_Int(Spielerdatei,"Interior"));
    SetPVarInt(playerid,"VWorld",dini_Int(Spielerdatei,"VWorld"));
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new name[MAX_PLAYER_NAME];
    new Spielerdatei[64], datum[20], string[100];
    new jahr, monat, tag, stunde, minute, sekunde;
    GetPlayerName(playerid,name,sizeof(name));
    if(GetPVarInt(playerid, "loggedin") == 1)
    {
    dini_IntSet(Spielerdatei,"Interior",GetPVarInt(playerid,"Interior"));
    dini_IntSet(Spielerdatei,"VWorld",GetPVarInt(playerid,"VWorld"));
    return 1;
    }
    }

  • public OnPlayerDisconnect(playerid, reason)
    {
    new string[128];
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    new interior = GetPlayerInterior(interior);
    new vworld = GetPlayerVirtualWorld(vworld);
    dini_IntSet(Spielerdatei,"Interior", interior); print("Das Teil wird aufgerufen!1");
    dini_IntSet(Spielerdatei,"VWorld", vworld); print("Das Teil wird aufgerufen!2");
    return 1;
    }

  • PStar: Warum speicherst du es unter OnPlayerDisconnect und in der Funktion "SpielerSpeichern"?
    Einmal reicht doch vollkommen ;)


    stock SpielerSpeichern(playerid){
    new name[MAX_PLAYER_NAME],Spielerdatei[64], datum[20], string[100],jahr, monat, tag, stunde, minute, sekunde;
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(GetPVarInt(playerid, "loggedin")){
    dini_IntSet(Spielerdatei,"Interior",GetPVarInt(playerid,"Interior"));
    dini_IntSet(Spielerdatei,"VWorld",GetPVarInt(playerid,"VWorld"));
    //Alles speichern
    return 1;
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason){
    SpielerSpeichern(playerid);
    return 1;
    }

  • Hey,
    ich wollte mal etwas mit arrays arbeiten, und habe bemerkt das es nicht ganz so will wie ich.
    Es kommt immer dieser fehler "error 018: initialization data exceeds declared size"
    Was mache ich denn hier falsch, weil eigendlich sollte er mir ja nun den Namen vom 2. eingetragenen fahrzeug geben..

    Spoiler anzeigen


    //Anwendung
    printf("%s",VehicleInfo[1][0]);

    Spoiler anzeigen
    //Deklarierung
    new VehicleInfo[212][2] =
    {
    {"Landstalker",Diesel},
    {"Bravura",Diesel},
    {"Buffalo",Diesel},
    {"Linerunner",Diesel},
    {"Perrenial",Diesel},
    {"Sentinel",Diesel},
    {"Dumper",Diesel},
    {"Firetruck",Diesel},
    {"Trashmaster",Diesel},
    {"Stretch",Diesel},
    {"Manana",Diesel},
    {"Infernus",Diesel},
    {"Voodoo",Diesel},
    {"Pony",Diesel},
    {"Mule",Diesel},
    {"Cheetah",Diesel},
    {"Ambulance",Diesel},
    {"Leviathan",Diesel},
    {"Moonbeam",Diesel},
    {"Esperanto",Diesel},
    {"Taxi",Diesel},
    {"Washington",Diesel},
    {"Bobcat",Diesel},
    {"Mr Whoopee",Diesel},
    {"BF Injection",Diesel},
    {"Hunter",Diesel},
    {"Premier",Diesel},
    {"Enforcer",Diesel},
    {"Securicar",Diesel},
    {"Banshee",Diesel},
    {"Predator",Diesel},
    {"Bus",Diesel},
    {"Rhino",Diesel},
    {"Barracks",Diesel},
    {"Hotknife",Diesel},
    {"Trailer 1",Diesel},
    {"Previon",Diesel},
    {"Coach",Diesel},
    {"Cabbie",Diesel},
    {"Stallion",Diesel},
    {"Rumpo",Diesel},
    {"RC Bandit",Diesel},
    {"Romero",Diesel},
    {"Packer",Diesel},
    {"Monster",Diesel},
    {"Admiral",Diesel},
    {"Squalo",Diesel},
    {"Seasparrow",Diesel},
    {"Pizzaboy",Diesel},
    {"Tram",Diesel},
    {"Trailer 2",Diesel},
    {"Turismo",Diesel},
    {"Speeder",Diesel},
    {"Reefer",Diesel},
    {"Tropic",Diesel},
    {"Flatbed",Diesel},
    {"Yankee",Diesel},
    {"Caddy",Diesel},
    {"Solair",Diesel},
    {"Berkley's RC Van",Diesel},
    {"Skimmer",Diesel},
    {"PCJ-600",Diesel},
    {"Faggio",Diesel},
    {"Freeway",Diesel},
    {"RC Baron",Diesel},
    {"RC Raider",Diesel},
    {"Glendale",Diesel},
    {"Oceanic",Diesel},
    {"Sanchez",Diesel},
    {"Sparrow",Diesel},
    {"Patriot",Diesel},
    {"Quad",Diesel},
    {"Coastguard",Diesel},
    {"Dinghy",Diesel},
    {"Hermes",Diesel},
    {"Sabre",Diesel},
    {"Rustler",Diesel},
    {"ZR-350",Diesel},
    {"Walton",Diesel},
    {"Regina",Diesel},
    {"Comet",Diesel},
    {"BMX",Diesel},
    {"Burrito",Diesel},
    {"Camper",Diesel},
    {"Marquis",Diesel},
    {"Baggage",Diesel},
    {"Dozer",Diesel},
    {"Maverick",Diesel},
    {"News Chopper",Diesel},
    {"Rancher",Diesel},
    {"FBI Rancher",Diesel},
    {"Virgo",Diesel},
    {"Greenwood",Diesel},
    {"Jetmax",Diesel},
    {"Hotring",Diesel},
    {"Sandking",Diesel},
    {"Blista Compact",Diesel},
    {"Police Maverick",Diesel},
    {"Boxville",Diesel},
    {"Benson",Diesel},
    {"Mesa",Diesel},
    {"RC Goblin",Diesel},
    {"Hotring Racer A",Diesel},
    {"Hotring Racer B",Diesel},
    {"Bloodring Banger",Diesel},
    {"Rancher",Diesel},
    {"Super GT",Diesel},
    {"Elegant",Diesel},
    {"Journey",Diesel},
    {"Bike",Diesel},
    {"Mountain Bike",Diesel},
    {"Beagle",Diesel},
    {"Cropdust",Diesel},
    {"Stunt",Diesel},
    {"Tanker",Diesel},
    {"Roadtrain",Diesel},
    {"Nebula",Diesel},
    {"Majestic",Diesel},
    {"Buccaneer",Diesel},
    {"Shamal",Diesel},
    {"Hydra",Diesel},
    {"FCR-900",Diesel},
    {"NRG-500",Diesel},
    {"HPV1000",Diesel},
    {"Cement Truck",Diesel},
    {"Tow Truck",Diesel},
    {"Fortune",Diesel},
    {"Cadrona",Diesel},
    {"FBI Truck",Diesel},
    {"Willard",Diesel},
    {"Forklift",Diesel},
    {"Tractor",Diesel},
    {"Combine",Diesel},
    {"Feltzer",Diesel},
    {"Remington",Diesel},
    {"Slamvan",Diesel},
    {"Blade",Diesel},
    {"Freight",Diesel},
    {"Streak",Diesel},
    {"Vortex",Diesel},
    {"Vincent",Diesel},
    {"Bullet",Diesel},
    {"Clover",Diesel},
    {"Sadler",Diesel},
    {"Firetruck LA",Diesel},
    {"Hustler",Diesel},
    {"Intruder",Diesel},
    {"Primo",Diesel},
    {"Cargobob",Diesel},
    {"Tampa",Diesel},
    {"Sunrise",Diesel},
    {"Merit",Diesel},
    {"Utility",Diesel},
    {"Nevada",Diesel},
    {"Yosemite",Diesel},
    {"Windsor",Diesel},
    {"Monster A",Diesel},
    {"Monster B",Diesel},
    {"Uranus",Diesel},
    {"Jester",Diesel},
    {"Sultan",Diesel},
    {"Stratum",Diesel},
    {"Elegy",Diesel},
    {"Raindance",Diesel},
    {"RC Tiger",Diesel},
    {"Flash",Diesel},
    {"Tahoma",Diesel},
    {"Savanna",Diesel},
    {"Bandito",Diesel},
    {"Freight Flat",Diesel},
    {"Streak Carriage",Diesel},
    {"Kart",Diesel},
    {"Mower",Diesel},
    {"Duneride",Diesel},
    {"Sweeper",Diesel},
    {"Broadway",Diesel},
    {"Tornado",Diesel},
    {"AT-400",Diesel},
    {"DFT-30",Diesel},
    {"Huntley",Diesel},
    {"Stafford",Diesel},
    {"BF-400",Diesel},
    {"Newsvan",Diesel},
    {"Tug",Diesel},
    {"Trailer 3",Diesel},
    {"Emperor",Diesel},
    {"Wayfarer",Diesel},
    {"Euros",Diesel},
    {"Hotdog",Diesel},
    {"Club",Diesel},
    {"Freight Carriage",Diesel},
    {"Trailer 3",Diesel},
    {"Andromada",Diesel},
    {"Dodo",Diesel},
    {"RC Cam",Diesel},
    {"Launch",Diesel},
    {"Police Car (LSPD)",Diesel},
    {"Police Car (SFPD)",Diesel},
    {"Police Car (LVPD)",Diesel},
    {"Police Ranger",Diesel},
    {"Picador",Diesel},
    {"S.W.A.T. Van",Diesel},
    {"Alpha",Diesel},
    {"Phoenix",Diesel},
    {"Glendale",Diesel},
    {"Sadler",Diesel},
    {"Luggage Trailer A",Diesel},
    {"Luggage Trailer B",Diesel},
    {"Stair Trailer",Diesel},
    {"Boxville",Diesel},
    {"Farm Plow",Diesel},
    {"Utility Trailer",Diesel}
    };

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