[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
  • Hey,


    bei mir wird OnPlayerSpawn aufgerufen und ich spawne in Blueberry. Er versucht mich in die Richtige Welt zusetzen schafft es aber nicht warum?
    /*
    enum fractionsEnum{
    f_id,
    f_name,
    f_spawn_x,
    f_spawn_y,
    f_spawn_z,
    f_spawn_r,
    f_interior
    }
    new fInfo[250][fractionsEnum];*/


    public OnPlayerSpawn(playerid)
    {
    if(!pInfo[playerid][pLoggedIn])return 1;
    SetPlayerSkin(playerid, pInfo[playerid][pSkin]);
    if(pInfo[playerid][pFraction] > 0) {
    SetPlayerInterior(playerid, fInfo[pFraction][f_interior]);
    SetPlayerPos(playerid, fInfo[pFraction][f_spawn_x],fInfo[pFraction][f_spawn_y],fInfo[pFraction][f_spawn_z]);
    SetPlayerVirtualWorld(playerid, 0);
    } else {
    SetPlayerPos(playerid, 116.0559,1050.0408,13.6094);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerInterior(playerid, 0);
    }
    return 1;
    }

  • Hey,


    bei mir wird OnPlayerSpawn aufgerufen und ich spawne in Blueberry. Er versucht mich in die Richtige Welt zusetzen schafft es aber nicht warum?
    /*enum fractionsEnum{f_id,f_name,f_spawn_x,f_spawn_y,f_spawn_z,f_spawn_r,f_interior}new fInfo[250][fractionsEnum];*/public OnPlayerSpawn(playerid){if(!pInfo[playerid][pLoggedIn])return 1;SetPlayerSkin(playerid, pInfo[playerid][pSkin]);if(pInfo[playerid][pFraction] > 0) {SetPlayerInterior(playerid, fInfo[pFraction][f_interior]);SetPlayerPos(playerid, fInfo[pFraction][f_spawn_x],fInfo[pFraction][f_spawn_y],fInfo[pFraction][f_spawn_z]);SetPlayerVirtualWorld(playerid, 0);} else {SetPlayerPos(playerid, 116.0559,1050.0408,13.6094);SetPlayerVirtualWorld(playerid, 0);SetPlayerInterior(playerid, 0);}return 1;}

    Print mal die Virtuelle Welt

  • Okay, ich will es aber alle paar Millisekunden ändern lassen.
    Ich hab es so oben definiert:
    #define SERVER_SCREENNAME1 "["
    #define SERVER_SCREENNAME2 "[R"
    #define SERVER_SCREENNAME3 "[RL"
    #define SERVER_SCREENNAME4 "[RLR"
    #define SERVER_SCREENNAME5 "[RLR]"
    #define SERVER_SCREENNAME6 "[RLR] R"
    #define SERVER_SCREENNAME7 "[RLR] Re"
    #define SERVER_SCREENNAME8 "[RLR] Red"
    #define SERVER_SCREENNAME9 "[RLR] RedL"
    #define SERVER_SCREENNAME10 "[RLR] RedLi"
    #define SERVER_SCREENNAME11 "[RLR] RedLif"
    #define SERVER_SCREENNAME12 "[RLR] RedLife"
    #define SERVER_SCREENNAME13 "[RLR] RedLife R"
    #define SERVER_SCREENNAME14 "[RLR] RedLife Re"
    #define SERVER_SCREENNAME15 "[RLR] RedLife Rea"
    #define SERVER_SCREENNAME16 "[RLR] RedLife Real"
    #define SERVER_SCREENNAME17 "[RLR] RedLife Reall"
    #define SERVER_SCREENNAME18 "[RLR] RedLife Realli"
    #define SERVER_SCREENNAME19 "[RLR] RedLife Reallif"
    #define SERVER_SCREENNAME20 "[RLR] RedLife Reallife"


    Wie kann ich nach und nach als Hostename anzeigen?

  • Um das mal kurz zu sagen, das sieht nicht gut aus mit dem Namen, wenn der sich permanent ändert :D


    Da man immer einen links Klick machen muss, damit man die Veränderung des Namens sieht, das geht nicht automatisch ^^


    Hier ein kleines Beispiel:


    ast2ufdyxkb1.png


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

  • Könntest du mir anhand diesem hier erklären wie ich zum Beispiel wenn ich ein Event starte. Den Namen ändern lassen kann?
    //Oben im Skript
    #define SERVER_NAME_INTERVAL 500


    //Ruf folgendes unter OnGameModeInitAuf
    SetTimerEx("changeServerName", SERVER_NAME_INTERVAL, 0, "i", 0);


    //Dann iwo im Skript
    forward changeServerName(x);
    public changeServerName(x)
    {
    static const s_name[]="[RLR] RedLife Reallife";
    new tmp[8 + sizeof(s_name) + 1];
    strmid(tmp,s_name,0,x,sizeof(s_name));
    format(tmp,sizeof tmp,"hostname %s",tmp);
    SendRconCommand(tmp);
    if(x == sizeof(s_name)-1) x=-1;
    SetTimerEx("changeServerName", SERVER_NAME_INTERVAL, 0, "i", ++x);
    }

  • Kann mir einer sagen warum das:
    format(string,sizeof(string),"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s",fInfo[pInfo[playerid][pFraction]][f_rank0],fInfo[pInfo[playerid][pFraction]][f_rank1],fInfo[pInfo[playerid][pFraction]][f_rank2],fInfo[pInfo[playerid][pFraction]][f_rank3],
    fInfo[pInfo[playerid][pFraction]][f_rank4],fInfo[pInfo[playerid][pFraction]][f_rank5],fInfo[pInfo[playerid][pFraction]][f_rank6],fInfo[pInfo[playerid][pFraction]][f_rank7]);
    ShowPlayerDialog(playerid, DIALOG_FSETTINGS_SETTINGS_RANKNAMES_OVERVIEW, DIALOG_STYLE_LIST, "Einstellungen", string, "","Zurück");


    Nicht funktioniert er zeigt mir den Dialog an doch ohne irgendwas drin.

  • Hey, habe soeben ein Dialog bearbeitet und habe den zurück Button hinzugefügt, nur habe ich das irgendwie nicht hinbekommen.


    Kann mir jemand zeigen wie man's richtig macht?
    (Hatte es hinbekommen dass der zurück Button funktioniert, aber man konnte dann das Dialog nicht mehr schließen)



    Mit freundlichen Grüßen
    JustMe.77 8)

  • du hast ja

    Code
    if(response)
    {
    	/* rest der Codes */
    }




    das bedeutet wenn der das Auswählt sprich auf den "Close" Button klickt.
    Hast du mal versucht folgendes zu machen?



    Ist mal ne vermutung, denn du gibst ja nur an was bei dem einen Button passieren soll :)




    Kann mir jemand auch kurz weiterhelfen, es handelt sich bestimmt um ein Denkfehler.
    Ich möchte, wenn der Spieler vor nem Objekt ist ( Müllsäcke ) und halt ne Taste klickt, dann soll er dieses Objekt
    was auf dem Boden war verschwinden und in seinen Händen Attachen...


    Folgendes habe ich versucht:


    Falls ihr den Enum braucht:


    Objekt wird folgendermaßen erstellt:

    Code
    Muellt_Info[i][Mueltonne] = CreateDynamicObject(Muell_Info[i][MuellObjekt],Muell_Info[i][m_posX],Muell_Info[i][m_posY],Muell_Info[i][m_posZ],Muell_Info[i][m_posRX],Muell_Info[i][m_posRY],Muell_Info[i][m_t_posRZ]);


    Der Fehler liegt da wo der Spieler die Taste drückt, aber ich weiß nicht was ich falsch gemacht habe? :o

  • @J0a9


    Ne, funktioniert so nicht..


    Habe es so versucht:



    if(dialogid == D_Tops+2 || D_Tops+3 || D_Tops+4)
    {




    if(!response)
    {



    ShowPlayerDialog(playerid, D_Tops, DIALOG_STYLE_LIST, "BattleArena: Ranking", "\
    Top Level\n\
    Top Kills\n\
    Top Deaths\n\
    Top Ratio\n\
    Top Smokers\n\
    ", "Select", "Cancel");
    return 1;



    }
    }


    Damit funktionierts (ich kann auf die Zurück Buttons klicken) aber nicht mehr das Dialog schließen..


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Hey,


    warum funktioniert das nicht?:

    format(string,sizeof(string),"%s",inputtext);
    cfrak_info[23][f_name] = string;
    format(string,sizeof(string),"Sie erstellen die Fraktion {FF7700}%s{FFFFFF}", cfrak_info[23][f_name]);
    SCM(playerid,COLOR_YELLOW,string);


    Code
    error 047: array sizes do not match, or destination array is too small