Beiträge von firestormZ

    Tag Community,
    hab ne Frage, kann mir jemand mal so ne Art Tutorial machen /Link schicken, wie man die 0.3x Textdraws nutzt und was das alles bedeutet?
    Möchte z.b eine Textdraw mit 5Skins erstellen.


    PS: Ich versteh nicht so viel von Textdraws :)


    mfg :thumbup:

    Tag Community,
    ich habe mir nen Haussystem erstellt,und möchte gerne, dass man per Dialog an mehreren Häusern Spawnen kann.
    Die Datei heißt "haus_daten.cfg", aber man spawnt immer an dem ersten Haus, das man sich gekauft hat, also in der Datei, das erste mal wenn mein Name auftaucht.


    Meine aktuelle Abfrage lautet:

    for(new i = 0;i<_cache_haus;i++)
    {
    if(!strcmp(HausDaten[i][Besitzer],SpielerName(playerid)))
    {
    ShowPlayerDialog(playerid,DIALOG_SpawnHaus,DIALOG_STYLE_LIST,"Spawn Orte","Noobspawn\n1.Wohnort","Spawn","Abbrechen");
    break;
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_SpawnHaus,DIALOG_STYLE_LIST,"Spawn Orte","Noobspawn","Spawn","Abbrechen");
    }
    }


    Die Häuser werden so in der haus_daten.cfg gespeichert:

    firestormZ,692.887145,-1602.772705,15.046875,178.582092,2365.245605,-1135.240112,1050.875000,359.984802,2372.128417,-1125.048339,1050.875000,171.066497,8,3214,40000,1,0,

    ich möchte dann z.B. das wenn ich zwei Häuser besitze, der erste Eintrag mit meinem Namen übersprungen wird, und dann der Zweite Eintrag mit meinem Namen ausgeführt wird.


    mfg :thumbup:


    /edit: push
    /edit2: push


    stock Register(playerid,key[])
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    dini_Create(Playerdatei); // Zeile 300
    dini_Set(Playerdatei,"Passwort",key);
    dini_IntSet(Playerdatei,"Admin",0); // Zeile 302
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"Eingeloggt",1);
    return 1;
    }
    stock Login(playerid,key[])
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini");
    if(!strcmp(key,dini_Get(Playerdatei,"Passwort"),false))
    {
    AccountLaden(playerid);
    }
    else
    {
    SendClientMessage(playerid,Gruen,"Du hast ein falsches Passwort eingegeben!");
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden.\n Bitte gib jetzt dein Passwort ein.","Abbrechen","Abbrechen");
    }
    }
    stock AccountLaden(playerid)
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    Spieler[playerid][Level] = dini_Int(Playerdatei,"Level");
    Spieler[playerid][Admin] = dini_Int(Playerdatei,"Admin");
    SetPVarInt(playerid,"Eingeloggt",1);
    return 1;
    }
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"Eingeloggt")== 1)
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    dini_IntSet(Playerdatei,"Level", Spieler[playerid][Level]);
    dini_IntSet(Playerdatei,"Admin", Spieler[playerid][Admin]); // Zeile 342
    }
    return 1;
    }

    Bei SpielerSpeichern immer mit dini_IntSet arbeiten,
    bei AccontLaden mit dini_Int :)

    und welche Zeile ist was? also welche Zeile 302, 304 und 342?
    Du hast lediglich Kommas vergessen etc, übernehm das mal alles, dann müsste es richtig sein...

    stock Register(playerid,key[])
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    dini_Create(Playerdatei); // Zeile 300
    dini_Set(Playerdatei,"Passwort",key);
    dini_Set(Playerdatei,"Admin",0); // Zeile 302
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"Eingeloggt",1);
    return 1;
    }
    stock Login(playerid,key[])
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini");
    if(!strcmp(key,dini_Get(Playerdatei,"Passwort"),false))
    {
    AccountLaden(playerid);
    }
    else
    {
    SendClientMessage(playerid,Gruen,"Du hast ein falsches Passwort eingegeben!");
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden.\n Bitte gib jetzt dein Passwort ein.","Abbrechen","Abbrechen");
    }
    }
    stock AccountLaden(playerid)
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    Spieler[playerid][Level] = dini_Int(Playerdatei,"Level");
    Spieler[playerid][Admin] = dini_Int(Playerdatei,"Admin");
    SetPVarInt(playerid,"Eingeloggt",1);
    return 1;
    }
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"Eingeloggt")== 1)
    {
    new Playerdatei[128];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
    dini_Int(Playerdatei,"Level", Spieler[playerid][Level]);
    dini_Int(Playerdatei,"Admin", Spieler[playerid][Admin]); // Zeile 342
    }
    return 1;
    }

    okay, du hast

    ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Alpha Status\n Registrier dich auf GTA-Server.de\n Bitte gib jetzt dein gewünschtes Passwort ein.","Abbrechen","Abbrechen");


    gemacht, und anstatt die Zahl (rot makiert) gib lieber den vollständigen Dialog an, also DIALOG_REGISTER,
    dann sind wir schonmal bei:


    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Alpha Status\n Registrier dich auf GTA-Server.de\n Bitte gib jetzt dein gewünschtes Passwort ein.","Abbrechen","Abbrechen");


    Dann hast du keine Überschrift also nur den Text "Alpha Status\n Registrier dich auf GTA-Server.de\n Bitte gib jetzt dein gewünschtes Passwort ein.":


    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Alpha Status\n Registrier dich auf GTA-Server.de\n Bitte gib jetzt dein gewünschtes Passwort ein.","Abbrechen","Abbrechen");


    das musst du ändern, bzw. eine Überschrift "erfinden":


    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Alpha Status","Registrier dich auf GTA-Server.de\n Bitte gib jetzt dein gewünschtes Passwort ein.","Abbrechen","Abbrechen");


    Die Lösung ist:

    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Alpha Status","Registrier dich auf GTA-Server.de\n Bitte gib jetzt dein gewünschtes Passwort ein.","Abbrechen","Abbrechen");

    Doch, die "2", die ersetzt du um nen besseren Überblick zu erhalten durch dein "DIALOG_...." das du oben im Script definiert hast, und dort sind noch ein paar Fehler, ich zeig dir jetzt mal die Lösung:

    ShowPlayerDialog(playerid,DIALOG_LOGIN/*Hast du oben im Script definiert*/,DIALOG_STYLE_PASSWORD,"Alpha Status"/*Die Überschrift des Dialoges*/,"Registrier dich auf GTA-Server.de\n Bitte gib jetzt dein gewünschtes Passwort ein.","Abbrechen","Abbrechen");


    Guck dir das mal an, dann verstehst du es auch :) --> ShowPLayerDialog
    Struktur:

    ShowPlayerDialog(playerid,Dein Dialog,Dialog Art,"Überschrift des Dialoges","Text des Dialoges","Kopf1","Knopf2");


    stock Register(playerid,key[])
    {
    new Spielerdatei[128]; //hier hast du Spielerdatei definiert,
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name); //und hier hast du Playerdatei angegeben, also Playerdatei in Spielerdatei ändern
    dini_Create(Playerdatei);
    dini_Set(Playerdatei,"Passwort",key);
    dini_Set(Playerdatei,"Admin",0);
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,0);
    return 1;
    }



    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Rot,"Dein Passwort war nicht lang genug.");
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Alpha Status\n Registrier dich auf GTA-Server.de\n Bitte gib jetzt dein gewünschtes Passwort ein.","Abbrechen","Abbrechen"); //vor "DIALOG_STYLE_PASSWORD" musst du, "DIALOG_LOGIN" setzen, also anstatt die 2 "DIALOG_LOGIN"
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;

    Tag Community, habe vor diesen /enter befehl unter OnPlayerPickUpPickUp zu hauen, könnt ihr mir da helfen?

    new idx1, cmd1[256];
    cmd1 = strtok1(cmdtext,idx1);
    if(!strcmp(cmd1,"/enter",true))
    {
    for(new i = 0;i<_cache_haus;i++)
    {
    if(HausDaten[i][interior] == 0)continue;
    if(!IsPlayerInRangeOfPoint(playerid,1.5,HausDaten[i][ax],HausDaten[i][ay],HausDaten[i][az]))continue;
    if(HausDaten[i][verschlossen]){SendClientMessage(playerid,ROT,"Dieses Haus ist verschlossen!");break;}
    SetPlayerInterior(playerid,HausDaten[i][interior]);
    SetPlayerFacingAngle(playerid,HausDaten[i][iang]);
    SetCameraBehindPlayer(playerid);
    SetPlayerVirtualWorld(playerid,HausDaten[i][virtual_world]);
    SetPlayerPos(playerid,HausDaten[i][ix],HausDaten[i][iy],HausDaten[i][iz]);
    }
    return 1;
    }

    John_Sanclear
    SpielerSpeichern: dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    SpielerLaden: GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));


    @Barnabas Collins:
    Er soll das PayPlayerMoney-Callback einfach raushauen und mit GivePLayerMoney arbeiten?