Beiträge von Simon

    doch, wenn man die id hinterschreibt spawnt er auto, wenn man nur /v eingibt, öffnet sich ein dialog. da kannst dann die id oder den Namen reinschreiben und es wird ein auto gespawnt. mit /vweg machste den wieder weg :D

    dcmd_v(playerid,params[])
    {
    new vID;
    if(sscanf(params, "d", vID))
    {
    if(Spieler[playerid][Admin] >= 1)
    {
    return ShowPlayerDialog(playerid,DIALOG_AUTO,DIALOG_STYLE_INPUT,"Auto spawnwn","{FFFFFF}Gebe die {00FF00}ID{FFFFFF} oder den {00FF00}Namen{FFFFFF} des Gewünschten Fahrzeuges ein!","Okay","Cancel");
    }
    else
    {
    return 0;
    }
    }
    if(vID < 400 || vID > 611)
    {
    return SendClientMessage(playerid,grau,"Nur Vehicle-ID's von 400-611 benutzen!");
    }
    if(Spieler[playerid][Admin] < 1)
    {
    return 0;
    }
    else
    {
    new Float:x, Float:y, Float:z, name[MAX_PLAYER_NAME];
    GetPlayerPos(playerid, x, y, z);
    GetPlayerName(playerid,name,sizeof(name));
    new cv = CreateVehicle(vID, x, y, z, 0, 117, 117, -1);
    entercar[playerid][cv] = 1;
    Adminauto[cv] = 1;
    MAX_CARS++;
    new str[20];
    format(str,sizeof(str),"Admin %d",MAX_CARS);
    SetVehicleNumberPlate(cv,str);
    SetVehicleHealth(cv,1000.0);
    SetVehicleVirtualWorld(cv,GetPlayerVirtualWorld(playerid));
    PutPlayerInVehicle(playerid,cv,0);
    new string[256];
    format(string, sizeof(string), "AdmCmd: %s hat eine(n) %s gespawnt.",name,carname[vID-400]);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(Spieler[i][Admin] >= 1)
    {
    SendClientMessage(i, 0xFF6347FF, string);
    }
    }
    }
    return 1;
    }


    dcmd_vwegall(playerid,params[])
    {
    #pragma unused params
    if(Spieler[playerid][Admin] < 2)
    {
    return 0;
    }
    else
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(Spieler[i][Admin] >= 1)
    {
    new str[256], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(str,sizeof(str),"AdmCmd: %s hat alle unbenutzten gespawnte Admincars zertört.", name);
    SendClientMessage(i,0xFF6347FF,str);
    }
    }
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    if(Adminauto[i] == 1)
    {
    if(IsVehicleEmpty(i))
    {
    DestroyVehicle(i);
    }
    }
    }
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_AUTO)
    {
    if(response)
    {
    if(strlen(inputtext) >= 3)
    {
    if(strval(inputtext) > 399 && strval(inputtext) < 612)
    {
    new Float:x, Float:y, Float:z, name[MAX_PLAYER_NAME];
    GetPlayerPos(playerid, x, y, z);
    GetPlayerName(playerid,name,sizeof(name));
    new cv = CreateVehicle(strval(inputtext), x, y, z, 0, 117, 117, -1);
    entercar[playerid][cv] = 1;
    Adminauto[cv] = 1;
    MAX_CARS++;
    new str[20];
    format(str,sizeof(str),"Admin %d",MAX_CARS);
    SetVehicleNumberPlate(cv,str);
    SetVehicleHealth(cv,1000.0);
    SetVehicleVirtualWorld(cv,GetPlayerVirtualWorld(playerid));
    PutPlayerInVehicle(playerid,cv,0);
    new string[256];
    format(string, sizeof(string), "AdmCmd: %s hat eine(n) %s gespawnt.",name,carname[strval(inputtext)-400]);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(Spieler[i][Admin] >= 1)
    {
    SendClientMessage(i, 0xFF6347FF, string);
    }
    }
    }
    else
    {
    new variable;
    for(new i = 0; i < MAX_VEHS; i++)
    {
    if(strcmp(inputtext, carname[i], true) == 0)
    {
    new Float:x, Float:y, Float:z, name[MAX_PLAYER_NAME];
    GetPlayerPos(playerid, x, y, z);
    GetPlayerName(playerid,name,sizeof(name));
    new cv = CreateVehicle(i+400, x, y, z, 0, 117, 117, -1);
    entercar[playerid][cv] = 1;
    Adminauto[cv] = 1;
    MAX_CARS++;
    new str[20];
    format(str,sizeof(str),"Admin %d",MAX_CARS);
    SetVehicleNumberPlate(cv,str);
    SetVehicleHealth(cv,1000.0);
    SetVehicleVirtualWorld(cv,GetPlayerVirtualWorld(playerid));
    PutPlayerInVehicle(playerid,cv,0);
    new string[256];
    format(string, sizeof(string), "AdmCmd: %s hat eine(n) %s gespawnt.",name,carname[i]);
    for(new j = 0; j < MAX_PLAYERS; j++)
    {
    if(Spieler[j][Admin] >= 1)
    {
    SendClientMessage(j, 0xFF6347FF, string);
    }
    }
    variable = 1;
    }
    }
    if(variable == 0)
    {
    SendClientMessage(playerid,0xDD0000FF,"Fahrzeugname oder Fahrzeugid ungültig!");
    }
    else
    {
    variable = 0;
    }
    }
    }
    else OnPlayerCommandText(playerid,"/v");
    }
    }
    return 1;
    }




    musst die dcmd und dialogid definieren und die adminabfrage anpassen.


    LG Simon


    //edit: carname[vID-400] musst du auch anpassen und sry das das nicht richtig eingedrückt wurde, hat er iwie nicht gemacht

    #define grau 0xAFAFAFAF


    dcmd_goto(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u", pID)) return SendClientMessage(playerid,grau,"Benutzung: /goto [Playerid]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,grau,"Kein Spieler mit angegebener ID Online");
    if(Spieler[playerid][Admin]<2) return 0; //Anpassen!!!
    new Float:x, Float:y, Float:z;
    GetPlayerPos(pID, x, y, z);
    new pint = GetPlayerInterior(pID);
    new pvtw = GetPlayerVirtualWorld(pID);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    SetVehiclePos(vehicleid,x,y,z);
    SetVehicleVirtualWorld(vehicleid,pvtw);
    LinkVehicleToInterior(vehicleid,pint);
    SetPlayerInterior(playerid, pint);
    SetPlayerVirtualWorld(playerid, pvtw);
    }
    else
    {
    SetPlayerPos(playerid, x+1, y+1, z+1);
    SetPlayerInterior(playerid, pint);
    SetPlayerVirtualWorld(playerid, pvtw);
    }
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du hast dich zu %s geportet.", name );
    SendClientMessage(playerid, grau, string);
    return 1;
    }


    dcmd_gethere(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u", pID)) return SendClientMessage(playerid,grau,"Benutzung: /gethere [Playerid]");
    if(!IsPlayerConnected(pID) || IsPlayerNPC(pID)) return SendClientMessage(playerid,grau,"Kein Spieler mit angegebener ID Online");
    if(Spieler[playerid][Admin] < 2) return 0; //ANpassen!!!
    new Float:x, Float:y, Float:z;
    new admint = GetPlayerInterior(playerid);
    new name[MAX_PLAYER_NAME],aname[MAX_PLAYER_NAME], string[50];
    new admvrt = GetPlayerVirtualWorld(playerid);
    GetPlayerPos(playerid, x, y, z);
    GetPlayerName(playerid, aname, sizeof(aname));
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du wurdest teleportiert.", aname);
    SendClientMessage(pID, grau, string);
    if(!IsPlayerInAnyVehicle(pID))
    {
    SetPlayerPos(pID, x+2, y+2, z);
    SetPlayerInterior(pID, admint);
    SetPlayerVirtualWorld(pID, admvrt);
    }
    else
    {
    SetVehiclePos(GetPlayerVehicleID(pID),x+2,y+2,z);
    SetVehicleVirtualWorld(GetPlayerVehicleID(pID),admvrt);
    LinkVehicleToInterior(GetPlayerVehicleID(pID),admint);
    SetPlayerInterior(pID, admint);
    }
    return 1;
    }


    Pass das deinem system noch bisschen an

    new Zeit[MAX_PLAYERS;
    forward timername(playerid);


    //wenn er ausgeraubt hat:
    Zeit[playerid] = 10;
    SetTimerEx("timername",60000,"i",playerid);


    public timername(playerid)
    {
    Zeit[playerid]--;
    if(Zeit[playerid] >= 1)
    {
    new str[40];
    format(str,sizeof(str),"Verbleibende Zeit: %d Minuten",Zeit[playerid]);
    TextDrawSetString(id,str);
    SetTimerEx("timername",60000,"i",playerid);
    }
    else
    {
    //was passieren soll wenn die 10 minuten um sind
    }
    return 1;
    }

    Einen kürzeren Timer machen. dieser Timer wiederholt sich immer und veringt eine variable immer um 1 ob die variable in sekunden oder minuten angezeigt werden soll musst du dann einstellen. und sobald die variable bei 0 angekommen ist, killst du den timer und gibst ihm das geld:


    also:

    public timer(playerid,variable)
    {
    variable--;
    if(variable >= 1)
    {
    //was passiere soll
    SetTimerEx("timer",zeit,variable);
    }
    else
    {
    //was passieren soll
    }
    return 1;
    }

    wie hast du name denn definiert? irgentwo oben bei denen defines und includes und news muss new name stehen. ansonsten versuchst mal so:


    new name1[MAX_PLAYER_NAME], sc[44];
    GetPlayerName(playerid, name1, sizeof(name1))

    Hast komische Abfragen dadrinne.. ich glaube style 2 ist verbuggt, bin mir aber nicht sicher. Hier mal ein besserer Code:


    ocmd:GText(playerid,params[])
    {
    new string[180], Zeit, Style;
    if(sscanf(params,"sdd",string,Zeit,Style)) return SendClientMessage(playerid,0xB0AFB0FF,"Benutze: /GText [Text] [Zeit] [Style]");
    if(SpielerInfo[playerid][Adminlevel] < 1 ) return SendClientMessage(playerid,ROT,"Du bist kein Admin mit Level 2 oder Mod.");
    if(Zeit < 1 ) return SendClientMessage(playerid,0xB0AFB0FF,"Zeit muss höher als 0 sein!");
    if(Style < 0|| Style > 6) return SendClientMessage(playerid,0xB0AFB0FF,"Wähle Style 0-6");
    GameTextForAll(string,Zeit,Style);
    return 1;
    }

    Das ist eine sehr gute Idee. Eventuell könnte man auch wünsche äußern, was gescriptet werden soll und wie schon gesagt im chat dann schreiben falls man etwas nicht versteht bzw. wenn man noch fragen dazu hat. so wird es oft viel besser deutlich..

    ich würde nicht OnPlayerUpdate nutzen! es ist mit pawn möglich nen anti afk script zu erstellen. einfach ein timer starten der die zeit hat, nach der man gekickt werden soll. immer wenn er einen Key drückt, sollte der Timer gekillt und neu gestartet werden.

    Falsch! Das wäre eben kein Marker. Um ein Marker zu machen, musst du erstmal die Marker aktivieren. Ich weiß nicht genau wie die funktion gerade ist.
    Dann musst du die Farbe der Spieler beim connecten auf 0xFFFFFF00 stellen. Damit sind sie unsichtbar auf der Map. und sobald er needhelp macht, musst du folgende Funktion benutzen: SetPlayerMarkerForPlayer(playerid,markerid,farbe); die markerid ist kla und die farbe wäre bei rot 0xFF0000FF. die playerid musst du dann sehen wer das ist. ich denke mal alle die Team_Menschen sind. musst du mit der for schleife durchgehen