Beiträge von Mustang96

    Hast du denn unter OnPlayerCommandText sowas drinnen?
    dcmd(werbung, 7, cmdtext);
    und ganz oben:
    #define dcmd(%1,%2,%3) if(!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Version 1.0


    Hallo,
    da es mich ständig nervt, weil mein Script so unübersichtlich ist (besonders mit 192 Gates), habe ich jetzt ein kleines aber feines Filterscript erstellt.
    Dieses erlaubt jemandem, in einer einzigen Zeile, Objekte zu erstellen und sie mit einem Befehl bewegbar zu machen, dieser Befehl wird ganz oben im Script
    angegeben.
    Ich denke, dass ein Video nicht von Nöten ist, da es glaube ich, jeder verstanden hat :)
    Das Filterscript ist hier erhältlich: http://pastebin.com/e26KzeyK


    Achtung: Das Entfernen der Copyrights ist verboten und wird strafrechtlich verfolgt! Bitte lest euch vor der Verwendung des Scripts auch die paar Zeilen ganz oben durch!



    /edit: Der Befehl, der zum Benutzen der jeweiligen MoveObjekts benötigt wird, ist oben unter OPEN_BEFEHL definiert.



    Für die, die nicht gleich verstanden haben, wie man das Script benutzt, denen erkläre ich es jetzt.


    Zwischen
    new Float:PGates[][Gates] =
    {


    und der darauffolgenden passenden Klammer
    };


    fügt ihr nun folgendes ein
    {OBJEKT-ID, PosX, PosY, PosZ, RotationX, RotationY, RotationZ, MoveToX, MoveToY, MoveToZ, Geschwindigkeit, 0}
    Die "0" am Ende muss da stehen bleiben, ansonsten öffnet sich das Tor erst beim 2. Mal, wenn man den Befehl eingegeben hat.


    Anschließend gehen wir ganz nach oben in das Script und erhöhen die Zahl bei MAX_GATES (in diesem Fall "1") um eins also auf "2"
    #define MAX_GATES 1 //Maximale Anzahl an Toren (am besten immer korrekt anpassen)


    Tipp: Am Ende jeder* dieser Zeilen muss ein Komma (",") stehen!
    *Eine Ausnahme ist die letzte Zeile (ihr erhaltet einen Fehler, wenn ihr da ein Komma stehen habt)


    Derzeit ist ein Objekt als Beispiel eingebaut, dieses ist vor dem LSPD zu finden, dieses könnt ihr natürlich löschen ;)



    Ich hoffe euch gefällt mein Script und dass ich euch helfen konnte.


    Kritik und Bewertungen sind natürlich erwünscht



    Im nächstem Update verfügbar:

    • Die Tore schließen automatisch nach einer bestimmten Zeit (die auch oben für jedes Objekt definiert wird)

    Bekannte Bugs: Keine

    So ganz leicht ist es nicht.
    Du solltest das Geld "wechseln" von Imaginär zum richtig Geld beim betreten eines Casinos. Denn nur mit dem richtigen Geld können die Automaten und Co. benutzt werden.
    Beim Verlassen des Casinos solltest du dann das Geld wieder zurück wechseln. Allerdings funktioniert doch bei dir dann zZt uch kein Burger Shot,Ammu Nation,Pay n Spray usw , richtig ?
    Das Geld solltest du doch zumindest syncronisieren.

    Meine BurgerShots, Ammus usw. hab ich schon komplett neu gestaltet :D


    Zitat

    Andere Möglichkeit wäre die Casinos neu zu scripten. Halte ich aber für viel zu viel Aufwand. Genau so alles Andere.

    Da habe ich leider keine Ahnung, wie das funktioniert ^^

    Hallo,
    ich will in meinem Server das Casino aus dem Singelplayer hinzufügen (Roulett, Automaten usw. funktionieren ja automatisch schon im Multiplayer)
    Ich benutze bei mir (wegen Hacks) nicht das normale GivePlayerMoney System, sondern nur eine externe Abfrage (der Spieler sieht nur eine Kopie seines Geldes)


    Wie kann ich nun einstellen, dass der Spieler das Geld mit der neuen Methode erhält (also damit er was damit anfangen kann)?


    Danke im Vorraus!!

    Hallo,
    ich habe heute mit meinem Bruder Spielie ein kleines Script erstellt, dieses erlaubt jedem User, Gebäude zu betreten und zu verlassen. Dieses System funktioniert mit /enter und /exit
    Bis hierhin ist ja alles noch "Misst" :D


    Jetzt kommt die Neuheit: Man muss nur eine Zeile einfügen, um ein neues Gebäude betretbar zu machen und das Ganze ist sogar noch übersichtlich gestaltet!
    Du glaubst es nicht? Dann sieh selbst:
    http://pastebin.com/MRwtcBb8


    Achtung: Das Entfernen der Copyrights ist verboten und wird strafrechtlich verfolgt! Bitte lest euch vor der Verwendung des Scripts auch die paar Zeilen ganz oben durch!


    Für die, die nicht gleich verstanden haben, wie man ein neues Gebäude mit unserem Script begehbar machen kann:
    Zwischen
    new Float:PEnter[][PEnterE] =
    {
    und
    }
    Sind derzeit alle 24-7, Ammu's, BurgerShots, Pizzas und Cucklin Bells, die ich gefunden habe (also fehlen noch so 2-3 Stück)


    Ihr fügt einfach in der letzten Zeile bei
    {1929.2341, -1776.3066, 13.5469, 6.09179, -29.27188, 1003.5498, 10, 4} //24-7 Mülldeponie
    das Komma an, also so:
    {1929.2341, -1776.3066, 13.5469, 6.09179, -29.27188, 1003.5498, 10, 4}, //24-7 Mülldeponie
    anschließend kannst du ein neues Gebäude einfügen, dies geht folgendermaßen:

    • Geh in eine neue Zeile!
    • Kopiere das hier hinein:{Die 3 Koords vom /enter-Punkt (Außerhalb des Gebäudes), Die 3 Koords vom /exit-Punkt (Innerhalb des Gebäudes), Die Interior ID des Gebäudes*, VIRTUELLE WELT} //NAME DES ORTES
    • Fülle das eingefügte nun aus (das nach den "//" ist nur, damit ihr nicht den Überblick verliehrt ;D)

    Tipp: Nicht vergessen unter "new Float:PEnter[][PEnterE] = {" darf die Zeile vor dem "}" am Ende kein Komma haben


    *Hier zu finden: http://weedarr.wikidot.com/interior (in der Tabelle unter ID)


    Viel Spaß

    ich denke er meint, wenn er sein auto tuned kommt das geld nach einem relogg zurück, weil dieses nur im GTA View abgezogen wird und nicht in der Datenbank übernommen wird

    mein /lock befehl:
    if(strcmp(cmd, "/lock", true) == 0)
    {
    if(GetPlayerVehicleSeat(playerid) == 0)
    {
    for(new i=0; i < MAX_PLAYERS; i++)
    {
    new car = GetPlayerVehicleID(playerid);
    if(Motor[car] == true)
    {
    if(Lock[car] == false)
    {
    for(new i2 = 0; i2 < MAX_PLAYERS; i2++)
    {
    if(IsPlayerConnected(i2))
    {
    SetVehicleParamsForPlayer(car,i2,0,1);
    }
    }
    Lock[car] = true;
    SendClientMessage(playerid,0xFFFFFFAA,"fahrzeug abgesperrt!");
    return 1;
    }
    else
    {
    for(new i2 = 0; i2 < MAX_PLAYERS; i2++)
    {
    if(IsPlayerConnected(i2))
    {
    SetVehicleParamsForPlayer(car,i2,0,0);
    }
    }
    Lock[car] = false;
    SendClientMessage(playerid,0xFFFFFFAA,"Fahrzeug aufgeschlossen!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFAA,"Der Motor des Fahrzeuges muss eingeschalten sein!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFAA,"Du musst Fahrer eines Fahrzeuges sein!");
    return 1;
    }
    return 1;
    }


    nimm dir raus, was du brauchst

    Dudalus


    Habs jetzt so

    enum PEnterE
    {
    EnterX,
    EnterY,
    EnterZ,
    ExitX,
    ExitY,
    ExitZ,
    Int,
    VW
    };


    new Float:PEnter[][PEnterE] =
    {
    {1038.2692, 1339.9089, 13.7351, 381.169189, -188.803024, 1000.632812, 17, 2} //<------------------------------------------------------- Zeile 2365
    };


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys==KEY_SPRINT)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pEingangsTimer]==0)
    {
    for(new i = 0; i < sizeof(PEnter); i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 2.0, PEnter[EnterX], PEnter[EnterY], PEnter[EnterZ])) //<-------------------------- Zeile 10345
    {
    SetPlayerPos(playerid, PEnter[ExitX], PEnter[ExitY], PEnter[ExitZ]); //<--------------------------------------------------- Zeile 10347
    SetPlayerInterior(playerid, PEnter[Int]); //<-------------------------------------------------------------------------------------- Zeile 10348
    SetPlayerVirtualWorld(playerid, PEnter[VW]); //<------------------------------------------------------------------------------- Zeile 10349
    SendClientMessage(playerid,COLOR_GREEN,"Gebäude betreten.");
    SetTimerEx("EingangTimer",5000,0,"i",playerid);
    PlayerInfo[playerid][pEingangsTimer]=1;
    break;
    }
    if(IsPlayerInRangeOfPoint(playerid, 2.0, PEnter[ExitX], PEnter[ExitY], PEnter[ExitZ])) //<-------------------------------- Zeile 10355
    {
    SetPlayerPos(playerid, PEnter[EnterX], PEnter[EnterY], PEnter[EnterZ]); //<-------------------------------------------- Zeile 10357
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SendClientMessage(playerid,COLOR_GREEN,"Gebäude betreten.");
    SetTimerEx("EingangTimer",5000,0,"i",playerid);
    PlayerInfo[playerid][pEingangsTimer]=1;
    break;
    }
    }
    }
    }
    }
    return 1;
    }



    Und es kommt raus:
    Warnings:

    Code
    Zeile (2365) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (2365) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (2365) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (2365) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (2365) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (2365) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (10348) : Variable wurde falsch definiert (Float,Integer[...])
    Zeile (10349) : Variable wurde falsch definiert (Float,Integer[...])


    errors:

    Code
    Zeile (10345) : error 091: ambiguous constant; tag override is required (symbol "EnterX")
    Zeile (10347) : error 091: ambiguous constant; tag override is required (symbol "ExitX")
    Zeile (10348) : Der benutzte Array-Index ist größer als die Variable definiert wurde  (variable "PEnter")
    Zeile (10349) : Der benutzte Array-Index ist größer als die Variable definiert wurde  (variable "PEnter")
    Zeile (10355) : error 091: ambiguous constant; tag override is required (symbol "ExitX")
    Zeile (10357) : error 091: ambiguous constant; tag override is required (symbol "EnterX")