Beiträge von IPrototypeI

    Ich hoffe du weißt wie man strcat benutzt zum formatieren wie format ist das nicht gedacht.


    hier mal den Syntax
    strcat(dest[],const source[],maxlength=sizeof string)


    Beschreibung[i] wird ein integer sein daher wird hier kein warning angezeigt


    Wenn er in der server.cfg nicht bind drinn stehen hat bringt das ihm weiter hin nicht viel


    beispiel:
    bind 127.0.0.1


    du kannst das auch mit varlist wenn du das in die console eingibst mal alles ausgeben lassen

    Ah okay habe es jetzt so mit den einzelnen Querys gelassen


    Das würde auch mit 1 query gehen oder du machst 3 verschiedene querys gibst bei der WHERE clausel die jeweilige zahl an für die einwohnerspalte und arbeitest mit mysql_num_row.


    Nun um das ganze mit einem query zu machen kann man auch mit sum arbeiten da werden werte addiert und der if clausel das kan man mit dem ternär operator
    fast gleich ziehen. bedingunge,(ja) die rückgabe , (nein) die rückgabe


    SQL
    "SELECT SUM(IF(Einwohnerort='0',1,0)) AS value1 ,SUM(IF(Einwohnerort='1',1,0)) AS value2 ,SUM(IF(Einwohnerort='2',1,0)) AS value3 FROM `accounts`"


    man hätte das auch mit group by machen können oder subquerys


    so nun gut mit was kann man nun die werte abrufen. Dazu kannst du
    mysql_fetch_field_row(string[],spalte);


    benutzen


    1 Beispiel mach ich dir noch

    new result[15];
    mysql_fetch_field_row(result,"value1");

    Geht auch ohne externes Programm. "The Pilot's Life" Eigentümer hat es gescriptet und es müsste normalerweise wie folgt ablaufen:


    Abfragen ob er einen Key drückt -> Abfragen ob er in der Nähe der Fahrzeuge ist wo es gehen soll -> die Person in das Fahrzeug als Beifahrer einfügen.


    Jedoch ist dabei zu beachten, dass wenn man Enter oder F drückt der Client crasht!


    Für was gibt es TogglePlayerSpectating und PlayerSpectateVehicle
    http://wiki.sa-mp.com/wiki/PlayerSpectateVehicle


    Über OnPlayerKeyState das ganze mit der taste abfragen einsteigen/aussteigen nur beim aussteigen muss man den spieler neben das fahrzeug porten


    1 da du IsAValidVehicle nicht im skript hast das native und weil eine Klammer noch fehlt im code habe ich vergessen kannst ja selbst ergänzen

    Was man dazu braucht sind 2 for-schleifen einmal um die fahrzeuge zu bekommen welche auf dem server vorhanden sind und einmal um die leeren zu bekommen.
    Für was rv[MAX_VEHICLES]; ?
    Das skript braucht ihrgend was um zu erkennen ob das fahrzeug mit leuten gefüllt ist oder nicht da es keine funktion gibt die das direkt abcheckt muss man das alles temporär speichern



    native IsValidVehicle(vehicleid);
    ocmd:carrespawn(playerid, params[])
    {
    if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
    new pID, n1[128], grund[128];
    format(n1,sizeof(n1),"%s hat alle Fahrzeuge respawnt.",SpielerName(playerid),SpielerName(pID),grund);
    SendClientMessageToAll(BAIGE,n1);
    new bool:rv[MAX_VEHICLES];
    for(new i; i < MAX_PLAYERS; ++i)if(IsPlayerInAnyVehicle(i))rv[GetPlayerVehicleID(i)]=true;
    for(new i; i < MAX_VEHICLES; ++i)
    if(!IsAValidVehicle(i) && rv[i])continue;
    SetVehicleToRespawn(i);
    }
    return 1;
    }


    Benutz dazu den streamer welchen du bestimmt auch verwendest also das streamer plugin das was du machen willst geht nicht da -1 in dem Fall ein mögliche vw ist.
    Dazu müsstest du deinen spieler schon in die vw -1 setzen. Meistens steht es auch im wiki dran wenn es möglich ist.


    native Text3D:CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);


    Du musst nicht alle parameter ausfüllen

    bezüglich dem i was steckt dahinter ?
    Sind dies Variabeln für Spieler.



    Ich hab dir mal ein beispiel code geschrieben jedoch auf die kürze ist mir nix besseres eingefallen


    new array[5] ={1,2,3,4,5};
    new array1[5] ={6,7,8,90,10};
    new array2[5] ={8,9,10,11,12};
    new HighValue[2];
    for(new i; i < 5; ++i){
    if(array[i] > HighValue[0]){
    HighValue[0] = array[i];
    HighValue[1] = i;
    }
    if(array1[i] > HighValue[0]){
    HighValue[0] = array1[i];
    HighValue[1] = i;
    }
    if(array2[i] > HighValue[0]){
    HighValue[0] = array2[i];
    HighValue[1] = i;
    }
    }
    if(array[HighValue[1]] > array1[HighValue[1]] && array[HighValue[1]] > array2[HighValue[1]])printf("%d",array[HighValue[1]]);
    else if(array1[HighValue[1]] > array[HighValue[1]] && array1[HighValue[1]] > array2[HighValue[1]] )printf("%d",array1[HighValue[1]]);
    else if(array2[HighValue[1]] > array1[HighValue[1]] && array2[HighValue[1]] > array[HighValue[1]])printf("%d",array2[HighValue[1]]);

    if(GEDRUECKT(KEY_FIRE) && ValideWaffe(playerid)) {
    if(!HAT_GESCHOSSEN(playerid) && (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)) {
    SETZE_GESCHOSSEN(playerid);
    SetTimerEx("Headshot_AntiSpam", 1000, false, "d", playerid);
    Headshot_ErmittleZielperson(playerid);
    //headshooter = playerid;
    }
    }


    mal so eine Frage verstehst du überhaupt oder ist das nur so eine auf gut glück ihrgend ein zeug in sein code zu kopieren taktik.


    Da sich hier noch else befindet und es wird geprüft ob der spieler geduckt ist oder nicht zu dem code über mir so wäre die abfrag am besten direkt dort abzufragen ob der spieler hitman ist oder nicht.
    Zu dem wenn du meinst meine verfassten texte nicht zu lesen kannst ja mal hoffen das ein anderer dir hilft da ich das problem nicht habe und mir das auch hier egal sein kann.


    Wieso schämen?
    Es gibt immer dinge die man nicht weis.
    Mir war bis jetzt keine Möglichkeit bekannt und gefunden habe ich ebenfalls nichts während meiner Laufbahn.
    Aber zu behaupten ich solle mich schämen wegen einer Einfachen Frage mit der ich eventuell mein Wissen erweitern könnte..
    Naja, kein weitere Kommentar :)


    Schau dir mal dieses Plugin an http://forum.sa-mp.com/showthread.php?t=238844
    es basiert auf die idee eines dynamischen Arrays kannst dir ja noch weitere post in dem thread durchlesen
    Ich würde dennoch nicht behaupten das Dynamische Arrays nicht möglich sind
    http://www.homeandlearn.co.uk/csharp/csharp_s7p3.html

    Schei** bin ich blöd :O Habe das ganz übersehen. Habe das nun ganz anders gemacht, nun gut. Ich änder das um zu playerid :)
    Vielen Dank!!


    ( Es geht doch bei ErmittleZielperson das ich abfrage: if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8) und da den Rest drin ablaufen lasse, oder?


    Hm macht es wirklich sinn um die abfrage einzuleiten noch die funktion aufzurufen?
    ( ja geht schon)
    Aber macht das doch dann bevor die funktion ErmittleZielperson aufgerufen wird. Wird wahrscheinlich bei OnPlayerKeyState passieren wenn der spieler abdrückt
    zusätzlich denk ich mal das ist schon enthalten welche waffe der spieler benötigt um einen Headshot zu machen aufgrund( SendDeathMessage und id 34) jedoch sollte dem nicht so sein solltest du das auch noch abfragen ob er überhaupt die waffe gerade hat.


    public OnPlayerConnect(playerid)
    {
    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if (!strcmp(botname, "Zug", true))
    {
    gPlayerLogged[playerid]=1;
    }
    return 1;
    }


    Zähl hier mal die Klammern durch vllt fällt dir was auf

    Also:
    Ich habe nun das FS in den Gamemode kopiert. Ich kann doch eig. eine globale Variable deklarieren und bei "ErmittleZielperson" diese auf "Mörder setzen" und dann abfragen, ob Mörder ( glob. Variable ) Hitman usw. ist, oder?


    Klar geht das warum sollte das nicht gehen schau dir doch mal dein copy paste code an.
    Du hast die playerid und die der zielperson.


    Als kleiner Tipp :
    Die playerid ist der wo abdrückt mit der sniper
    und die zielperson => Der wo die Kugel abbekommt

    Alter alter alter alter... da werd ich ja zum Wolf:


    Also du kannst OnPlayerDeath einfach als Funktion ausführen in Quelltext, du musst ihm dann nur die Variablen geben. OnPlayerDeath ist nicht anderes als eine normale Funktion, die zwar ein Event noch hat, aber die du wie SetPlayerHealth einfach in deinem Code ausführen kannst ;)


    Am besten noch per CallLocalFunction ich persönlich würde eher zu dieser include http://forum.sa-mp.com/showthread.php?t=403713
    oder seif bodypart include präferiere diese sind genauer als diese berechnung die du hier im forum gefunden hast.

    Du musst nur die Einstellungen ändern. Datenbank , User, Passwort und host (muss jedoch nicht sein kommt drauf an ob der mysqlserver ihrgend wo anders gehostet wird).
    Die einstellungen sind wahrscheinlich in einer config.php datei was jedoch nicht sein muss oder in einer anderen .php datei musst suchen.


    einfach nach mysql_connect ausschau halten und mysql_select_db