Beiträge von Double-O-Seven

    Double-O-Icons


    Hi,


    I've made a map icon streamer for my gamemode, because I couldn't find a good streamer or a streamer with a working link.
    So, I've made my own one. No flickering icons, max 32 and limit set 500. (change it if you like)


    Functions:


    Code
    InitMapIconStreaming(); - Use this in your script to start streaming, you should use AFTER creating all map icons. 
    CreateMapIcon(modelid,color,Float:x,Float:y,Float:z); - Create a mapicon. 
    DestroyMapIcon(id); - Destroy an mapicon. 
    MapIconUpdate(); - Don't use this in your script. 
    ResetMapIcons(playerid); - Use this when a player disconnects. 
    GetClosestUnusedMapIcon(playerid) - You don't need to use this. 
    GetDistanceToPoint(playerid,Float:x,Float:y,Float:z); - You can use this for other things in your script, too.



    KLICK for Pastebin
    KLICK to download


    So, have fun! :P
    And please report bugs!


    Sorry, dass es Englisch ist, habe einfach den Text aus meinem Post auf sa-mp.com kopiert^^, sollte aber kein Problem sein ;)

    Guten Abend,


    Da in Scriptwünschethread die Nachfrage nach einem Filterscript, mit welchem man Cheater usw. melden kann, besteht und ich selbst sowas habe, habe ich beschlossen, das in ein Filterscript zu packen und zu veröffentlichen.


    DOWNLOAD (.AMX + .PWN)


    /report <ID/Name> <Grund> um Cheater usw. zu melden. Es wird an alle Rcon-Admins gesendet und in ein File geschrieben.


    Viel Spass!

    if(cmdtext[0] == '/' && cmdtext[1] == 't')
    {
    new stringt[100];
    new namet[100];
    for(new i = 0; i <= MAX_PLAYERS; i++ )
    {
    if(IsPlayerConnected(i))
    {
    if(gTeam[playerid] == gTeam[i])
    {
    GetPlayerName(playerid, namet, sizeof(namet));
    format(stringt,sizeof(stringt),"%s: %s",namet,cmdtext[3]);
    SendClientMessage(i, COLOR_ORANGE, stringt);
    }
    }
    }
    return 1;
    }


    Im Loop hast du return 0;^^ Daran liegts.

    IsNumeric(const string[])
    {
    for (new i = 0, j = strlen(string); i < j; i++)
    if (string[i] > '9' || string[i] < '0') return 0;
    return 1;
    }
    stock strtok(const string[], &index,seperator=' ')
    {
    new length = strlen(string);
    new offset = index;
    new result[64];
    while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    if ((index < length) && (string[index] == seperator))
    {
    index++;
    }
    return result;
    }


    Ich habe geschrieben, dass noch strtok(...) benötigt wird :/ Die Variablen für strtok(...) usw.:


    new cmd[64],idx,tmp[64],pid;


    cmd=strtok(cmdtext, idx);


    Anstatt MAX_SLOTS MAX_PLAYERS benutzen.



    Bisschen denken würd nicht schaden...

    stock ReturnUser(tmp[])
    {
    new playerid=INVALID_PLAYER_ID;
    if(strlen(tmp)>=1)
    {
    if(IsNumeric(tmp))
    {
    if(IsPlayerConnected(strval(tmp)))
    playerid=strval(tmp);
    }
    else
    {
    if(strlen(tmp)>=3)
    {
    new count;
    for(new i=0;i<MAX_SLOTS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(strfind(PlayerName(i),tmp,true)!=-1)
    {
    playerid=i;
    count++;
    }
    }
    }
    if(count>1)
    {
    playerid=INVALID_PLAYER_ID;
    }
    }
    }
    }
    return playerid;
    }
    stock PlayerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    return name;
    }
    stock PlayerIP(playerid)
    {
    new ip[16];
    GetPlayerIp(playerid,ip,16);
    return ip;
    }
    stock PlayerReportPlayer(playerid,reportid,report[])
    {
    new h,m,s;
    new d,y,month;
    getdate(d,y,month);
    gettime(h,m,s);
    new string[512];
    format(string,sizeof(string),"%d.%d.%d | %d:%d:%d | %s(%d,%s) meldet %s(%d,%s) wegen: %s\r\n",d,month,y,h,m,s,
    PlayerName(playerid),playerid,PlayerIP(playerid),PlayerName(reportid),reportid,PlayerIP(reportid),report);
    new File:log=fopen("Report.log",io_append);
    fwrite(log,string);
    fclose(log);
    SendClientMessage(playerid,0xF60000F6,"Meldung erfolgreich gesendet.");
    SendClientMessage(playerid,0xF60000F6,"Falls kein Admin online ist, wird sie später ein Admin lesen.");
    format(string,sizeof(string),"[Meldung] %s (%d) meldet %s (%d) wegen: %s",PlayerName(playerid),playerid,PlayerName(reportid),reportid,report);
    for(new i=0;i<MAX_PLAYERS;i++)
    if(IsPlayerConnected(i))
    if(IsPlayerAdmin(i))
    SendClientMessage(i,0xF60000F6,string);
    return 1;
    }


    Der Command((strtok benötigt):


    if(strcmp(cmd,"/melden",true)==0)
    {
    tmp=strtok(cmdtext,idx);
    if(!strlen(tmp))
    return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
    pid=ReturnUser(tmp);
    if(!IsPlayerConnected(pid))
    return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");
    if(strlen(cmdtext[strlen(cmd)+strlen(tmp)+2])<3)
    return SendClientMessage(playerid,0xF60000F6,"-Warnung- Anwendung: /melden <ID> <Grund>");

    PlayerReportPlayer(playerid,pid,cmdtext[strlen(cmd)+strlen(tmp)+2]);
    return 1;
    }


    Sollte funktionieren. Hab ich aus meinem eigenen Script^^

    Nabend zum zweiten^^


    Double-O-Checkpoints Download (INC)


    Double-O-Checkpoints ist ein einfacher Checkpointstreamer. Er berechnet für jeden Spieler immer den nahesten Checkpoint und falls der Spieler nahe genug ist, wird er erstellt.


    Funktionen:


    - CreateCheckpoint(Float:x,Float:y,Float:z,interior,Float:size,Float:distance,showforall) - Checkpoint erstellen. showforall auf "true" setzen, um ihn - standartmässig für alle Spieler sichtbar zu machen.
    - DestroyCheckpoint(cpid) - Checkpoint zerstören
    - ShowCheckpointForAll(cpid,show) - Checkpoint für alle verstecken oder sichtbar machen
    - ShowCheckpointForPlayer(playerid,cpid,show) - Das Obige für einen bestimmten Spieler
    - DOCP_OnPlayerDisconnect(playerid) - Im Script unter OnPlayerDisconnect(playerid,reason) einfügen
    - DOCP_OnGameModeInit() - Im Script unter OnGameModeInit einfügen
    - CheckpointStreamer() - Nicht benutzen im Script
    - GetDistanceToPoint(playerid,Float:x,Float:y,Float:z,&Float:dis) - Auch nicht
    - GetClosestCheckpoint(playerid) - Auch nicht
    - GetPlayerCheckpoint(playerid) -Nützlich bei OnPlayerEnterCheckpoint
    - IsValidCheckpoint(cpid) - Sollte selbsterklärend sein.


    Beispiel für eine mögliche Anwendung:



    Ich hoffe, jemand kann es brauchen! Viel Spass damit!


    MfG Double-O-Seven

    Nabend^^


    Da ich Double-O-Vehicles bereits im offiziellen SAMP-Forum veröffentlicht habe, werde ich es auch hier tun.


    DOWNLOAD (AMX + PWN)


    Es ist ganz einfach: Filterscript laden, /menu1-5 benutzen und ein Fahr-/Flugzeug auswählen. Das vorherige Fahrzeug wird dann aber "zerstört", um Fahrzeugspam zu verhindern. Wenn man das Mausrad drückt, "ruft" man es zu sich.


    Viel Spass :P

    Hi,
    ich habe ein kleines Derby gescriptet.
    Die Idee kam kam vom Derby Event, der auf dem MG3 Clan-Server stattfindet jedes Wochende.
    Da wir am Anfang nur mit Yrace+einem Teleportcmd in die Derbyarena das Derby durchführen konnte, hab ich nun ein richtiges gemacht.
    Das Derby ist für maximal 50 Spieler gemacht(von der Anzahl der Bloodring Bangers her). Wer will und weiss, wie man das ändern kann, soll er es für sich tun ^^
    Das Derby kann nur von einem Admin gestartet werden mit /startderby und auch vorzeitig beendet werden mit /endderby. Auch das dürft ihr ändern, wenn ihr wollt.
    Naja seht selbst :)


    PS: Im Script steht by SpyX4, so nenne ich mich in SA:MP und im MG3 Clan ^^


    breadfish.de/wcf/attachment/102/
    Hier noch ein Download-Link neben dem Dateianhang:

    DOWNLOAD (.PWN + .AMX)