Beiträge von Zunno

    Dann Versuch es mal so:
    public OnPlayerText(playerid, text[])
    {
    new string[128], xname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,xname,sizeof(xname));
    if(InSupport[playerid] == 1)
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(DeinSupport[i] == playerid)
    {
    new str[128];
    format(str,sizeof(str),"%s: %s",xname,text);
    SendClientMessage(playerid,GRAU,str);
    return 0;
    }
    }
    }
    format(string, sizeof(string), "%s schreibt: %s", xname, text);
    SendClientMessageToAll(-1, string);
    return 0;
    }


    /EDIT: Doofe Formatierung...
    und gerne doch^^ aber so hätte es dann 100%ig funktioniert ;)

    wenn das alles ist, dann mach es so:


    public OnPlayerText(playerid, text[])
    {
    if(InSupport[playerid] == 1)
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(DeinSupport[i] == playerid)
    {
    new str[128], xname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,xname,sizeof(xname));
    format(str,sizeof(str),"%s: %s",xname,text);
    SendClientMessage(playerid,GRAU,str);
    return 0;
    }
    }
    }
    return 1;
    }

    Ohne code können wir dir leider nich weiterhelfen...
    Schick mal deinen Code der unter OnPlayerText steht.

    das return 1; ganz unten bei OnPlayerCommandText einfach in
    return SendClientMessage(playerid, COLOR, "Dieser Befehl wurde nicht gefunden! Benutze /help");


    LG, Zunno ;)

    Wenn du das in deinem Script ändern möchtest benutze die Tasten Kombination STRG + H
    Damit kannst du nach bestimmten sachen suchen und sie ersetzen ;)

    mit


    ./samp03svr &


    den Server starten und versuchen, wenn das nicht funktioniert, dann bau dir eine *.bat (Batch Datei) womit du von deinem PC aus eine RCON Console zu deinem Server hast.
    Und das ganz ohne PuTTY.


    Hier ist eine Anleitung wie das Funktioniert: SA-MP Wiki - Remote Console


    Mit freundlichen Grüßen,
    [GSF]Zunno

    Das bedeutet das du einen Befehl hast, oder eine Funktion in der du sscanf benutzt wo du die länge des strings nicht angegeben hast.
    sprich anstatt so sscanf(inputtext, "s[128]",Varriable); hast du es wahrscheinlich so:
    sscanf(inpittext, "s",Varriable);


    Mit freundlichen Grüßen,
    [GSF]Zunno

    ganz einfach:


    Erstelle die Objecte am 0 Punkt.
    new Object = CreateObject(ID, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
    dann suchst du dir am besten Ingame die Cordinaten raus wo die Lampen an deinem Fahrzeug sein sollen.
    Ich habe mir dazu diesen Befehl gebastelt:
    if(strcmp(cmd, "/otest", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] != 1339) return 1;

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZE: /otest [objectid] [x] [y] [z] [rotx] [roty] [rotz]");
    new object = strval(tmp);

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZE: /otest [objectid] [x] [y] [z] [rotx] [roty] [rotz]");
    new Float:x = floatstr(tmp);

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZE: /otest [objectid] [x] [y] [z] [rotx] [roty] [rotz]");
    new Float:y = floatstr(tmp);

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZE: /otest [objectid] [x] [y] [z] [rotx] [roty] [rotz]");
    new Float:z = floatstr(tmp);

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZE: /otest [objectid] [x] [y] [z] [rotx] [roty] [rotz]");
    new Float:rotx = floatstr(tmp);


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZE: /otest [objectid] [x] [y] [z] [rotx] [roty] [rotz]");
    new Float:roty = floatstr(tmp);


    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZE: /otest [objectid] [x] [y] [z] [rotx] [roty] [rotz]");
    new Float:rotz = floatstr(tmp);

    new carid = GetPlayerVehicleID(playerid);
    DestroyObject(CarObject[carid][0]);
    CarObject[carid][0] = CreateObject(object,0,0,0,0,0,0);
    AttachObjectToVehicle(CarObject[carid][0], carid, x, y, z, rotx, roty, rotz);
    format(string, sizeof(string), "[DEBUG] OBJECT %d | X[%f] Y[%f] Z[%f] RX[%f] RY[%f] RZ[%f]",object,x,y,z,rotx,roty,rotz);
    SendClientMessage(playerid, 0xFF0000FF, string);
    return 1;
    }


    natürlich solltest du beachten das die Varriable fürs Object auf dein Script angepasst wird, bzw du diese GLOBAL definiert hast.
    nachdem du das gemacht hast, gehst du Ingame, setzt dich in dein Fahrzeug rein und gibst "/otest [OBJECTID] 0.0 0.0 0.0 0.0 0.0 0.0" ein und tastest dich dann an die gewünschte stelle ran.
    Wenn du das hast kannst du in dein Script gehen und mit AttachObjectToVehicle und den gerade herrausgefundenen Coords dein Object ans Fahrzeug attachen.


    Ich hoffe ich hab mich einigermaßen verständlich ausgedrückt, und konnte dir helfen :)


    Mit freundlichen Grüßen,
    [GSF]Zunno


    so ist es richtig ;)

    hast du denn eine Datenbank installiert? du musst natürlich wenn das script mysql benutzt eine datenbank auf deinem root server haben.
    falls ihr eine habt musst du natürlich noch die logindaten im script auf die datenbank anpassen.
    falls ihr keine datenbank habt , entweder eine installieren oder das script auf dini umschreiben.



    Lg Zunno

    Code
    [11:24:04]  Loading plugin: mysql.so
    [11:24:04]   Failed (/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by plugins/mysql.so))


    Ich glaube das sagt doch schon alles..
    Er kann das MySQL Plugin nicht laden.
    Du musst dafür was bei Linux installieren glaube ich, aber wie, keine ahnung^^


    /EDIT: Welche Version von Linux benutzt du? Debian? Ubuntu?

    Dir ist bewusst das du im Normalen Chat keinen 1500 String ausgeben kannst? (Der Chat unterstützt nur 128 Zeichen).
    Desweiteren kannst du (bin ich mir jetzt nich sicher) kein \n im Normalen Chat benutzen...


    mach es lieber so:
    format(string, sizeof(string), "TEXT");
    SendClientMessage(playerid, COLOR_WHITE, string);

    Da du den String gleich nach dem erstellen ausgibst, kannst du die Varriable mehrmals benutzen ohne das du dann am ende new string2125[200]; hast.


    LG, Zunno ;)

    Der Fehler ist folgender:
    Du lässt eine Schleife aufrufen wenn ein spieler (playerid) sein Car Tuned.
    Jeder der dann nich in einem Interior ist, wird gebannt.
    Daher nimm die schleife raus und arbeite mit der playerid die beim callback gegeben ist.


    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    new inter = GetPlayerInterior(playerid);
    if(inter == 0)
    {
    if(GetPVarInt(playerid,"Adminlevel") == 0)
    {
    new string[128];
    format(string,sizeof(string),"Homer_Simpson hat %s gebannt. {FF8000}Grund: Tuning Hack",SpielerName(playerid));
    SendClientMessageToAll(kickban,string);
    SendClientMessage(playerid,ROT,"Du wurdest von Homer_Simpson gebannt! {FF8000}Grund: Tuning Hack");
    mysql_Set(playerid,"Grund","Tuning Hack");
    mysql_Set(playerid,"Banner","Homer_Simpson");
    SetPVarInt(playerid,"Baned",1);
    Kick(playerid);
    }
    return 1;
    }
    return 1;
    }



    Mit freundlichen Grüßen,
    [GSF]Zunno

    Unter OnPlayerUpdate sollte man sowas lieber nich platzieren...
    Denn wenn du dich Bewegst wird dein Code ca 50 mal in einer Sekunde aufgerufen.
    Und da SA-MP immer nur eine sache gleichzeitig machen kann, fängt dein Server dann an zu laggen.


    Mach für dein Anticheat lieber einen neuen Timer der ca jede Sekunde aufgerufen wird, ist schonender :)

    Du gehst mit der Schleife nur die ID's durch, wie groß das Array VerboteneWaffen ist. Also 0-4.
    Und da du diesen Wert zum überprüfen nimmst, funktioniert das nicht.
    Du musst also die Abfrage auf if(GetPlayerWeapon(playerid) == VerboteneWaffen[w][])
    setzen.


    Sollte funktionieren.


    LG, Zunno