OnPlayerDeath und gTeam commands...

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Kann man bei OnPlayerDeath auch irgentwie der getötete id eine anachricht bzw. geldabziehen?
    Und kann man mit gTeam auch multicomands schrieben? wen ja möchte ich ein simples bsp. pls
    Wen möglich hätte ich auch gerne einen /f chat bsp
    thx im vorraus :thumbup:

    Einmal editiert, zuletzt von GTA0071 ()


  • public OnPlayerDeath(playerid, killerid, reason) // playerid = Die ID,die getötet worden ist - killerid = Die ID,die getötet hat
    {
    GivePlayerMoney(playerid, -100);
    SendClientMessage(killerid,0x1229FAFF,"SERVER: Du hast jemanden getötet ;) ");
    return 1;
    }


  • dcmd_t(playerid, params[])
    {
    new msg[100],
    str[128],
    name[16];


    if(sscanf(params,"s",msg))
    {
    if(Team[playerid] == TEAM_USA)
    {
    return SendClientMessage(playerid, COLOR_RED, "Benutze: /T [TEXT].");
    }
    else if(Team[playerid] == TEAM_OTHER)
    {
    return SendClientMessage(playerid, COLOR_RED, "Benutze: /T [TEXT].");
    }
    }
    GetPlayerName(playerid, name, sizeof(name));

    format(str, sizeof(str), "%s: %s",name,msg);

    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(Team[i] == TEAM_USA && Team[playerid] == TEAM_USA)
    {
    SendClientMessage(i, COLOR_BLUE, str);
    }
    else if(Team[i] == TEAM_OTHER && Team[playerid] == TEAM_OTHER)
    {
    SendClientMessage(i, COLOR_BLUE, str);
    }
    }
    return 1;
    }


    so sieht meiner aus übernehme aber keien Garantie dass es funzt ^^


  • if(Team[i] == Team[playerid])
    {
    SendClientMessage(i, COLOR_BLUE, str);
    }
    // Kürzer


    Das ist kein GF, aber du brauchst den dcmd und sscanf Code. ( Tutorial dazu : [ SCRIPTING ] Commands mit Parametern - by GoldKiller)


    Kommt drau an, was du verwendest....

    // Irgendwo im Script:
    stock strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    // Unter das CallBack (wenn du bereits Commands hast, brauchst das public ... und return 0; } natürlich nicht ;)
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx;
    new cmd[256];


    cmd = strtok(cmdtext, idx);


    if(strcmp(cmd, "/f", false) == 0)
    {
    new tmp[130];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,0x33AA33AA," Verwende /f [TEXT]");
    new i = 0;
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    for(;i < MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i) && gTeam[i] == gTeam[playerid])
    {
    new s[100];
    format(s,sizeof s," *** %s : %s *** ",name,tmp);
    SendClientMessage(i,0xAA3333AA,s);
    }
    }
    return 1;
    }


    return 0;
    }


  • Wenn du meins hernimmst gar nicht, nur bei seinem

    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(Team[i] == TEAM_USA && Team[playerid] == TEAM_USA)
    {
    SendClientMessage(i, COLOR_BLUE, str);
    }
    else if(Team[i] == TEAM_OTHER && Team[playerid] == TEAM_OTHER)
    {
    SendClientMessage(i, COLOR_BLUE, str);
    }
    }

    wäre es dadurch kürzer

  • "

    "

    Zitat

    Dazu hab ich ne frage,
    Also wie mach ich das das man erst noch 20Sikunden irgendwo gefreeze ist?
    Asls im Krankenhaus oder so...
    Wenn du mich verstehst


    Danke im vorraus :thumbup:


  • public OnPlayerDeath(playerid, killerid, reason)
    {
    new skiller[MAX_PLAYER_NAME], string3[256];
    GetPlayerName(playerid, skiller, sizeof (skiller));
    format(string3, sizeof(string3), " %s hat dich getötet.", skiller);
    SendClientMessage(COLOR_GREEN, string3); //
    GivePlayerMoney(killerid, 100);
    GivePlayerMoney(playerid, -100);

    du könntest es auch so ungefähr machen

    Gruß Nate

  • Hmmmmm..... :whistling: