Nützliche Codeschnipsel

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
  • So habe es nun hinbekommen.
    Ist sehr nützlich für jeden Mapper, der von vielen Objekten die Texturen ändern will (Boden, Wände etc)


    stock SetVarMaterial(object_var[],materialindex,modelid,txdname[],texturename[],materialcolor=0,size=sizeof(object_var))
    {
    for(new i=0; i<size; i++)
    {
    SetObjectMaterial(object_var[i],materialindex,modelid,txdname,texturename,materialcolor);
    }
    return 1;
    }



  • error 017: undefined symbol "firstperson"
    warning 215: expression has no effect
    error 001: expected token: ";", but found "]"
    error 029: invalid expression, assumed zero
    fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    Wie bekomme ich das weg?
    new firstperson oben bringt nichts :S

  • new firstperson[MAX_PLAYERS]; ?


  • tatsächlich, geht ;) danke
    habe ich wohl mal wieder ein simikolon oder so vergessen

    Und dazu gerne noch /exit ,)
    if (strcmp("/exitfirstperson", cmdtext, true, 10) == 0)
    {
    SetCameraBehindPlayer(playerid);
    DestroyObject(firstperson[playerid]);
    return 1;
    }


  • Ich frag mich immer nur woher ich sowass überhaupt weiss.Herr Sommerferien :D

  • Hier mal ein stock wo man anfragen kann, ob der Spieler 1 von spieler 2 mit einer Weite entfernt ist...



    stock IsPlayerInRangeOfPlayer(playerid,other,weite)
    {
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(other,X,Y,Z);
    if(IsPlayerInRangeOfPoint(playerid,weite,X,Y,Z))
    {
    return 1;
    }
    else return 0;
    }


    nutzung:
    if(IsPlayerInRangeOfPlayer(Playerid,Partnerid,5))
    {
    //Code
    }

  • Unter stock Loadaccount


    new Float:health; new Float:armour;
    Health & Armour sind ja Floatzahlen (100.0)


    SetPVarFloat(playerid,"Leben",health); SetPVarFloat(playerid,"Schutzweste",armour);
    Hier wird das Health & Armour aus der .ini oder .txt gelesen



    SetPlayerHealth(playerid,health); SetPlayerArmour(playerid,armour);
    Was aus der Spielerdatei gelesen wurde wird gesetzt


    Unter stock Spielerspeichern


    new Float:health; new Float:armour;



    dini_FloatSet(Spielerdatei,"Leben",health); dini_FloatSet(Spielerdatei,"Schutzweste",armour);
    Beim Ausloggen wird die Float Health & Armour gespeichert.


    Ich hoffe das hat euch geholfen da einige Probleme mit Leben & Schutzweste speichern hatten & wenn es geholfen hat bitte Daumen nach oben geben.


  • Finde das eher unhilfreich bzw. anti Hilfreich Gründe:


    - Dini ist so ziemlich das schlechteste
    - Wo erklärst du das laden oder schreibst du es?


    eine besonders gute Leistung wird das deshalb nicht unbedingt geben

  • stock AdminName(playerid)
    {
    new rang[128];
    switch(AdminAbfrage)
    {
    case 0: format(rang,sizeof(rang),"No Admin");
    case 1: format(rang,sizeof(rang),"Trial Moderator");
    case 2: format(rang,sizeof(rang),"Moderator");
    case 3: format(rang,sizeof(rang),"Administrator");
    case 4: format(rang,sizeof(rang),"Head of Administration");
    case 5: format(rang,sizeof(rang),"Map Manager / Team Manager");
    case 6: format(rang,sizeof(rang),"Co-Owner");
    case 7: format(rang,sizeof(rang),"Owner");
    }
    return rang;
    }


    Kann man ganzeinfach im format(string,sizeof(string),"%s ist ein Admin %s",SpielerName(playerid),AdminName(playerid));


    Guter Support, Gute Preise! Freunde das ist kein Speed das ist Lichtgeschwindigkeit!
    Atrox Devolpment[/size]
    [size=24][color=#ff0000]Kunde | Top WBB Produkte

  • reoarni:
    Das ist ja wohl das dümmste was ich jemals gesehen hab, abgesehen vom SpielerNamen "stock".


    Warum muss ich denn überhaupt was formatieren und wozu zur Hölle, brauch ich nen 128 Array/String?


    Einfach bei switch ein return des Strings hin und fertig.
    Keine Formatierung keine Speicherbelastung

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • reoarni:
    Das ist ja wohl das dümmste was ich jemals gesehen hab, abgesehen vom SpielerNamen "stock".


    Warum muss ich denn überhaupt was formatieren und wozu zur Hölle, brauch ich nen 128 Array/String?


    Einfach bei switch ein return des Strings hin und fertig.
    Keine Formatierung keine Speicherbelastung


    Das ist ja auch was für Anfänger wie mich ^^


    Du bist ja da schon einwenig Fortgeschrittener! :thumbup:
    @BlackAce


    Guter Support, Gute Preise! Freunde das ist kein Speed das ist Lichtgeschwindigkeit!
    Atrox Devolpment[/size]
    [size=24][color=#ff0000]Kunde | Top WBB Produkte

  • Du bist ja da schon einwenig Fortgeschrittener! :thumbup:


    richtig ein "wenig" :D


    stock AdminName(playerid)
    {
    switch(AdminAbfrage)
    {
    case 0: return "No Admin";
    case 1: return "Trial Moderator";
    case 2: return "Moderator";
    case 3: return "Administrator";
    case 4: return "Head of Administration";
    case 5: return "Map Manager / Team Manager";
    case 6: return "Co-Owner";
    case 7: return "Owner";
    }
    }


    So wäre es aber sinnvoller :thumbup:

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski


  • Danke :> So hab ich auch was neues dazu gelernt :) @BlackAce


    Guter Support, Gute Preise! Freunde das ist kein Speed das ist Lichtgeschwindigkeit!
    Atrox Devolpment[/size]
    [size=24][color=#ff0000]Kunde | Top WBB Produkte

  • So wäre es aber sinnvoller


    Das wäre richtig...würden wir hier nicht mit Pawn arbeiten ^^


    Da kann man keine Strings direkt in einer Funktion returnen, sonst crasht der compiler, aus diesem Grund, muss man es in einer Variable zwischenspeichern und dann returnen.


    Also, ich würde zu folgendem Beispiel tendieren:


    stock AdminName(playerid) {
    new buffer[27];
    switch(AdminAbfrage) {
    case 0: strcat(buffer, "No Admin");
    case 1: strcat(buffer, "Trial Moderator");
    case 2: strcat(buffer, "Moderator");
    case 3: strcat(buffer, "Administrator");
    case 4: strcat(buffer, "Head of Administration");
    case 5: strcat(buffer, "Map Manager / Team Manager");
    case 6: strcat(buffer, "Co-Owner");
    case 7: strcat(buffer, "Owner");
    }
    return buffer;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Spart ein paar Zeilen. Keine Ahnung, ob es schneller ist:

    stock SpawnPlayerAtPos(playerid,local_team, local_skin, Float:local_spawnX, Float:local_spawnY, Float:local_spawnZ, Float:local_spawnAngle, local_w1, local_a1, local_w2, local_a2, local_w3, local_a3) {
    if(local_w1 > 46 || local_w1 < 0 || local_w2 > 46 || local_w2 < 0 || local_w3 > 46 || local_w3 < 0 || local_skin > 299) return -1;
    SetSpawnInfo(playerid, local_team, local_skin, local_spawnX, local_spawnY, local_spawnZ, local_spawnAngle, local_w1, local_a1, local_w2, local_a2, local_w3, local_a3);
    SpawnPlayer(playerid);
    return 1;
    }


    Kostenlose Pawno Alternative / PAWN IDE -> PawnStar
    Mass Effect
    :love:

  • damit muss man nicht immer format und dan die message abschiken
    und man muss nicht immer forward und public extra machen.



    //Definitionen
    #define SendFormatMessage(%0,%1,%2,%3,%4); format(%2,sizeof(%2),%3,%4); SendClientMessage(%0,%1,%2);
    #define Func%0(%1) forward%0(%1); public%0(%1)


    nun ein Beispiel



    stock GetName(playerid){
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    return Name;
    }


    public OnPlayerRequestClass(playerid, classid){
    new string[50];
    ClearChat(playerid,10);
    SendFormatMessage(playerid,Blau,string,"Herzlich Willkommen %s.",GetName(playerid));
    SetupPlayerForClassSelection(playerid);
    return 1;
    }


    alles getestet und es funktioniert

    3 Mal editiert, zuletzt von Detected ()


  • Das ist hoffentlich nur gelogen.
    ClearChat funktioniert definitiv nicht, sofern der Wert für numb größer als 1 ist. Auch gibt es bei mir keine Definition von "Weis".

  • enum
    {
    VEHICLE_FUEL_NONE,
    VEHICLE_FUEL_PETROL,
    VEHICLE_FUEL_DIESEL,
    VEHICLE_FUEL_ELEKTRO,
    VEHICLE_FUEL_KEROSIN
    }


    new VehicleFuelType[] = {
    /*Landstalker*/VEHICLE_FUEL_DIESEL,
    /*Bravura*/VEHICLE_FUEL_PETROL,
    /*Buffalo*/VEHICLE_FUEL_PETROL,
    /*Linerunner*/VEHICLE_FUEL_DIESEL,
    /*Pereniel*/VEHICLE_FUEL_PETROL,
    /*Sentinel*/VEHICLE_FUEL_PETROL,
    /*Dumper*/VEHICLE_FUEL_DIESEL,
    /*Firetruck*/VEHICLE_FUEL_DIESEL,
    /*Trashmaster*/VEHICLE_FUEL_DIESEL,
    /*Stretch*/VEHICLE_FUEL_PETROL,
    /*Manana*/VEHICLE_FUEL_PETROL,
    /*Infernus*/VEHICLE_FUEL_PETROL,
    /*Voodoo*/VEHICLE_FUEL_PETROL,
    /*Pony*/VEHICLE_FUEL_DIESEL,
    /*Mule*/VEHICLE_FUEL_DIESEL,
    /*Cheetah*/VEHICLE_FUEL_PETROL,
    /*Ambulance*/VEHICLE_FUEL_DIESEL,
    /*Leviathan*/VEHICLE_FUEL_KEROSIN,
    /*Moonbeam*/VEHICLE_FUEL_DIESEL,
    /*Esperanto*/VEHICLE_FUEL_PETROL,
    /*Taxi*/VEHICLE_FUEL_PETROL,
    /*Washington*/VEHICLE_FUEL_PETROL,
    /*Bobcat*/VEHICLE_FUEL_DIESEL,
    /*Mr Whoopee*/VEHICLE_FUEL_DIESEL,
    /*BF Injection*/VEHICLE_FUEL_PETROL,
    /*Hunter*/VEHICLE_FUEL_KEROSIN,
    /*Premier*/VEHICLE_FUEL_PETROL,
    /*Enforcer*/VEHICLE_FUEL_DIESEL,
    /*Securicar*/VEHICLE_FUEL_DIESEL,
    /*Banshee*/VEHICLE_FUEL_PETROL,
    /*Predator*/VEHICLE_FUEL_PETROL,
    /*Bus*/VEHICLE_FUEL_DIESEL,
    /*Rhino*/VEHICLE_FUEL_DIESEL,
    /*Barracks*/VEHICLE_FUEL_DIESEL,
    /*Hotknife*/VEHICLE_FUEL_PETROL,
    /*Trailer*/VEHICLE_FUEL_DIESEL,
    /*Previon*/VEHICLE_FUEL_PETROL,
    /*Coach*/VEHICLE_FUEL_DIESEL,
    /*Cabbie*/VEHICLE_FUEL_PETROL,
    /*Stallion*/VEHICLE_FUEL_PETROL,
    /*Rumpo*/VEHICLE_FUEL_PETROL,
    /*RC Bandit*/VEHICLE_FUEL_ELEKTRO,
    /*Romero*/VEHICLE_FUEL_PETROL,
    /*Packer*/VEHICLE_FUEL_DIESEL,
    /*Monster Truck*/VEHICLE_FUEL_PETROL,
    /*Admiral*/VEHICLE_FUEL_PETROL,
    /*Squalo*/VEHICLE_FUEL_PETROL,
    /*Seasparrow*/VEHICLE_FUEL_KEROSIN,
    /*Pizzaboy*/VEHICLE_FUEL_PETROL,
    /*Tram*/VEHICLE_FUEL_PETROL,
    /*Trailer*/VEHICLE_FUEL_DIESEL,
    /*Turismo*/VEHICLE_FUEL_PETROL,
    /*Speeder*/VEHICLE_FUEL_PETROL,
    /*Reefer*/VEHICLE_FUEL_PETROL,
    /*Tropic*/VEHICLE_FUEL_PETROL,
    /*Flatbed*/VEHICLE_FUEL_DIESEL,
    /*Yankee*/VEHICLE_FUEL_DIESEL,
    /*Caddy*/VEHICLE_FUEL_ELEKTRO,
    /*Solair*/VEHICLE_FUEL_PETROL,
    /*Berkley's RC Van*/VEHICLE_FUEL_DIESEL,
    /*Skimmer*/VEHICLE_FUEL_KEROSIN,
    /*PCJ-600*/VEHICLE_FUEL_PETROL,
    /*Faggio*/VEHICLE_FUEL_PETROL,
    /*Freeway*/VEHICLE_FUEL_PETROL,
    /*RC Baron*/VEHICLE_FUEL_PETROL,
    /*RC Raider*/VEHICLE_FUEL_PETROL,
    /*Glendale*/VEHICLE_FUEL_PETROL,
    /*Oceanic*/VEHICLE_FUEL_PETROL,
    /*Sanchez*/VEHICLE_FUEL_PETROL,
    /*Sparrow*/VEHICLE_FUEL_KEROSIN,
    /*Patriot*/VEHICLE_FUEL_PETROL,
    /*Quad*/VEHICLE_FUEL_PETROL,
    /*Coastguard*/VEHICLE_FUEL_PETROL,
    /*Dinghy*/VEHICLE_FUEL_PETROL,
    /*Hermes*/VEHICLE_FUEL_PETROL,
    /*Sabre*/VEHICLE_FUEL_PETROL,
    /*Rustler*/VEHICLE_FUEL_KEROSIN,
    /*ZR-350*/VEHICLE_FUEL_PETROL,
    /*Walton*/VEHICLE_FUEL_DIESEL,
    /*Regina*/VEHICLE_FUEL_PETROL,
    /*Comet*/VEHICLE_FUEL_PETROL,
    /*BMX*/VEHICLE_FUEL_NONE,
    /*Burrito*/VEHICLE_FUEL_PETROL,
    /*Camper*/VEHICLE_FUEL_PETROL,
    /*Marquis*/VEHICLE_FUEL_PETROL,
    /*Baggage*/VEHICLE_FUEL_ELEKTRO,
    /*Dozer*/VEHICLE_FUEL_DIESEL,
    /*Maverick*/VEHICLE_FUEL_KEROSIN,
    /*SAN News Maverick*/VEHICLE_FUEL_KEROSIN,
    /*Rancher*/VEHICLE_FUEL_PETROL,
    /*FBI Rancher*/VEHICLE_FUEL_PETROL,
    /*Virgo*/VEHICLE_FUEL_PETROL,
    /*Greenwood*/VEHICLE_FUEL_PETROL,
    /*Jetmax*/VEHICLE_FUEL_PETROL,
    /*Hotring*/VEHICLE_FUEL_PETROL,
    /*Sandking*/VEHICLE_FUEL_PETROL,
    /*Blista Compact*/VEHICLE_FUEL_PETROL,
    /*Police Maverick*/VEHICLE_FUEL_KEROSIN,
    /*Boxville*/VEHICLE_FUEL_DIESEL,
    /*Benson*/VEHICLE_FUEL_DIESEL,
    /*Mesa*/VEHICLE_FUEL_DIESEL,
    /*RC Goblin*/VEHICLE_FUEL_PETROL,
    /*Hotring Racer*/VEHICLE_FUEL_PETROL,
    /*Hotring Racer*/VEHICLE_FUEL_PETROL,
    /*Bloodring Banger*/VEHICLE_FUEL_PETROL,
    /*Rancher*/VEHICLE_FUEL_PETROL,
    /*Super GT*/VEHICLE_FUEL_PETROL,
    /*Elegant*/VEHICLE_FUEL_PETROL,
    /*Journey*/VEHICLE_FUEL_DIESEL,
    /*Bike*/VEHICLE_FUEL_NONE,
    /*Mountain Bike*/VEHICLE_FUEL_NONE,
    /*Beagle*/VEHICLE_FUEL_KEROSIN,
    /*Cropdust*/VEHICLE_FUEL_KEROSIN,
    /*Stunt*/VEHICLE_FUEL_KEROSIN,
    /*Tanker*/VEHICLE_FUEL_DIESEL,
    /*RoadTrain*/VEHICLE_FUEL_DIESEL,
    /*Nebula*/VEHICLE_FUEL_PETROL,
    /*Majestic*/VEHICLE_FUEL_PETROL,
    /*Buccaneer*/VEHICLE_FUEL_PETROL,
    /*Shamal*/VEHICLE_FUEL_KEROSIN,
    /*Hydra*/VEHICLE_FUEL_KEROSIN,
    /*FCR-900*/VEHICLE_FUEL_PETROL,
    /*NRG-500*/VEHICLE_FUEL_PETROL,
    /*HPV1000*/VEHICLE_FUEL_PETROL,
    /*Cement Truck*/VEHICLE_FUEL_DIESEL,
    /*Tow Truck*/VEHICLE_FUEL_DIESEL,
    /*Fortune*/VEHICLE_FUEL_PETROL,
    /*Cadrona*/VEHICLE_FUEL_PETROL,
    /*FBI Truck*/VEHICLE_FUEL_DIESEL,
    /*Willard*/VEHICLE_FUEL_PETROL,
    /*Forklift*/VEHICLE_FUEL_ELEKTRO,
    /*Tractor*/VEHICLE_FUEL_DIESEL,
    /*Combine*/VEHICLE_FUEL_DIESEL,
    /*Feltzer*/VEHICLE_FUEL_PETROL,
    /*Remington*/VEHICLE_FUEL_PETROL,
    /*Slamvan*/VEHICLE_FUEL_PETROL,
    /*Blade*/VEHICLE_FUEL_PETROL,
    /*Freight*/VEHICLE_FUEL_DIESEL,
    /*Streak*/VEHICLE_FUEL_DIESEL,
    /*Vortex*/VEHICLE_FUEL_PETROL,
    /*Vincent*/VEHICLE_FUEL_PETROL,
    /*Bullet*/VEHICLE_FUEL_PETROL,
    /*Clover*/VEHICLE_FUEL_PETROL,
    /*Sadler*/VEHICLE_FUEL_DIESEL,
    /*Firetruck*/VEHICLE_FUEL_DIESEL,
    /*Hustler*/VEHICLE_FUEL_PETROL,
    /*Intruder*/VEHICLE_FUEL_PETROL,
    /*Primo*/VEHICLE_FUEL_PETROL,
    /*Cargobob*/VEHICLE_FUEL_KEROSIN,
    /*Tampa*/VEHICLE_FUEL_PETROL,
    /*Sunrise*/VEHICLE_FUEL_PETROL,
    /*Merit*/VEHICLE_FUEL_PETROL,
    /*Utility*/VEHICLE_FUEL_DIESEL,
    /*Nevada*/VEHICLE_FUEL_KEROSIN,
    /*Yosemite*/VEHICLE_FUEL_PETROL,
    /*Windsor*/VEHICLE_FUEL_PETROL,
    /*Monster Truck*/VEHICLE_FUEL_PETROL,
    /*Monster Truck*/VEHICLE_FUEL_PETROL,
    /*Uranus*/VEHICLE_FUEL_PETROL,
    /*Jester*/VEHICLE_FUEL_PETROL,
    /*Sultan*/VEHICLE_FUEL_PETROL,
    /*Stratum*/VEHICLE_FUEL_PETROL,
    /*Elegy*/VEHICLE_FUEL_PETROL,
    /*Raindance*/VEHICLE_FUEL_KEROSIN,
    /*RC Tiger*/VEHICLE_FUEL_ELEKTRO,
    /*Flash*/VEHICLE_FUEL_PETROL,
    /*Tahoma*/VEHICLE_FUEL_PETROL,
    /*Savanna*/VEHICLE_FUEL_PETROL,
    /*Bandito*/VEHICLE_FUEL_PETROL,
    /*Freight*/VEHICLE_FUEL_DIESEL,
    /*Trailer*/VEHICLE_FUEL_DIESEL,
    /*Kart*/VEHICLE_FUEL_PETROL,
    /*Mower*/VEHICLE_FUEL_PETROL,
    /*Duneride*/VEHICLE_FUEL_PETROL,
    /*Sweeper*/VEHICLE_FUEL_PETROL,
    /*Broadway*/VEHICLE_FUEL_PETROL,
    /*Tornado*/VEHICLE_FUEL_PETROL,
    /*AT-400*/VEHICLE_FUEL_KEROSIN,
    /*DFT-30*/VEHICLE_FUEL_DIESEL,
    /*Huntley*/VEHICLE_FUEL_PETROL,
    /*Stafford*/VEHICLE_FUEL_PETROL,
    /*BF-400*/VEHICLE_FUEL_PETROL,
    /*Newsvan*/VEHICLE_FUEL_DIESEL,
    /*Tug*/VEHICLE_FUEL_PETROL,
    /*Trailer*/VEHICLE_FUEL_DIESEL,
    /*Emperor*/VEHICLE_FUEL_PETROL,
    /*Wayfarer*/VEHICLE_FUEL_PETROL,
    /*Euros*/VEHICLE_FUEL_PETROL,
    /*Hotdog*/VEHICLE_FUEL_DIESEL,
    /*Club*/VEHICLE_FUEL_PETROL,
    /*Trailer*/VEHICLE_FUEL_DIESEL,
    /*Trailer*/VEHICLE_FUEL_DIESEL,
    /*Andromada*/VEHICLE_FUEL_KEROSIN,
    /*Dodo*/VEHICLE_FUEL_KEROSIN,
    /*RC Cam*/VEHICLE_FUEL_ELEKTRO,
    /*Launch*/VEHICLE_FUEL_PETROL,
    /*Police Car (LSPD)*/VEHICLE_FUEL_PETROL,
    /*Police Car (SFPD)*/VEHICLE_FUEL_PETROL,
    /*Police Car (LVPD)*/VEHICLE_FUEL_PETROL,
    /*Police Ranger*/VEHICLE_FUEL_DIESEL,
    /*Picador*/VEHICLE_FUEL_DIESEL,
    /*S.W.A.T. Van*/VEHICLE_FUEL_DIESEL,
    /*Alpha*/VEHICLE_FUEL_PETROL,
    /*Phoenix*/VEHICLE_FUEL_PETROL,
    /*Glendale*/VEHICLE_FUEL_PETROL,
    /*Sadler*/VEHICLE_FUEL_DIESEL,
    /*Luggage Trailer*/VEHICLE_FUEL_ELEKTRO,
    /*Luggage Trailer*/VEHICLE_FUEL_ELEKTRO,
    /*Stair Trailer*/VEHICLE_FUEL_ELEKTRO,
    /*Boxville*/VEHICLE_FUEL_DIESEL,
    /*Farm Plow*/VEHICLE_FUEL_ELEKTRO,
    /*Utility Trailer*/VEHICLE_FUEL_ELEKTRO
    };

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