Beiträge von ErikSon

    @Mr.Reese: Könnte dir das eventuell helfen?:

    stock GetPosVorSpieler(playerid, Float:dist, &Float:x, &Float:y, &Float:z) //©Jeffry
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:a;
    if(IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    else GetPlayerFacingAngle(playerid, a);
    GetPlayerPos(playerid, x, y, z);
    x += (dist * floatsin(-a, degrees));
    y += (dist * floatcos(-a, degrees));
    return true;
    }
    return false;
    }


    Benutzung:

    //Setzt den Spieler 5 Meter vor den anderen Spieler.
    new Float:x, Float:y, Float:z;
    GetPosVorSpieler(pID, 5.0, x, y, z); //pID = Spieler, dessen Position abgefragt wird.
    SetPlayerPos(playerid, x, y, z); //playerid = Spieler, dessen Position gesetzt wird.


    Könntest es mal so probieren:

    new Float:x, Float:y, Float:z;
    GetPosVorSpieler(pID, 5.0/*Distance vom Spieler entfernt*/, x, y, z);
    SetPlayerPos(playerid, x+5, y, z);

    ErikSon: bekomme folgende Errors.


    Code
    C:\Users\Tobias\Desktop\Samp Projekte\German SampLife\gamemodes\Selfmade.pwn(1242) : error 004: function "AC_SetVehicleZAngleEx" is not implemented
    C:\Users\Tobias\Desktop\Samp Projekte\German SampLife\gamemodes\Selfmade.pwn(1259) : error 004: function "AC_SetVehicleZAngleEx" is not implemented
    C:\Users\Tobias\Desktop\Samp Projekte\German SampLife\gamemodes\Selfmade.pwn(1276) : error 004: function "AC_SetVehicleZAngleEx" is not implemented
    C:\Users\Tobias\Desktop\Samp Projekte\German SampLife\gamemodes\Selfmade.pwn(1293) : error 004: function "AC_SetVehicleZAngleEx" is not implemented
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    4 Errors.


    Lösche mal alles, was mit "AC_SetVehicleZAngleEx" zu tun hat, habe vergessen die Sache zu löschen..




    Nein. es kommen keine Errormeldungen


    Hast du denn auch die Includes definiert im Script? ( dini + ocmd )

    stock Where(func[]){
    new dir:dHandle = dir_open("./scriptfiles/Accounts/");
    new item[40], type, datei[20], readstr[200],count;
    while(dir_list(dHandle, item, type))
    {
    if(type == FM_FILE)
    {
    format(datei,20,"/Accounts/%s",item);
    new File:file = f_open(datei);
    while(f_read(file, readstr){
    if(strfind(func,readstr,false) != -1) ++count;
    }
    }
    }
    dir_close(dHandle);
    return count;
    }
    Die Funktion ist dafür da, bei allen Spielern eine bestimmte Information aus deren Spielerdatei herauszufinden, ohne MySQL..


    -> Wie könnte ich das z.B. machen?

    format(string,...,"%s",Where("Admin") >= 1); // das mit dem ">=1" & auch halt mit Strings ( Where("Name") > Name ) [iwi sowas]


    Kann mir da vlt jemand helfen? ;)

    Probiers mal so:
    ocmd:acp(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,5)) return SendClientMessage(playerid,ROT,"Zugriff Verweigert");
    new pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1,"/acp [playerid]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Spieler ist nicht Online");
    new string[256],str[64];
    format(str, sizeof str, "Name: %s",SpielerName(pID)), strcat(string,str);
    format(str, sizeof str, "Timebans: %s",GetPVarInt(playerid,"Banned1")), strcat(string,str);
    format(str, sizeof str, "Kicks: %s",GetPVarInt(playerid,"Banned2")), strcat(string,str);
    return ShowPlayerDialog(playerid,DIALOG_ACP,DIALOG_STYLE_MSGBOX,"Admin Control Panel",string,"Ok","");
    }
    Könnte man eig noch ein wenig Ressourcensparender machen..




    Zu viele unnötige Strings und wozu 2x Adminabfrage? ;)


    //Edit: Außerdem ist die 2. Adminabfrage falsch.. Wenn er nicht min Admin Level 5 ist, dann wird ihm das Adminpanel angezeigt.. ?
    PS: Das return am Ende kannste dir sparen, da du den Code schon beendest..

    Deshalb:
    if(sscanf(params,"uis/*i und s sind noch zwei parameter, die man eingeben muss, damit der Befehl läuft*/",pID))return SendClientMessage(playerid,BLAU,"/acp [playerid]");


    //Machs so:
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,BLAU,"/acp [playerid]");

    ocmd:giveweapon(playerid,params[]){ if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,COLOR_DARKRED,"Du bist kein Admin Rang 5"); { new pID,waffe,munition,waffenname[64],string[100],string1[100],string2[100]; if(sscanf(params,"uii",pID,waffe,munition))return SendClientMessage(playerid,COLOR_DARKRED,"/waffegeben [waffenid] [munition]"); GivePlayerWeapon(pID,waffe,munition); GetWeaponName(waffe,waffenname,sizeof(waffenname)); format(string1,sizeof(string1),"Du hast %s %s mit %i schuss gegeben",SpielerName(pID),waffenname,munition); SendClientMessage(playerid,COLOR_YELLOW,string1); format(string2,sizeof(string2),"%s hat dir %s mit %i schuss gegeben",SpielerName(playerid),waffenname,munition); SendClientMessage(pID,COLOR_YELLOW,string2); for(new i=0; i<GetMaxPlayers(); i++) { if(IsPlayerConnected(i)) { if(isPlayerAnAdmin(i,GetPVarInt(playerid,"Adminlevel"))) { format(string,sizeof(string),"Admin: %s hat %s %s mit %i schuss gegeben",SpielerName(playerid),SpielerName(pID),waffenname,munition); SendClientMessage(i,COLOR_YELLOW,string); } } } } return 1;}


    Die Admin abfrage musst du noch nach dein Server anpassen.


    Unnötig, deine ganzen Strings...
    Nutze einen String, das reicht vollkommen...


    1. Ich meinte einfach nur Objekte, die ich mal entfernt habe.. Wo genau soll ich die Objekte bei dem Spieler entfernen? Bei OnPlayerConnect würde er beim 3. mal oder so crashen, oder das Game hängt sich auf..


    3. Wie könnte ich es denn am Besten machen?


    //Edit: 2. Wie könnte ich das z.B. machen?

    format(string,...,"%s",Where("Admin") >= 1); // das mit dem ">=1" & auch halt mit Strings ( Where("Name") > Name ) [iwi sowas]

    ich ahb deinen Bfehl kopiert


    Aber den älteren Befehl von ihm..


    Hier: