Beiträge von maddin

    Wieso ist das ne .exe ?
    Sry aber so lad ich mir das nich ^^


    //Edit:

    Bei sämtlichen Veröffentlichungen (egal ob Gamemode, Filterscriopt, Tools, Plugins ,..) MUSS der Quellcode beigelegt oder verlinkt werden, dies dient dem Schutz der User um keine Schadsoftware zu verbreiten. Über Ausnahmen lässt sich diskutieren. Falls der Code für Pastebin o.ä. zu lang ist besteht die Verpflichtung diesen als normale Textdatei darzulegen.

    pawn fängt bei 0 an zu zählen. Das heisst, wenn du ein array mit der größe 5 hast, hast du index 0,1,2,3 und 4.


    In deinem fall:


    new variable[5]
    variable[0] = 12
    variable[1] = 843
    variable[2] = 63
    variable[3] = 64
    variable[4] = 73

    anstatt response musst du listitem nehmen.
    if(listitem==0)
    {
    //bla
    }
    else if(listitem==1)
    {
    //bla
    }
    else if(listitem==2)
    {
    //bla
    }
    //usw...
    Oder gleich switch.


    response ist 1 wenn man etwas ausgewählt hat bzw auf den Linken Button gedrückt hat, und 0 wenn nicht.

    Ich frag mich ob das wirklich jemand machen würde, der auch vertrauenswürdig genug ist.
    Ich persönlich würde mich da nicht gerne mit rein ziehen lassen wenn es zu Problemen kommt und ich am ende vllt auch noch zu buhmann gemacht werde.
    Aber weiss ja nicht wie die Team'ler das sehen.

    Ok, da hast du natürlich recht. Wie gesagt, mir gings auch nur darum das es sich manchmal nicht verträgt und es so zu Fehlern im streamer kommen kann.
    Bei den meisten streamer kann man aber auch einstellen ab welcher Distanz die Objekte gestreamt werden, bzw objekte für einen bestimmten Spieler "vor-streamer", damit sie erstellt sind bevor der Spieler da ist. Somit kann man auf die normale CreateObject funktion verzichten.


    //Edit: Sry wenn das zu weit ins OT geht einfach löschen. Wollte nur darauf Hinweisen^^

    was für fehler sind denn drinne?


    • Jedes mal wenn ein Spieler Spawnt werden 16 3D-Texte und 13 Mapicons erstellt, und zwar immer wieder die gleichen was absolut keinen sinn ergibt.
    • Manchmal wird CreateDynamicObject, und manchmal CreateObject verwendet, was man eigentlich nicht machen sollte.
    • Bei jeder Skin Auswahl werden zahlreiche Klassen erstellt, im schlimmsten fall 500*182 auf einmal.


    Rest spar ich mir mal.

    Gibt es vielleicht auch einen anderen Weg für OOP in Pawn außer dieses Pseudo OOP?


    Nope, pawn unterstützt kein OOP. Es sei denn du kannst C++, dann kannste das über umwege per plugin machen.


    Zu deinem Problem: Versuchs mal so:
    [pwn=44]if(Players[i][Player_ID] == playerid && Players[i][Player_IsUsed] && !strcmp(Players[i][Player_Name], Name , true))[/pwn]

    @Stoney_Mahoney:
    Genau wie beim alten. Nur halt bei strings musst du zusätzlich die länge angeben.


    @All:
    Heute gabs ein wichtiges update für das SSCANF 2.0 Plugin. Also solltet ihr alle Updaten wenns geht.


    //Edit:
    Zeex & smeti haben sich (vorerst) um das Problem gekümmert, was nach den R3/R4/R5 Releasen auftrat, da y_less im Urlaub ist für ~2 Wochen.
    Download

    Wieso ne schleife? Du kennst doch den Slot, also brauchste auch nicht mehr als einmal prüfen.
    new waffe, bla;
    GetPlayerWeaponData(playerid, 1, waffe, bla);
    if(waffe != 9) return SendClientMessage(playerid,0xFF0000FF, "Du hast keine Kettensaege dabei.");

    if(GetPlayerWeapon(playerid) !=9)
    So wäre es richtig.
    Und GetPlayerWeapon gibt die AKTUELLE waffe zurück, also die waffe die man gerade in der hand hat. Mit deinem Code fragst du also nur ab ob der Spieler gerade die Kettensäge in der Hand hat, nicht ob er überhaupt eine dabei hat.



    mfg.

    Durch ZCMD werden die befehle ein eigenständiges Public ausserhalb aller normalen Publics. Also musst du es nicht innerhalb OnPlayerCommanText oder so machen.
    OnPlayerCommandPerformed ist dafür da, um z.b zu Loggen wenn ein Spieler einen Befehl benutzt hat.
    public OnPlayerCommandPerformed(playerid,cmdtext[],success)
    {
    if(success)
    {
    printf("ID %d hat den Befehl %s erfolgreich ausgeführt.",playerid, cmdtext);
    }
    else if(!success)
    {
    printf("ID %d hat einen nicht Existierenden Befehl (%s) ausgeführt.",playerid, cmdtext);
    }
    return true;
    }


    Den befehl selbst kann du einfach irgendwo ins script (aber ausserhalb eines Publics) packen.
    CMD:changepass(playerid,params[])
    {
    new passwort[32],string[128];
    if(sscanf(params, "s",passwort)) return SendClientMessage(playerid,COLOR_RED,"FEHLER: /changepass [Neues Passwort]");
    format(string,sizeof(string),"Passwort erfolgreich geändert. Das Passwort lautet nun: '%s'",passwort);
    SendClientMessage(playerid,COLOR_YELLOW,string);
    SpielerInfo[playerid][pKey] = passwort;
    SaveAcc(playerid);
    return 1;
    }