Beiträge von Jeffry

    Du hast es nichtmal 10 Minuten versucht.
    Eine .pwn und .amx Datei in den Filterscripts Ordner zu schieben und in die server.cfg einzutragen dürfte nicht zu schwer sein.



    Etwas Eigeninitiative solltest du schon zeigen. Ein eigener Server erstellt sich schließlich nicht alleine und auch nicht von anderen.

    Du hast string formatiert, aber sstring gesendet. Außerdem passen die Parameter im format nicht.
    dcmd_setfraktion(playerid,params[])
    {
    if(!IstSpielerAdmin(playerid, 5)) return SendClientMessage(playerid,ROT,"Du bist kein Admin!");
    new pid, frakid, string[145], name[MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pid,frakid)) return SendClientMessage(playerid,GELB,"Verwendung : /setfraktion [ID][Fraktions ID]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,ROT,"Ungültiger Spieler");
    if(IstSpielerInFraktion(pid,frakid)) return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in der Fraktion");
    sSpieler[pid][Fraktion] = frakid;
    GetPlayerName(pid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast dem Spieler %s (ID: %d) die Fraktion %d.", name, playerid, frakid);
    SendClientMessage(playerid,HELLBLAU,string);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du wurdest der Fraktion %d von %s zugewiesen!", frakid, name);
    SendClientMessage(pid,HELLBLAU,string);
    return 1;
    }

    Versuche es hiermit:
    http://forum.sa-mp.com/showthread.php?t=406833


    Eventuell musst du den .pwn neu kompilieren.


    Tutorial für die Nutzung:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Was wird dir so im Log ausgegeben?
    stock IsPlayerInGangZone(playerid,gangzoneid)
    {
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    printf("%f >= %f", Pos[0], GangZoneInfo[gangzoneid][pos1]);
    printf("%f <= %f", Pos[0], GangZoneInfo[gangzoneid][pos2]);
    printf("%f >= %f", Pos[1], GangZoneInfo[gangzoneid][pos3]);
    printf("%f <= %f", Pos[1], GangZoneInfo[gangzoneid][pos4]);
    if( Pos[0] >= GangZoneInfo[gangzoneid][pos1] && Pos[0] <= GangZoneInfo[gangzoneid][pos2] && Pos[1] >= GangZoneInfo[gangzoneid][pos3] && Pos[1] <= GangZoneInfo[gangzoneid][pos4] ) return 1;
    else return 0;
    }

    Steht doch da was du machen sollst?


    Dann musst du den Code debuggen.
    Was wird dir so im Server Log ausgegeben?
    //Gang-War Kill System
    printf("killerid: %d", killerid);
    if(killerid!=INVALID_PLAYER_ID)
    {
    printf("Fraks: %d != %d", pInfo[playerid][fraktion], pInfo[killerid][fraktion]);
    if(pInfo[playerid][fraktion] != pInfo[killerid][fraktion])
    {
    for(new i=0; i<sizeof(GangZoneInfo); i++)
    {
    printf("i: %d", i);
    printf("IsPlayerInGangZone: %d", IsPlayerInGangZone(killerid, i));
    if(!IsPlayerInGangZone(killerid, i))continue;
    printf("inwar: %d", GangZoneInfo[i][inwar]);
    if(!GangZoneInfo[i][inwar])continue;
    for(new gw=0; gw<sizeof(GangWarInfo); gw++)
    {
    printf("gw: %d", gw);
    printf("zoneid: %d == %d", GangWarInfo[gw][zoneid], i);
    if(GangWarInfo[gw][zoneid]!=i)continue;
    if(pInfo[killerid][fraktion]==GangWarInfo[gw][angreifer])
    {
    GangWarInfo[gw][kills_angreifer]++;
    }
    else if(pInfo[killerid][fraktion]==GangZoneInfo[i][gzowner])
    {
    GangWarInfo[gw][kills_owner]++;
    }
    printf("Nachricht.");
    new str[128];
    format(str,sizeof(str),"*Gangfight* %s wurde von %s getötet.",PlayerName(playerid),PlayerName(killerid));
    print(str);
    for(new ii = 0, j = GetPlayerPoolSize(); ii <= j; ii++)
    {
    printf("ii: %d (on: %d)", ii, PlayerOnline(ii));
    if(!PlayerOnline(ii))continue;
    printf("%d == %d || %d == %d", pInfo[ii][fraktion],GangZoneInfo[i][gzowner],pInfo[ii][fraktion],GangWarInfo[gw][angreifer]);
    if(pInfo[ii][fraktion]!=GangZoneInfo[i][gzowner] && pInfo[ii][fraktion]!=GangWarInfo[gw][angreifer])continue;
    printf("Sende Nachricht an %d", ii);
    SendClientMessage(ii, 0x5F704F00, str);
    }
    print("break");
    break;
    }
    }
    }
    print("Ende.");
    }

    Du musst format nutzen:
    new str[64];
    for(new is = 0; is < 13; i++)
    {
    GetPlayerWeaponData(playerid, is, weapons[is][0], weapons[is][1]);
    format(str, sizeof(str), "Waffe_%i: %s",is,WeaponName(weapons[is][0]));
    SendClientMessage(playerid, COLOR_RED, str);
    }

    Das break in Zeile 34 beendet die Schleife nach dem ersten Durchlauf.
    Entferne die.


    Ich habe dir den Code etwas umgestellt, so sind die Abfragen, die nichts mit den Schleifen zu tun haben, außerhalb und werden nicht jedes mal geprüft.
    //Gang-War Kill System
    if(killerid!=INVALID_PLAYER_ID)
    {
    if(pInfo[playerid][fraktion] != pInfo[killerid][fraktion])
    {
    for(new i=0; i<sizeof(GangZoneInfo); i++)
    {
    if(!IsPlayerInGangZone(killerid, i))continue;
    if(!GangZoneInfo[i][inwar])continue;
    for(new gw=0; gw<sizeof(GangWarInfo); gw++)
    {
    if(GangWarInfo[gw][zoneid]!=i)continue;
    if(pInfo[killerid][fraktion]==GangWarInfo[gw][angreifer])
    {
    GangWarInfo[gw][kills_angreifer]++;
    }
    else if(pInfo[killerid][fraktion]==GangZoneInfo[i][gzowner])
    {
    GangWarInfo[gw][kills_owner]++;
    }
    new str[128];
    format(str,sizeof(str),"*Gangfight* %s wurde von %s getötet.",PlayerName(playerid),PlayerName(killerid));
    for(new ii = 0, j = GetPlayerPoolSize(); ii <= j; ii++)
    {
    if(!PlayerOnline(ii))continue;
    if(pInfo[ii][fraktion]!=GangZoneInfo[i][gzowner] && pInfo[ii][fraktion]!=GangWarInfo[gw][angreifer])continue;
    SendClientMessage(ii, 0x5F704F00, str);
    }
    break;
    }
    }
    }
    }

    Öffnen
    MoveDynamicObject(tor[31],2496.2058,-1691.8954,14.9201,0.01,0,0,270.0000);
    torstatus[31] = 1;


    Schließen MoveDynamicObject(tor[31],2496.2058,-1691.9954,14.9201,0.01,0,0,180.0000);
    torstatus[31] = 0;


    Die Position muss beim Öffnen minimal verändert werden (habe den Y Wert um 0.1 geändert), sonst bewegt sich das Objekt nicht.


    Außerdem muss die Geschwindigkeit sehr klein sein (0.01), da das Objekt ja nur minimal bewegt wird.
    Passe die Geschwindigkeit an, falls es zu schnell oder langsam geht.