Beiträge von K3nNy

    Hallo Community,


    weil Nova auf 0.3b RC1 umgestiegen ist, musste ich vor ein paar Tagen auch meinen Client und Testserver auf 0.3b RC1 aktualisieren.
    Seit dem Wechsel habe ich aber folgendes Problem:


    Wenn sich ein Spieler einloggt, dann spawnt der Spieler nicht, obwohl ich den Spieler mit SpawnPlayer spawnen lasse...
    Auch wenn der Spieler einen Spawn requestet (OnPlayerRequestSpawn) ändert sich nichts. Ich habe testeweise sogar in OnPlayerRequestSpawn "SpawnPlayer" verwendet und einmal den Callback komplett ausgelassen (dann sollte er ja auch spawnen).
    Ich habe auch einen Timer vor dem Login gesetzt, also kann es nicht am Laden liegen (den habe ich sogar auf 1 Minute gesetzt...).
    Mir ist auch aufgefallen, dass OnPlayerSpawn gar nicht aufgerufen wird, also der ganze Spawn hakt. Ich habe echt schon alle möglichen Spawnmethoden durchgetestet, aber keine funktioniert...


    Ich habe echt keine Ahnung mehr, was ich falsch mache, wenn ihr Codeschnipsel braucht, poste ich sie gerne (ich wüsste grade nicht, welche wichtig wären...)


    Ich hoffe mir kann einer helfen.


    Mit freundlichen Grüßen
    K3nNy

    Hey Leute,


    wenn ich meinen Server starten will, bekomme ich folgenden Error:


    Ich weiß, dass es schon hunderte Threads zu diesem Error gibt, aber keiner konnte mein Problem lösen...
    Anscheinend ist es ein Fehler, der 1000 verschiedene Gründe haben kann...


    Naja zur Entstehung:
    Mein Server (ein Testserver, der auf meinem PC läuft) läuft unter Windows 7.
    Bisher lief immer alles wie es sollte.
    Heute wolle ich nur ein paar stocks in ein include packen und das dann starten --> Error 19.
    Ich habe den ganzen Kram dann wieder zurückkopiert wie es vorher war, den
    #include
    wieder rausgenommen, aber trotzdem kam der Fehler...
    Ich wüsste nicht, was ich großartig verändert habe, vielleicht könnt ihr mir helfen...


    MfG
    K3nNy


    *edit*


    OK hat sich erledigt...
    ich hatte in einem anderen Include unten natives hinzugefügt.
    Als ich diese gelöscht habe, lief wieder alles.
    Ich dachte immer, dass die natives nur dazu da sind, dass die Befehle in Pawno einen Infotext haben... aber anscheinend machen die auch Probleme


    P.S.: Wenn jemand mal langeweile hat, kann er mir ja mal erklären, warum die natives das Ausführen behindern können...

    Ok dei Fehler ist:
    Der Timer leitet die Variable "playerid" nicht weiter, die für die Funktion wichtig ist.
    Änder mal den Timer auf:
    SetTimerEx("reptimer",3500,false, "i", playerid);


    dann wird die Variable übergeben, und die Funtion reptimer kann korrekt arbeiten ;)

    Korrektur von Pixels' Script:
    dcmd_slap(playerid,cmdtext)
    {
    new pID,pSize;
    if(sscanf(params, "dd",pID,pSize))
    {
    //wenn nur /slap eingegeben worden ist
    }
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(pID,X,Y,Z);
    SetPlayerPos(pID,X,Y,Z+pSize);
    return 1;
    }

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/boost", cmdtext, true))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vID, Float:Xvelo, Float:Yvelo, Float:Zvelo, Float:rot;
    vID = GetPlayerVehicleID(playerid);
    GetVehicleVelocity(vID, Xvelo, Yvelo, Zvelo);
    GetVehicleZAngle(vID, rot);
    Xvelo=Xvelo+(floatcos(rot+90, degrees)*1.5);
    Yvelo=Yvelo+(floatcos(360-rot, degrees)*1.5);
    SetVehicleVelocity(vID, Xvelo, Yvelo, Zvelo);
    return 1;
    }
    else return SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Fahrzeug.");
    }
    return 0;
    }


    Endlich fertig ;)
    /boost klappt, mein Server auch wieder *freu* :thumbup:

    #include <a_samp>
    #include <dini>



    #define DIALOG_LOGIN 3
    #define DIALOG_REG 4
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    #define COLOR_RED 0xB90000FF
    #define COLOR_YELLOW 0xC3FF00FF
    #define COLOR_GREY 0xAFAFAFAA
    #define COLOR_BLUE 0x0A00FFFF
    #define GRAD2 0xBFC0C2FF
    #define GRAD5 0xBFC0C2FF
    #define COLOR_LIGHTGREEN 0x9ACD32AA
    #define COLOR_GELB 0xFFFF00FF
    #define COLOR_BLAU 0x0023FFFF


    #define DIALOG_SPAWN 1


    #define COLOR_REDA 0xFF0000FF//ServerOwner
    #define COLOR_LIGHTBLUE 0x33CCFFAA//Administrator
    #define COLOR_LIGHTGREEN 0x9ACD32AA//moderator
    #define COLOR_ORANGERED 0xFF4500AA//superadmin



    enum spieler_daten
    {
    wanted,
    skin,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt,
    AdminLevel
    }


    /*
    new gAdmin[MAX_PLAYERS];
    new Tutorial[MAX_PLAYERS]; // Die 3 geben Warnings wenn du sie nicht verwendest.
    new pInfo[MAX_PLAYERS];
    */
    new bsnenter;
    new bsnexit;





    forward tuttimer(playerid);
    forward Score(playerid);



    new Spieler[MAX_PLAYERS][spieler_daten];




    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }




    public OnGameModeInit()
    {



    bsnenter=CreatePickup(1559,1,1199.1121,-918.1558,43.1241);
    bsnexit=CreatePickup(1559,1,362.9167,-75.2149,1001.5078);


    Create3DTextLabel("BSN\n Eingang",COLOR_BLAU,1199.1121,-918.1558,43.1241,10,0);


    DisableInteriorEnterExits();
    SetGameModeText("Script by Shoxi");
    AddPlayerClass(0,2070.4934,1355.3760,10.6719,153.8582,0,0,0,0,0,0); // Position
    AddPlayerClass(1,2070.4934,1355.3760,10.6719,153.8582,25,200,0,0,0,0); // Position


    AddStaticVehicle(411,1227.7511,-918.4766,42.5119,101.5333,123,1); // Auto1
    AddStaticVehicle(412,1227.1154,-914.8206,42.5121,99.1268,112,1); // Auto2
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid,2070.4934,1355.3760,10.6719); // Position
    SetPlayerFacingAngle(playerid,153.8582);
    SetPlayerCameraPos(playerid,2069.8442,1353.1063,10.6719);
    SetPlayerCameraLookAt(playerid,2070.4934,1355.3760,10.6719);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];


    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);


    if(fexist(accFormat))
    {
    ShowPlayerDialog
    (playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    }
    else
    {
    ShowPlayerDialog
    (playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
    }


    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {



    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
    dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
    dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
    dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
    dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
    dini_IntSet(accFormat,"AdminLevel",Spieler[playerid][AdminLevel]);
    }
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][wanted] = 0;
    Spieler[playerid][skin] = 0;
    Spieler[playerid][lastx] = (0.0);
    Spieler[playerid][lasty] = (0.0);
    Spieler[playerid][lastz] = (0.0);
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext,"/ports",true)==0)
    {
    if (IsPlayerAdmin(playerid))
    ShowPlayerDialog(playerid,DIALOG_SPAWN,DIALOG_STYLE_MSGBOX,"Ports","Wo möchten sie hin?","BSN","LSPD");
    else
    {
    SendClientMessage(playerid, COLOR_BLAU, "Du Bist Kein Admin!");
    }


    return 1;
    }
    return 0;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==bsnenter)
    {
    SetPlayerPos(playerid,364.4705,-73.7672,1001.5078);
    SetPlayerInterior(playerid,10);
    GameTextForPlayer(playerid,"~b~Du hast den~n~ BSN betreten.",3000,3);
    return 1;
    }
    if(pickupid==bsnexit)
    SetPlayerPos(playerid,1199.2083,-920.9971,43.0283);
    SetPlayerFacingAngle(playerid,187.0484);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {


    if(dialogid==DIALOG_SPAWN)
    {
    if(response==1)
    {
    SetPlayerPos(playerid,1227.1154,-914.8206,42.5121);
    SendClientMessage(playerid,0xFFFF00FF,"Du wurdest zum BSN Teleportiert");
    }
    if(response==0)
    {
    SetPlayerPos(playerid,1542.9987,-1675.6642,13.5556);
    SendClientMessage(playerid,0xFFFF0FF,"Du wurdest zum LSPD Teleportiert");
    }
    }
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(response)
    {
    switch(dialogid) // dialogid auswählen
    {
    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
    {
    Spieler[playerid][wanted] = dini_Int(accFormat,"wanted");
    Spieler[playerid][skin] = dini_Int(accFormat,"skin");
    Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
    Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
    Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Spieler[playerid][AdminLevel] = dini_Int(accFormat, "AdminLevel");
    Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG: // ID Registrieren
    {
    if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    dini_IntSet(accFormat, "AdminLevel" , 0);
    Spieler[playerid][AdminLevel] = 0;
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
    }
    }


    return 1;
    }



    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }
    Ohne die ganzen leeren Callbacks^^ ist doch gleich viel übersichtlicher ;)

    Soweit war ich auch schon ;) Ich würde jetzt ja gerne an dem Script probieren, aber leider klappt grad mein ganzer Server nicht mehr...
    Vielleicht bin ich morgen soweit und kann das testen ;)

    Ich probiers mal, da ich mich mit dem Befehl selber noch nicht so gut auskenne.
    Mal sehen, ob ich was hinbekomme. Ich melde mich dann ;)