Beiträge von maddin

    Da du sscanf benutzt, musst du einfach die anzahl an parametern bei sscanf ändern.


    sscanf nimmt einen string, in deinen fall den mit den parametern des befehls (alles was nach dem befehl selbst, also /heal, kommt sind die parameter. z.b bei dir [ID] [Heal] = 2 parameter) und teilt diese. Weil du ja einmal [ID] und einmal [Heal] hast, werden als parameter "ud" angegeben.
    u steht für die ID eines Spielers, oder den namen eines spielers.
    d steht für eine ganze zahl, wie z.b 100 oder 1 oder 0 oder 12312532452345245.
    Danach kommen die variablen, an die die parameter übergeben werden damit du sie dann im befehl verwenden kannst. u wird an pID übegeben, und d an heal.
    Sollte der befehl nicht diese anzahl an parametern enthalten, lso z.b /heal 0 test (0 ist richtig, aber der zweite parameter ist keine zahl) oder /heal 1.5 100 (1,5 ist falsch, weil es weder eine spielerid sein kann noch ein name) wird true zurück gegeben. So weisst du, das wenn sscanf true zurück gibt, der jenige der den befehl eingegeben hat nicht die richtige anzahl an parametern eingegeben hat und du die fehlermeldung "Benutze: /heal [ID] [Heal]" zurück geben kannst.


    Wenn du jetzt nicht mehr die anzahl an leben angeben möchtest, sondern nur noch die id des spielers, machst du aus "ud" einfach nur "u" (weil wir dann ja nur noch spielerid/spielername brauchen), und nimmst die variable für den heal wert raus. Also:
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_BLAU,"Benutze: /heal [ID]");//Die Meldung wird natürlich auch dementsprechend geändert^^
    nun änderst du noch den wert der bei SetPlayerHealth gegeben wird. Vorher war der wert ja als heal angegeben, was die variable war in der wir den angegeben wert gespeichert hatten bei /heal [ID] [Heal]. Da du möchtest das der Spieler direkt wieder volles leben hat, änderst du das einfach auf 100.0, also:
    SetPlayerHealth(pID,100.0);
    Und zu guter letzt nimmst du noch die heal variable raus.
    Am ende sollte das dann ungefähr so aussehen:
    ocmd:heal(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,6)) return SendClientMessage(playerid,COLOR_ROT,"Du bist kein Arzt!");
    new pID, string[128];
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,COLOR_BLAU,"Benutze: /heal [ID]");
    SetPlayerHealth(pID,100.0);
    format(string,sizeof string,"Arzt %s hat dich Erfolgreich geheilt.",SpielerName(playerid));
    SendClientMessage(pID,COLOR_GRÜN1,string);
    format(string, sizeof string,"Du hast Patient %s Erfolgreich geheilt!",SpielerName(pID));
    SendClientMessage(playerid,COLOR_GRÜN1,string);
    return 1;
    }


    Und feritg :)

    @.#DyNamiC

    Code
    fopen ( string $filename , string $mode [, int $use_include_path [, resource $zcontext ]] )


    Du hast also falsche parameter^^


    BTT:
    Versuchs mal so:

    PHP
    $erstellen = fopen("/var/www/$username/index.php", "w") OR DIE ("Datei konnte nicht erstellt werden");


    oder so

    PHP
    $erstellen = fopen("/var/www/".$username."/index.php", "w") OR DIE ("Datei konnte nicht erstellt werden");


    oder so

    PHP
    $erstellen = fopen('/var/www/'.$username.'/index.php', "w") OR DIE ("Datei konnte nicht erstellt werden");


    Soweit ich weiss musst du entweder " " oder ' ' für strings benutzen, beides zusammen/ineinander geht aber nicht.

    Also, ich hab zwar nicht die weisheit gepachtet, aber ich versuchs trotzdem ma xD


    Ein Root Server ist (gaaanz simpel gesagt) ein PC, der irgendwo steht. Im Idealfall in einem Rechenzentrum, wo er gewartet wird usw. Wenn du dir einen Root-Server mietest, hast du Praktisch zugriff auf diesen PC, und kannst da dann mit machen was du willst (natürlich nicht alles, gibt ja Nutzungsbestimmungen und son gedönse, aber theoretisch halt). Da könnteste dann einen Gameserver darauf installieren, und natürlich auch ein Forum.


    Das ist aber in den meisten fällen total überflüssig, weil es 1. Teuer ist, und 2. Du mit deinem Gameserver + Forum niemals die leistungen brauchst die so ein ganzer Root Server bereit stellt. Ausserdem musst du dich dann auch selbst darum kümmern, also wartung und all das. Wenn du dir lediglich einen Gameserver irgendwo mietest fällt das weg.


    Deshalb ist es einfacher, billiger und Komfortabler wenn du dir dafür einen einfachen gameserver mietest.



    Und das Forum muss nicht über einen Root laufen. Foren und Homepages laufen über einen Webserver (oder Webspace). Den kannst du dir auch mieten, ist in den meisten fällen auch ziemlich billig (ein paar euronen).

    warum heißt klo klo ?.
    warum heißt schei*e schei*e ?
    Diese Zahl hat sich einfach festgesetzt. Genauso wie 1337 ist genauso eine einfache zahl...


    1337 eine einfache zahl?! Das kann ich nicht auf mir sitzen lassen xD


    1337 = Leet
    Leet = Gegenteil von Lamer
    Lamer = Jemand der sich im Internet (normaleweise bei Spielen) daneben benimmt. (Nicht zu verwechseln mit noobs, boons, kacknoobs, oder einfach nur The_Cop ())


    Mehr dazu findet man hier: http://de.wikipedia.org/wiki/Leetspeak.

    if(!GetPVarInt(playerid,"Perso")==0)
    Sollte eigentlich
    if(GetPVarInt(playerid,"Perso")!=0)
    Heissen. Sicher, das du "Du Hast kein Personalausweiß!" ausgeben willst, wenn Persoe nicht gleich 0 ist?
    Klingt für mich eher nach nem Denkfehler.

    SQL
    INSERT INTO autohaus (AutoHausID,AutoHausX,AutoHausY,AutoHausZ,AutoHausCamX,AutoHausCamY,AutoHausCamZ,AutoHausCamLock,AutoHausType,AutoHausInterior) VALUES (%f,%f,%f,%f,%f,%f,%f)


    AutoHausID,AutoHausX,AutoHausY,AutoHausZ,AutoHausCamX,AutoHausCamY,AutoHausCamZ,AutoHausCamLock,AutoHausType,AutoHausInterior = 10 Felder
    %f,%f,%f,%f,%f,%f,%f = 7 Werte. Die im übrigen alle leer sind, weil du nichts übergibst.
    Kann also garnicht funktionieren.

    Dann bist du hier aber Falsch. Kritik gehört hier nur hin, wenn sie Zum Forum bzw an die Administratoren/Moderatoren geht. Deine Bitte kannst du im Smalltalk posten, aber wirklich sinn macht es nicht. Jeder kann bewerten wie er möchte, da wirst du niemanden zu irgendwas zwingen können.

    Ich find langsam reichts doch mal. Man muss das selbe Script (ja ich weiss, haste ganz ganz dolle stark editiert und so) doch nicht 100 mal Releasen. Denkt euch mal was eigenes aus...


    Und die pawn kannste bei nem free webspace oder so hochladen als text datei.

    Hast du
    public OnPlayerCommandPerformed(playerid, cmdtext[], success)
    oder
    public OnPlayerCommandReceived(playerid, cmdtext[])
    Im script?


    Diese Müssen true (1) returnen damit der Command durch kommt.

    Dann Probier das mal aus, und schau was die console sagt:
    while(mysql_fetch_row(str2))
    {
    pp +=1;
    printf("%d | 1",pp);
    sscanf(str2, "p<|>iffffi",ID,xxx,yyy,zzz,angl,inter);
    printf("%d | 2",pp);
    Intss[pp][IDD] = ID;
    printf("%d | 3",pp);
    Intss[pp][ix] = xxx;
    printf("%d | 4",pp);
    Intss[pp][iy] = yyy;
    printf("%d | 5",pp);
    Intss[pp][iz] = zzz;
    printf("%d | 6",pp);
    Intss[pp][An] = angl;
    printf("%d | 7",pp);
    Intss[pp][Interior] = inter;
    printf("%d | 8",pp);
    format(query, 128, "INTSS id %d x %f y %f z %f an %f int %i",ID,xxx,yyy,zzz,angl,inter);
    printf("%d | 9",pp);
    print(query);
    printf("%d | 10",pp);
    }

    Also, wenn ich das richtig verstehe:
    /*


    Hier funktioniert alles


    */
    mysql_query("SELECT * FROM `interiors`");
    mysql_store_result();
    new Float:xxx,Float:yyy,Float:zzz,Float:angl,inter;
    new pp; pp = 0;
    new str2[512];
    while(mysql_fetch_row(str2))
    {
    pp +=1;
    sscanf(str2, "p<|>iffffi",ID,xxx,yyy,zzz,angl,inter);
    Intss[pp][IDD] = ID;
    Intss[pp][ix] = xxx;
    Intss[pp][iy] = yyy;
    Intss[pp][iz] = zzz;
    Intss[pp][An] = angl;
    Intss[pp][Interior] = inter;
    format(query, 128, "INTSS id %d x %f y %f z %f an %f int %i",ID,xxx,yyy,zzz,angl,inter);
    print(query);
    }
    mysql_free_result();


    /*


    Hier nicht mehr


    */
    ?


    Welches plugin benutzt du?
    Läuft die schleife bis zum ende durch?
    hast du mal probiert den inhalt der schleife auszukommentieren? Also einfach um zu schauen ob es definitiv an der schleife liegt, oder ob es nicht doch der inhalt ist der ärger macht.
    while(mysql_fetch_row(str2))
    {
    /*pp +=1;
    sscanf(str2, "p<|>iffffi",ID,xxx,yyy,zzz,angl,inter);
    Intss[pp][IDD] = ID;
    Intss[pp][ix] = xxx;
    Intss[pp][iy] = yyy;
    Intss[pp][iz] = zzz;
    Intss[pp][An] = angl;
    Intss[pp][Interior] = inter;
    format(query, 128, "INTSS id %d x %f y %f z %f an %f int %i",ID,xxx,yyy,zzz,angl,inter);
    print(query);*/
    }