Beiträge von KornChief

    @:
    ist das selbe wie "forward ..." und "public ..." nur kürzer ;>. Kannst auch nicht's davor schreiben, dafür muss die Custom Function weiter oben im Script sein (bzw. vor der eigtl. Verwendung, damit das Script sich auskennt).


    Werbungmach();
    Setzt die Variable Werbung auf 0 zurück,damit jeder wieder Werbung machen kann. (Braucht man, wenn du's so tust wie ich, nicht öfter als 1 , d.h. kein [MAX_PLAYERS])


    SendDeathMessage(killerid,playerid,reason);); // <===== 2 mal ein ); . Einmal nur
    // = SendDeathMessage(killerid, playerid, reason);



    SetPlayerMapIcon(playerTeam, 0, 395.5647,2531.4995,16.5437, 19, 0 ); // Probier statt dem
    SetPlayerMapIcon(i, 0, 395.5647,2531.4995,16.5437, 19, 0 ); // denn es soll ja für die ID (i) unter den gegebenen Voraussetzungen angezeigt werden. Das dann auch beim Rest
    SendTeamMessage(playerTeam, COLOR_GREEN, "Scan has been started! All bases has been marked on the map!"); // Zieh dies aus der For-Schleife raus, oder mach "SendClientMessage(i,COLOR_GREEN,"Scan has been started! All bases has been marked on the map!"); stattdessen






    SetProTimer("Scantimer",30,0); // im 30 Millisekunden Takt wird er aufgerufen, was etwas schnell ist.


    Hoffe dies geht :)

    Du kannst dies machen, wenn es für alle nicht gehen soll

    // Ganz oben
    new Werbung;
    @Werbungmach();


    // Im Command
    [...]
    if(Werbung == 0)
    {
    // Werbungssachen
    Werbung = 1;
    SetTimer("Werbungmach",80000,0);
    }
    else
    {
    SendClientMessage(playerid,rot,"Es gab erst vor kurzen eine Werbung!");
    return 1;
    }
    [...]


    //
    @Werbungmach()
    {
    Werbung = 0;
    SendClientMessage(playerid,rot,"Jetzt geht wieder Werbung");
    return 1;
    }

    Wenn es für jeden einzelnen Spieler sein soll, musst du dementsprechend "Werbung[MAX_PLAYERS]",@Werbungmach(playerid) und "SetTimerEx" verwenden

    Eniges durcheinander geraten

    Keine Ahnung ob das alle waren, tesete


    // Oben
    new Float:Arena[10][3] = { // Du definierst eine Arry ( 10 Zeilen,3 Spalten )
    {555.017395, 2876.487304, 2.827838},
    {556.508056, 2932.969482, 3.213321},
    {583.509826, 2956.563232, 10.022232},
    {583.248596, 2956.373535, 18.422161},
    {613.906372, 2966.900634, 7.801957},
    {635.815551, 3020.493164, 2.087232},
    {593.451171, 3056.166503, 2.230519},
    {620.233947, 2918.290527, 2.558469},
    {609.661682, 2898.529052, 2.376594},
    {582.865478, 2864.914062, 2.281667}
    };


    // Im Command
    new rand = random(sizeof(Arena)); // Random mit Maximal = 10 (bzw. größte Einheit; Info; Du kannst auch random(10); machen - wenn du ein Random von den Spalten willst,bräuchtest ...sizeof(Arena[])...
    SetPlayerPos(playerid,Arena[rand][0],Arena[rand][1],Arena[rand][2]); // PlayerPos setzen

    Hast du dir meins auch durchgelesen?

    Sinn? Wie gesagt, du brauchst (damit nur 1 User geportet wird bzw. 1 ID übergeben wird) SetTimerEx ( http://wiki.sa-mp.com/wiki/SetTimerEx ).
    Verstanden? Wenn etwas (wie String,Integerwert/PlayerID,Float,..) weitergegeben werden soll, musst du - wie ich schonmal gesagt habe - es auch angeben, durch zB
    (einfache Funktion): DiesUndJenes(playerid)
    ( TimerEx ) SetTimerEx("DiesUndJenes",1000,0,"i",playerid);

    Du gibst das einfach weiter in deine Funktion (wie SetTimerEx).
    zB  
    new ziel = strval(strget(cmdtext,1));
    TuDiesUndDas(ziel);

    Du musst natürlich die Funktion selber "definieren",
    d.h.

    public TuDiesUndDas(playerid) {
    SendClientMessage(playerid,rot," Irgendetwas");
    return 1;
    }
    Entweder du machst es mit "public ...." und oben im Script "forward TuDiesUndDas(playerid);" oder du ersetzt die beiden Wörter durch ein @. Du kannst auch alles weglassen,
    doch muss dann der Code (TuDiesUndDas(playerid) {}) bevor du ihn wirklich verwendest erscheinen im Script (d.h. weiter oben). Zudem brauchst du beim "public/forward/@/...."
    nicht unbedingt playerid schreiben...ist ja nur ein Integerwert, der übergeben wird. Wenn du einen String weitergibst, sehe das so aus:
    @ TuDiesUndDas(playerid,strong[]) {}

    Hoffe,dass das richtig war, sonst soll mich ein Meister verbesser ;>.

    Hier ist ein kleines von mir

    // Ganz Oben Wanted[MAX_PLAYERS]; und static gTeam[MAX_PLAYERS]; und #define COPS 0 <- muss aber nicht sein, kannst auch weglassen
    if(strcmp("/wanted",cmdtext,false,7)==0)
    {
    new tmp[130];
    tmp = zcmd(1,cmdtext);
    new tmp2[130];
    tmp2 = zcmd(2,cmdtext);
    new DeinLevel = strval(tmp2);
    new ID = strval(tmp);// Damit du statt nur ID auch Name oder ID eingeben kannst, bräuchtest ReturnUser
    if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid,rot,"Verwende /wanted ID LEVEL!");
    if(gTeam[playerid] != COPS) return SendClientMessage(playerid,rot,"Du bist kein COpMember");
    if(!IsPlayerConnected(ID)) return SendClientMessage(playerid,rot,"ID icht online");
    if(DeinLevel >= 7 || DeinLevel <= 0) return SendClientMessage(playerid,rot,"Level muss zwischen 1 und 6 liegen!");
    SetPlayerWantedLevel(ID,DeinLevel);
    Wanted[ID] += DeinLevel;// Nicht unbedingt nötig,gbit GetPlayerWantedLevel
    SendClientMessage(playerid,rot,"Wanted Level verändert!");
    SendClientMessage(ID,rot,"Du wurdest Wanted gesetzt");
    return 1;
    }
    if(strcmp("/clear",cmdtext,false,6)==0)
    {
    new tmp[128];
    tmp = zcmd(1,cmdtext);
    new ID = strval(tmp);
    if(!strlen(tmp)) return SendClientMessage(playerid,rot,"Verwende /clear ID");
    if(!IsPlayerConnected(ID)) return SendClientMessage(playerid,rot," Angegebene ID nicht on!");
    Wanted[ID] = 0;
    SetPlayerWantedLevel(ID,0);
    SendClientMessage(playerid,rot,"Wanted gelöscht!");
    SendClientMessage(ID,rot,"Wanted gelöscht vom Cop");
    return 1;
    }


    // Dazu brauchst du den zcmd Code (kann es auch umschreiben in strtok,dcmd oder was du auch immer hast)
    zcmd(param, cmdtext[])
    {
    new string[128], pos, var;
    format(string, sizeof(string), "%s ", cmdtext);


    while((pos = strfind(string, " ", true)) != -1)
    {
    if(var == param) return string;
    var++;


    strdel(string, 0, pos + 1);
    if(strcmp(string, " ", true, pos) == 0) goto end;
    }


    end:
    string[0] = '\0';
    return string;
    }

    Teste einfach