[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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

  • //beim ticket versenden
    new id = playerid; //je nach dem wie deine variable heißt, weißt du einfach die playerid zu.


    //Und beim anzeigen einfach.
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(id,Name,sizeof(Name));
    //Name = Name der id.


    So sollte es funktoinieren. Also nur grob erklärt.


  • Kannst du mir das etwas genauer erklären bitte.
    new id = playerid; <------ID ist jetzt die globaele Variable dadurch kann ich denn Absender des Tickets herausfinden oder?


    new Name[MAX_PLAYER_NAME];<-------------------Schleife dir durch alle Namen durch geht?
    GetPlayerName(id,Name,sizeof(Name));<----------------------Die den Namen aufsaugt.


    Aber leider kommt bei mir undefined Symbol playerid.
    Was mache ich falsch.


    new id = playerid; <- Muss ganz hoch richtig?

  • new id = playerid; <- Muss ganz hoch richtig?


    Nein, denn playerid ist nur ein Varialenname, der in den Standard-Callbacks so heißt.
    Sprich, du deklarierst die Variable oben und weißt ihr im Context dann den Wert zu.
    Aber das Problem hierbei ist, wenn noch einer ein Ticket absendet, hat die Variable den Wert und nicht, von dem davor.
    Deswegen würde ich an deiner Stelle mit Arrays arbeiten.
    Den Namen würde ich auch auf einer Array speichern (nicht die gleiche), die du beim connecten dann darauf formatierst.
    So kannst du dann über den Index der Spielerid den Namen herrausfinden. Beispiel mit Array "PlayerInfo"
    GetPlayerName(playerid,PlayerInfo[playerid][Name],24);


    Unklarheiten bitte melden ;)


    L.G.

  • Hallo ich habe eine Kleine frage wenn ich in einem interior die Frak Oamt und News haben will und da z.b eine tür gemappt habe muss ich das object 2 mal spawnen ? oder geht das auch i-wie anders sprich das die tür in beiden spawnt weil ich die ja in 2 unterschiedlichen Virtuelen welten spawne

  • Aber die Farbcodes werden irgenwie nicht umgewandelt.


    In GaneTexten gibt es nur:



    Hallo


    Objekte werden in allen Interiors und allen Virtuellen Welten erstellt (außer du stellst die Parameter für Streamer ein oder schreibst ein anderes System).


    mfg. :thumbup:

    ast2ufdyxkb1.png


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



  • Ne habe das in einem Filterscript und dann über streamer
    CreateDynamicObject(1569, 368.47, 161.53, 1024.78, 0.00, 0.00, 89.70,5,3,-1,400.0,400.0);
    CreateDynamicObject(19387, 368.51, 162.26, 1026.20, 0.00, 0.00, 0.00,5,3,-1,400.0,400.0);
    die will ich jetze auch in interrior 11 spawnen

  • Habe einen Fehler mit meinem Dialog.


    ocmd:score(playerid,params[]) {
    ShowPlayerDialog(playerid, DIALOG_SCORE, DIALOG_STYLE_MSGBOX, "Score von %s", "Dein Score: %s", "Close", "",Name(playerid),GetPVarInt(playerid,"Respektpunkte"));//Fehler??!?!
    return 1;
    }


    Code:
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(754) : warning 202: number of arguments does not match definition
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(754) : warning 202: number of arguments does not match definition

  • @FerienFreak: Du musst das Ganze in einem String formatieren..
    ocmd:score(playerid,params[]) {
    new heading[32],text[64];
    format(heading,sizeof(heading),"Score von %s",Name(playerid)), format(text,sizeof(text),"Dein Score: %s",GetPVarInt(playerid,"Respektpunkte"));
    return ShowPlayerDialog(playerid, DIALOG_SCORE, DIALOG_STYLE_MSGBOX, heading, text, "Close", "");
    }

  • @FerienFreak:
    ErikSon:


    Naja fast, da ist noch ein %s wo ein %d / %i hin muss ;)
    ocmd:score(playerid) {
    new heading[32],text[32];
    format(heading,sizeof(heading),"Score von %s",Name(playerid)), format(text,sizeof(text),"Dein Score: %d",GetPVarInt(playerid,"Respektpunkte"));
    return ShowPlayerDialog(playerid, DIALOG_SCORE, DIALOG_STYLE_MSGBOX, heading, text, "Close", "");
    }