[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
  • Mit diesem Befehl:
    (noch ungetestet)

    if(!strcmp(cmdtext,"/map",true))
    {
    if(strlen(cmdtext)<=4 || strlen(cmdtext)>50) return SendClientMessage(playerid,0xAFAFAFAA,"/map [mapname]");
    new stringxx[100]; //xx dazu, damit es nicht mit anderen "string" variabeln überschreibt
    format(stringxx,sizeof stringxx,"mapname %s",strget(cmdtext,1));
    SendRconCommand(stringxx);
    format(strinxx,sizeof stringxx, "Mapname zu %s gewechselt",strget(cmdtext,1));
    SendClientMessage(playerid,0xAFAFAFAA,stringxx);
    // DEBUG
    printf("Mapname wurde zu %s gewechselt",stringxx);


    return 1;
    }



    Falls du kein "strget" hast:


    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx;
    }
    return ret;
    }

    ICQ Scripting - Support 495961653
    Montags-Freitags ab 15 Uhr

    Einmal editiert, zuletzt von TheKekes ()

  • mal ne kleine Frage? wie kann man machen, dass die Wanteds gespeichert werden?



  • Danke :)

    ...

  • Hab ne Frage, ich will grad n Command machen, mit dem man es einem Spieler erlauben kann, einen Command auszuführen. Nun hab ich leider null Plan wie das mit nem Command geht. Besser gesagt weiss ich nicht wie ich den Spieler bestimmen kann.


    Als Variable hab ich:
    new allowed[MAX_PLAYERS]


    Mein Command sieht im Moment so aus, da ich nicht weiss wie das mit dem bestimmen nicht geht, hab ich das mal gelassen.


    if(strcmp(cmd, "/allowsavespawn", true) == 0)
    {
    if(IsPlayerAdmin(playerid))
    {
    allowed[ZIEL] = 1;
    SendClientMessage(ZIEL, COLOR_GREEN, "Man hat dir erlaubt, einen Spawnpunkt zusetzen!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Server: Du bist kein Admin!");
    return 1;
    }
    }


    Hoffe auf Hilfe :)

  • Strget:
    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }


    OnPlayerCommandText:
    public OnPlayerCommandText(playerid,cmdtext[])
    {
    if(!strcmp(strget(cmdtext,0),"/vehicle"))
    {
    new id = strval(strget(cmdtext,1));
    new col1 = strval(strget(cmdtext,2));
    new col2 = strval(strget(cmdtext,3));
    if(!strlen(strget(cmdtext,1))) { SendClientMessage(playerid,0xFF0000FF,"Benutzung: /vehicle [vehicleid] [color1] [color2]"); return 1; }
    if(id > 610 || id < 400) { SendClientMessage(playerid,0xFF0000FF,"Vehicleid nicht größer als 610 und nicht kleiner als 400"); return 1; }
    if(IsPlayerInAnyVehicle(playerid)) { SendClientMessage(playerid,0xFF0000FF,"Du bist schon in einem Fahrzeug!"); return 1; }
    if(IsPlayerAdmin(playerid)) // Wenn der Spieler als Admin eingeloggt ist...
    {
    new Float:X,Float:Y,Float:Z,Float:Rot;
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,Rot);
    new vehikel;
    vehikel = CreateVehicle(id,X,Y,Z,Rot,col1,col2,-1);
    PutPlayerInVehicle(playerid,vehikel,1);
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin!(/rcon login [RconPW]");
    }
    return 1;
    }
    return 0;
    }


    Siedler:


    Siedleracc:
    Strget:
    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }
    Unter den Includes:
    new bool:iAllowed[MAX_PLAYERS];
    OnPlayerCommandText:
    public OnPlayerCommandText(playerid,cmdtext[])
    {
    if(!strcmp(strget(cmdtext,0),"/allowsavespawn"))
    {
    new ziel = strval(strget(cmdtext,1));
    if(!strlen(strget(cmdtext,1))) { SendClientMessage(playerid,0xFF0000FF,"Benutzung: /allowsavespawn [playerid]"); return 1; }
    if(!IsPlayerConnected(ziel)) { SendClientMessage(playerid,0xFF0000FF,"Dieser Spieler ist nicht connected!"); return 1; }
    if(IsPlayerAdmin(playerid)) // Wenn der Spieler als Admin eingeloggt ist...
    {
    if(iAllowed[ziel] == false)
    {
    Allowed[ziel] = true;
    SendClientMessage(ziel,0xFF0000FF,"Dir wurde es erlaubt deinen Spawn zu setzen!");
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Diesem Spieler wurde es schon erlaubt!");
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin!(/rcon login [RconPW]");
    }
    return 1;
    }
    if(strcmp(cmdtext,"/command",true) == 0)
    {
    if(iAllowed[playerid] == true) // Wenn es ihm erlaubt wurde...
    {
    // ...tue das
    }
    else // Wenn es ihm nicht erlaubt wurde..
    {
    // ...tue das
    }
    return 1;
    }
    return 0;
    }


    2 Mal editiert, zuletzt von Monte ()

  • Hats irgendwie nicht genommen...
    Ich wollte dir Danken ;) , leider gibts paar Errors..



    C:\server\gamemodes\SRL.pwn(134) : error 017: undefined symbol "Allowed"
    C:\server\gamemodes\SRL.pwn(134) : warning 215: expression has no effect
    C:\server\gamemodes\SRL.pwn(134) : error 001: expected token: ";", but found "]"
    C:\server\gamemodes\SRL.pwn(134) : error 029: invalid expression, assumed zero
    C:\server\gamemodes\SRL.pwn(134) : fatal error 107: too many error messages on one line

  • wieso crash ich immer, wenn ich diesen befehl hernehme?
    wenn ich ausm auto raus will crash ich


    dcmd_getincar(playerid,params[])
    {
    new giveplayerid, seatid;
    if(sscanf(params,"dd",giveplayerid,seatid))
    {
    SendClientMessage(playerid,ERROR,"Usage: /getincar (playerid) (seatid)");
    return 1;
    }
    if(!IsPlayerInAnyVehicle(giveplayerid))
    {
    SendClientMessage(playerid,ERROR,"That player is not in a vehicle.");
    return 1;
    }
    PutPlayerInVehicle(playerid,GetPlayerVehicleID(giveplayerid),seatid);
    return 1;
    }

  • FACE


    Zitat

    Ma schnell ne Frage:
    Wie kann ich OBjekte im Mta-Map-Editor drehen? Also nicht das mit dem Mausrad, sondern so schief stellen.


    STRG + Pfeiltasten


    @ user 9345


    Zitat

    Frage:
    Wie kann man Straßenbahnen oder Züge in SA-MP reintun und dabei fahren???


    Ganz normal Spawnen, Landen automatisch auf den gleisen, "ACHTUNG, Wenn du welche Spawnst und sie dir nicht gefallen, Server-Exe Neustarten nach.


    LG SureShot

    2 Mal editiert, zuletzt von SureShot ()

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