Beiträge von maddinat0r


    if(PlayerInfo[playerid][inpb] == 1)
    {
    new giveplayer[MAX_PLAYER_NAME], killer[MAX_PLAYER_NAME];
    new killstr[128];
    GetPlayerName(playerid,giveplayer,sizeof(giveplayer));
    if(killerid == INVALID_PLAYER_ID)
    format(killstr, sizeof(killstr),"%s ist gestorben.", giveplayer);
    else {
    GetPlayerName(killerid,killer,sizeof(killer));
    format(killstr,sizeof(killstr),"%s hat %s getötet.",killer,giveplayer);
    }
    SendClientMessageToAll(COLOR_BLUE,killstr);
    }



    Editiert, "Test ist gestorben.".

    Falsch. Das muss einfach bei OnPlayerConnect rein und fertig.
    Edit: Also das hier muss bei OnPlayerConnect rein:
    RemoveBuildingForPlayer(playerid,16094, 191.1406, 1870.0391, 21.4766, 0.25);

    Hm, kommt drauf an, welche Funktionen es geben soll.
    Auf jeden Fall kannst du nur eine bestimmte Anzahl Funktionen
    zur Verfügung stellen. Du kannst ja in der Tabelle ne Spalte mit dem Namen
    'Funktion' erstellen und dort z.B. die 1 eintragen und bei OnPlayerPickupPickUp
    frägst du ab, ob die Funktion des Pickups gleich 1 ist, wenn ja, wird (z. B.) der Spieler
    irgendwo hin teleportiert (Ziel-Koordinaten müssen natürlich auch in der Datenbank stehen!).

    new Query[512];
    format(Query,256,
    Sollte ja eher so aussehen:
    format(Query,sizeof(Query),
    Ja, mein Verdacht liegt darin, dass der String bei format zu klein angegeben
    wurde und format deshalb nicht alles in 'Query' gespeichert hat.


    EDIT:
    Außerdem ist es MySQL wayne, ob die Spaltennamen mit `` angegeben werden oder nicht.

    Ich hatte einfach mal Langweile und habe diese Include gebastelt.
    Diese Include bringt zwei einfache Funktionen: GetPVarArray und SetPVarArray.


    Syntax:
    GetPVarArray(playerid, name[], dest[], size = sizeof(dest)) //returnt die Anzahl der Items im Array
    SetPVarArray(playerid, name[], value[], size = sizeof(value)) //returnt 0 falls es fehlschlägt


    Kleines Anwendungsbeispiel:
    public OnPlayerRequestClass(playerid, classid)
    {
    new list[16];
    new anzahl = GetPVarArray(playerid, "pSkinlist", list);
    SetPlayerSkin(playerid,list[random(anzahl)]);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    SetPVarArray(playerid, "pSkinlist", {52,53,58,54,56} );
    return 1;
    }


    Zuletzt bitte ich euch, das kleine Copyright in der Include nicht zu entfernen.
    Download: Pastebin


    Bei Fragen oder Bugs, bitte nur hier in den Thread, nicht per PN.


    public OnVehicleDeath(vehicleid) //Callback wird aufgerufen, wenn Fahrzeug explodiert oder Wasser berührt
    {
    if(vehicleid == car) { //Wenn die Fahrzeugid des "verstorbenen" Autos die ID ist, die wir per Befehl erstellt haben
    DestroyVehicle(car); //Supportfahrzeug zerstören
    }
    return 1;
    }


    if(IsPlayerInRangeOfPoint(playerid,1.0,pickupInfo[p][pickupX],pickupInfo[p][pickupY],pickupInfo[p][pickupZ])) {
    pickupPI[playerid] = true;
    }
    Ist auch überhaupt ned mit IsPlayerInRange...
    Außerdem geht es gar nicht anders.


    enum epInfo
    {
    Float:pickupX,
    Float:pickupY,
    Float:pickupZ,
    pickupID
    }



    new pickupInfo[MAX_PICKUPS][epInfo],
    bool:pickupPI[MAX_PLAYERS],
    pickupIDX;
    forward OnPlayerLeavePickup(playerid,pickupid);
    stock _xCreatePickup(model, type, Float:X, Float:Y, Float:Z, Virtualworld)
    {
    pickupInfo[pickupIDX][pickupID] = CreatePickup(model,type,X,Y,Z,Virtualworld);
    pickupInfo[pickupIDX][pickupX] = X;
    pickupInfo[pickupIDX][pickupY] = Y;
    pickupInfo[pickupIDX][pickupZ] = Z;
    pickupIDX++;
    return 1;
    }



    forward _xOnPlayerUpdate();
    public _xOnPlayerUpdate()
    {
    for(new p; p < pickupIDX; p++) {
    if(IsPlayerInRangeOfPoint(playerid,1.0,pickupInfo[p][pickupX],pickupInfo[p][pickupY],pickupInfo[p][pickupZ])) {
    pickupPI[playerid] = true;
    }
    else {
    if(pickupPI[playerid] == true) {
    pickupPI[playerid] = false;
    CallLocalFunction("OnPlayerLeavePickup","dd",playerid,pickupInfo[p][pickupID]);
    }
    }
    }
    return 1;
    }



    #if defined _ALS_CreatePickup
    #undef CreatePickup
    #else
    #define _ALS_CreatePickup
    #endif
    #define CreatePickup _xCreatePickup


    #if defined _ALS_OnPlayerUpdate
    #undef OnPlayerUpdate
    #else
    #define _ALS_OnPlayerUpdate
    #endif
    #define OnPlayerUpdate _xOnPlayerUpdate



    Option A: In eine Include packen und oben ins Script einbinden (#include blabla)
    Option B: Unter deine Includes kopieren
    Mal eben in 15 Minuten aus lw gescriptet, viel Spaß. (Falls Fehler auftreten posten, ich geb noch Support für den Code xD)

    Hab das was Robdeflop gesagt hat mal in ein kleines FS reingepackt.
    Die Rakete merkt man nicht und da das alles in OnPlayerUpdate passiert und da 0 returnt wird, wenn jemand versucht ne Rakete
    abzuschießen wird es nicht gesynct, sollte also alles passen.
    //Edit: Downloadlink zum 2. Mal aktualisiert, hab im Script was vergessen

    public OnVehicleStreamIn(vehicleid, forplayerid) {
    for(new pv = 0; pv < sizeof(AutohausVehs); pv++)
    {
    if(AutohausVehs[pv] == vehicleid) {
    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(AutohausVehs[pv], engine , lights , alarm , doors , bonnet , boot , objective );
    SetVehicleParamsEx(AutohausVehs[pv], engine , lights , alarm , VEHICLE_PARAMS_OFF , bonnet , boot , objective );
    break;
    }
    }
    return 1;
    }
    Falls es immer noch nicht klappt, versuche statt VEHICLE_PARAMS_OFF VEHICLE_PARAMS_ON.