Tore mit UserName

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
  • Hi also ich habe ein kleines Problem , wo ich so noch keine lösung zu gefunden habe zumindest keine die mir gefällt .
    Ich möchte eine Object datei (fs) erstellen wo ich mit den Nicknamen die Tore zuweisen kann , habe momentan es so
    das ich für jedes Gate 2 cmds anlegen muß damit es funktioniert , nur kann das auch jeder User machen und über die ganze Karte.
    Wenn es möglich ist würde ich das gerne so machen das wenn if(Playername "Blub" in berreich X,Y,Z) ist und move macht das tor sich bewegt.
    momentan sieht es so aus


    #include <a_samp>
    /*#include <dudb>*/
    #include <TSS>


    #pragma tabsize 0
    #define COLOR_YELLOW 0xFFFF00AA
    #define FILTERSCRIPT
    #if defined FILTERSCRIPT


    new BurnPH_gate;


    /*new wc2_gate;*/



    public OnFilterScriptInit()
    {


    //Burn Pfanhaus
    CreateObject(2774, -496.408997, -562.484009, 19.203974, 0.0000, 178.7629, 0.0000);
    CreateObject(2774, -481.882904, -562.346008, 19.173000, 0.0000, 180.4818, 0.0000);
    CreateObject(2774, -483.568176, -562.354126, 19.187218, 0.0000, 180.4818, 0.0000);
    CreateObject(2774, -494.753662, -562.466980, 19.239964, 0.0000, 178.7629, 0.0000);
    BurnPH_gate = CreateObject(980, -489.138458, -562.767883, 27.261347, 0.0000, 0.0000, 180.0000);




    /*wc2_gate = CreateObject(3475, -1940.231445, 274.711761, 40.848160, 0.0000, 0.0000, 0.0000);*/


    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");



    return 1;
    }


    public OnFilterScriptExit()
    {
    for(new i=0;i < MAX_PLAYERS; i++)
    {
    DestroyObject(i);
    }
    for(new i=0;i < MAX_OVERALL_OBJECTS; i++)
    {
    DestroyStreamObject(i);
    }
    return 1;
    }


    #else
    {
    return 1;
    }


    #else


    #endif


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext, "/1", true) == 0){
    MoveObject(BurnPH_gate,-489.154602, -562.762573, 20.368092,4);
    SendClientMessage(playerid, COLOR_YELLOW,"Pfand Gelände auf!");
    return 1;
    }
    if (strcmp(cmdtext, "/2", true) == 0){
    MoveObject(BurnPH_gate,-489.138458, -562.767883, 27.261347,4);
    SendClientMessage(playerid, COLOR_YELLOW,"Pfand Gelände zu!");
    return 1;
    }
    return 0;
    }

  • Das geht mit PlayerToPoint.
    das machse beim cmd hin


    if(PlayerToPoint(10.0, x, y, z)


    10.0 ist der Radius wo er dann den Befehl eingeben kann...x,y,z die Koords


    ganz unten im gamemode:
    PlayerToPoint(Float:radius, playerid, Float:X, Float:Y, Float:Z)
    {
    new Float:oldpos[3], Float:temppos[3];
    GetPlayerPos(playerid, oldpos[0], oldpos[1], oldpos[2]);
    temppos[0] = (oldpos[0] -X);
    temppos[1] = (oldpos[1] -Y);
    temppos[2] = (oldpos[2] -Z);
    if(((temppos[0] < radius) && (temppos[0] > -radius)) && ((temppos[1] < radius) && (temppos[1] > -radius)) && ((temppos[2] < radius) && (temppos[2] > -radius)))
    {
    return true;
    }
    return false;
    }

  • Und für spieler namen macht ihr das allgemein so:

    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(PlayerToPoint(5,playerid, x,y,z))
    {
    if(strcmp(name,"NAME",true)==0 || strcmp(name,"NAME2",true)==0)
    {
    //Tor bewegen
    }
    }


    //Edit: hier mit euren coord und so eingefügt

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext, "/1", true) == 0)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(PlayerToPoint(15,playerid, -489.154602, -562.762573, 20.368092))
    {
    if(strcmp(name,"NAME",true)==0 || strcmp(name,"NAME2",true)==0)
    {
    MoveObject(BurnPH_gate,-489.154602, -562.762573, 20.368092,4);
    SendClientMessage(playerid, COLOR_YELLOW,"Pfand Gelände auf!");
    return 1;
    }
    }
    }
    if (strcmp(cmdtext, "/2", true) == 0)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(PlayerToPoint(15,playerid, -489.154602, -562.762573, 20.368092))
    {
    if(strcmp(name,"NAME",true)==0 || strcmp(name,"NAME2",true)==0)
    {
    MoveObject(BurnPH_gate,-489.138458, -562.767883, 27.261347,4);
    SendClientMessage(playerid, COLOR_YELLOW,"Pfand Gelände zu!");
    return 1;
    }
    }
    }
    return 0;
    }

    Einmal editiert, zuletzt von [NSK]Paddy ()

  • public LSLS1(playerid)
    {
    if PlayerToPoint(10.0,818.2927,-1361.4503,-0.5078,4)
    {
    //blabla
    }
    return 1;
    }



    ahmm da kommt bei mir nur:
    BLUB.pwn(933) : error 017: undefined symbol "PlayerToPoint"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    I'm Sorry For Your Mistake!
    but it's yours

  • Weil dir die Funktion evntl. fehlt :O


    forward PlayerToPoint(Float:radi, playerid, Float:xs, Float:ys, Float:zs);
    public PlayerToPoint(Float:radi, playerid, Float:xs, Float:ys, Float:zs)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -xs);
    tempposy = (oldposy -ys);
    tempposz = (oldposz -zs);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Jo ok jetzt hab ichs so:


    public LSLS1(playerid)
    {
    if (PlayerToPoint(10.0,playerid,818.2927,-1361.4503,-0.5078,4))
    {
    //BLUB
    }
    return 1;
    }



    und das habe ich jetzt auch drin:
    forward PlayerToPoint(Float:radi, playerid, Float:xs, Float:ys, Float:zs);
    public PlayerToPoint(Float:radi, playerid, Float:xs, Float:ys, Float:zs)
    {
    if(IsPlayerConnected(playerid))
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new Float:tempposx, Float:tempposy, Float:tempposz;
    GetPlayerPos(playerid, oldposx, oldposy, oldposz);
    tempposx = (oldposx -xs);
    tempposy = (oldposy -ys);
    tempposz = (oldposz -zs);
    if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
    {
    return 1;
    }
    }
    return 0;
    }


    aber es kommt noch was *heul*
    BLUB.pwn(934) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.

    Zeile 934= if (PlayerToPoint(10.0,playerid,818.2927,-1361.4503,-0.5078,4))


    //EDIT jo da gug ich nochmal drüber und:
    if (PlayerToPoint(10.0,playerid,818.2927,-1361.4503,-0.5078,4))XD amende eig nur-0.5078)) ohne ,4 xD sry nächstesmal schau ich 2 mal drüber ^^

    I'm Sorry For Your Mistake!
    but it's yours

    Einmal editiert, zuletzt von mari0_DE ()