Beiträge von Simon

    ehm ich glaube das kommt auf die koordinaten des ausgangsobjektes an.
    du musst dir das wie bei einer tür denken: es egal ob die rz 0 oder 180 ist.
    aber wie muss sie bei mir sein, iwelche koordienaten muss ich hier ändern, nur welche..

    Guten Tag.
    Ich benutzte ein include mit dem bei den objecten die rotation ändern kann. also anstatt:
    MoveObject(id,x,y,z,s);


    benutzt man das:
    MoveObjektRot(id,rx,ry,tz,s); Die Rotation wird damit verändert was sehr nützlich bei schranken ist.


    doch nun habe ich ein lustiges problem. Die schranke bewegt sich auch zu den richtigen koordinaten, aber wie sie sich bewegt ist sehr lustig.
    anstadt sich nach oben zu bewegen, beweget sie sich nach unten.
    hier die screens:
    normal:


    wenn sie auf geht, nach unten druch den boden anstatt nach oben


    auf:


    Hier mein Script:


    new tor[10];
    new torauf[10];
    new t[10];


    OnGameModeInit()
    {
    //ha hq:
    b_CreateObject(966, -2487.1623535156, 1204.6766357422, 36.421875, 0, 0, 29.774780273438);
    tor[9] = CreateObject(968, -2487.20703125, 1204.6630859375, 37.296867370605, 0, 269.81506347656, 30.022979736328);
    return 1;
    }


    OnPlayerCommandText(...)
    {
    if(strcmp("/schranke", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,35.0,-2487.20703125, 1204.6630859375, 37.296867370605))
    {
    if(Spieler[playerid][Member] == 6 || Spieler[playerid][Leader] == 6)
    {
    if(torauf[9] == 0)
    {
    SendClientMessage(playerid,türkis,"Die Schranke schließt sich automatisch!");
    MoveObjektRot(tor[9],0, 0, 30.022979736328,7);
    torauf[9] = 1;
    t[9] = SetTimer("torzu9",7000,0);
    }
    else
    {
    SendClientMessage(playerid,türkis,"Die Schranke wird geschlossen!");
    MoveObjektRot(tor[9],0, 269.81506347656, 30.022979736328,7);
    torauf[9] = 0;
    KillTimer(t[9]);
    }
    }
    }
    }
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == 2)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(Spieler[playerid][Member] == 6 || Spieler[playerid][Leader] == 6)
    {
    if(IsPlayerInRangeOfPoint(playerid,35.0,-2487.20703125, 1204.6630859375, 37.296867370605))
    {
    if(torauf[9] == 0)
    {
    SendClientMessage(playerid,türkis,"Die Schranke schließt sich automatisch!");
    MoveObjektRot(tor[9],0, 0, 30.022979736328,7);
    torauf[9] = 1;
    t[9] = SetTimer("torzu9",7000,0);
    }
    else
    {
    SendClientMessage(playerid,türkis,"Die Schranke wird geschlossen!");
    MoveObjektRot(tor[9],0, 269.81506347656, 30.022979736328,7);
    torauf[9] = 0;
    KillTimer(t[9]);
    }
    }
    }
    }
    }
    return 1;
    }


    public torzu9()
    {
    torauf[9] = 0;
    MoveObjektRot(tor[9],0, 269.81506347656, 30.022979736328,7);
    return 1;
    }


    Ich hoffe ihr könnt mir helfen


    mfg
    Simon

    ich weiß mit SetpVar nichts anzufangen..
    ich weiß auch nicht genau wie ich das dann machen muss im dialog.. könntest du mir da vllt helfen? hier ein teil vom taxi system.. habs schon selber probiert aber es net hinbekommen:


    new ptaxi[MAX_PLAYERS];//ob er als Taxifahrer unterwegs ist
    new needtaxi[MAX_PLAYERS];//ob er ein Taxi gerufen hat.
    new taxicheck[MAX_PLAYERS];//taxicheckpoint
    new taxicount[MAX_PLAYERS];//die 180 sekunden die ablaufen


    OnPlayerCommandText(...)
    {
    if(strcmp("/service", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_SERVICE,DIALOG_STYLE_LIST,"Service","Taxi","Wählen","Abbrechen");
    }
    if(strcmp("/cancel", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_CANCEL,DIALOG_STYLE_LIST,"Was Wollen sie Canceln?","Taxi","Wählen","Abbrechen");
    }
    if(strcmp("/taxi", cmdtext, true, 10) == 0)
    {
    if(gTeam[playerid] == 1)
    {
    for(new j = 0;j<sizeof taxiauto;j++)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    if(vehicleid == taxiauto[j])
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(ptaxi[playerid] == 0)
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Du Kannst nun Taxianrufe mit /taxiannehmen entgegennehmen!");
    ptaxi[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Du kannst nun keine Taxianrufe mehr engegennehmen!");
    ptaxi[playerid] = 0;
    }
    }
    }
    }
    }
    }
    return 1;
    }


    dcmd_taxiannehmen(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /taxiannehmen [ID]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,0xFF0000FF,"Ungültige Id!");
    }
    if(needtaxi[pID] == 0)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Dieser Spieler benötigt kein Taxi!");
    }
    if(ptaxi[playerid] == 0)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Du musst /taxi benutzten um Anrufe anzunehmen!");
    }
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Du musst der Fahrer eines Taxi´s sein!");
    }
    if(taxicheck[playerid] == 1)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Du hast bereits ein Anruf angenommen!");
    }
    else
    {
    new aname[MAX_PLAYER_NAME],bname[MAX_PLAYER_NAME],str1[256],str2[256];
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(pID,bname,sizeof(bname));
    format(str1,sizeof(str1),"Sie haben den Anruf von %s (%d) angenommen, sie haben 3 Minuten Zeit!",bname, pID);
    format(str2,sizeof(str2),"%s (%d) hat ihren Anruf angenommen und wird in kürze Eintreffen!",aname, playerid);
    SendClientMessage(playerid,türkis,str1);
    SendClientMessage(pID,türkis,str2);
    needtaxi[pID] = 0;
    new Float:x1, Float:y1, Float:z1;
    GetPlayerPos(pID,x1,y1,z1);
    SetPlayerCheckpoint(playerid,x1,y1,z1,5);
    taxicheck[playerid] = 1;
    taxicount[playerid] = 181;
    taxicountdown(playerid);
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_SERVICE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(needtaxi[playerid] == 0)
    {
    new str1[256],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(str1,sizeof(str1),"%s (%d) Benötigt ein Taxi nahe %s (%s). Benutzte /taxiannehmen, um den Anruf engenenzunehmen!",name, playerid ,ReturnPlayerZone(playerid), ReturnPlayerMainZone(playerid));
    needtaxi[playerid] = 1;
    SendClientMessage(playerid,türkis,"Sie haben ein Taxi geruden, warten sie auf eine Antwort!");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(gTeam[i] == 1)
    {
    SendClientMessage(i,türkis,str1);
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Sie haben bereits ein Taxi gerufen!");
    }
    }
    }
    }
    if(dialogid == DIALOG_CANCEL)
    {
    if(response)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Taxianfrage gecancelt!");
    needtaxi[playerid] = 0;
    }
    }
    }
    return 1;
    }

    Guten Tag


    Wenn jemand ein Taxi ruft, wird dieser in einer Dialogliste angezeigt. nun würde ich gerne, wenn man denjenigen annimt, also in der dialog liste auswählt, das diese position abgefragt wird. nun giebt es da das problem mit der playerid. ich muss ja die playerid angeben wenn ich von jemanden die position abfragen will, und da habe ich das problem.


    kann mir eine rhelfen? also wenn ich einen in einer liste aussuche, das auch die position von denjenigem abgefragt wird.

    Guten Tag


    Ich würde gerne wissen wie man so eine dialogliste aktualisiert. also ich meine damit das etwas ins dialog dazu kommt bzw. weggeht.
    wenn zum beispiel jemand ein taxi nruft, soll sein name in einer dialogliste stehen. ruft nun nocheiner ein taxi, soll er in die liste dazu kommen..
    wenn nun ein taxifahrer jemand aus der liste auswählt, soll er wieder verschwinden aus der liste. das nächste problem wäre dann beim annehmen von leuten aus der liste.
    wie muss das dann beim antworten einer dialoglist aussehen, wo ich noch extra die listitem abfragen muss..


    ich hoffe mir kann da einer helfen.. bisher habe ich das taxisystem im offenen chat. ruft einer, wird es im text angezeigt und mann muss es annehmen, man kann nicht nachschauen wer alles gerufen hat..
    das habe ich bisher:


    OnPlayerCommandText()
    {
    if(strcmp("/service", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_SERVICE,DIALOG_STYLE_LIST,"Service","Taxi","Wählen","Abbrechen");
    }
    if(strcmp("/cancel", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_CANCEL,DIALOG_STYLE_LIST,"Was Wollen sie Canceln?","Taxi","Wählen","Abbrechen");
    }
    return 1;
    }


    OnDialogResponse(...)
    {
    if(dialogid == DIALOG_SERVICE)
    {
    if(response)
    {
    if(listitem == 0)
    {
    if(needtaxi[playerid] == 0)
    {
    new str1[256],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(str1,sizeof(str1),"%s (%d) Benötigt ein Taxi nahe %s (%s). Benutzte /taxiannehmen, um den Anruf engenenzunehmen!",name, playerid ,ReturnPlayerZone(playerid), ReturnPlayerMainZone(playerid));
    needtaxi[playerid] = 1;
    SendClientMessage(playerid,türkis,"Sie haben ein Taxi geruden, warten sie auf eine Antwort!");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(gTeam[i] == 1)
    {
    SendClientMessage(i,türkis,str1);
    }
    }
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Sie haben bereits ein Taxi gerufen!");
    }
    }
    }
    }
    if(dialogid == DIALOG_CANCEL)
    {
    if(response)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Taxianfrage gecancelt!");
    needtaxi[playerid] = 0;
    }
    }
    }
    return 1;
    }


    dcmd_taxiannehmen(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /taxiannehmen [ID]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,0xFF0000FF,"Ungültige Id!");
    }
    if(needtaxi[pID] == 0)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Dieser Spieler benötigt kein Taxi!");
    }
    if(ptaxi[playerid] == 0)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Du musst /taxi benutzten um Anrufe anzunehmen!");
    }
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Du musst der Fahrer eines Taxi´s sein!");
    }
    if(taxicheck[playerid] == 1)
    {
    return SendClientMessage(playerid,0xFF0000FF,"Du hast bereits ein Anruf angenommen!");
    }
    else
    {
    new aname[MAX_PLAYER_NAME],bname[MAX_PLAYER_NAME],str1[256],str2[256];
    GetPlayerName(playerid,aname,sizeof(aname));
    GetPlayerName(pID,bname,sizeof(bname));
    format(str1,sizeof(str1),"Sie haben den Anruf von %s (%d) angenommen, sie haben 3 Minuten Zeit!",bname, pID);
    format(str2,sizeof(str2),"%s (%d) hat ihren Anruf angenommen und wird in kürze Eintreffen!",aname, playerid);
    SendClientMessage(playerid,türkis,str1);
    SendClientMessage(pID,türkis,str2);
    needtaxi[pID] = 0;
    new Float:x1, Float:y1, Float:z1;
    GetPlayerPos(pID,x1,y1,z1);
    SetPlayerCheckpoint(playerid,x1,y1,z1,5);
    taxicheck[playerid] = 1;
    taxicount[playerid] = 181;
    taxicountdown(playerid);
    }
    return 1;
    }


    Guten Tag..


    Ich habe gerade bemerkt das die autos nach kurzer zeit respawnen, liegt es daran das ich AddStaticVehicle benutzte?
    wie kann man das deaktivieren

    wenn ich idx weg mache, ist es nicht definiert :D und 1 error und 1 warning treten beim stock auf:


    stock strtok(str[], &index, delimiter = ' ')
    {
    new ret_str[20],
    pos = strfind(str[index + 1], char2str(delimiter)) + index + 1;


    if(pos == index)
    pos = strlen(str);


    strmid(ret_str, str, index, pos);
    index = pos + 1;
    return ret_str;
    }


    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(3842) : error 017: undefined symbol "char2str"
    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(3839) : warning 203: symbol is never used: "delimiter"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    ja okay werde es mal testen, danke
    paar errors:


    public OnPlayerText(playerid, text[])
    {
    if(Spieler[playerid][Spawn] == 0)
    {
    return 0;
    }
    SetPlayerChatBubble(playerid, text, 0xFF0000FF, 70.0, 10000);



    if(kleidung[playerid] == 1)
    {
    new idx;
    tmp = strtok(text, idx);
    if ((strcmp("Weiter", tmp, true, strlen(tmp)) == 0) && (strlen(tmp) == strlen("Weiter")))
    {


    if(Spieler[playerid][Member] == 0)
    {
    if(bskin[playerid] == 0)
    {
    SetPlayerSkin(playerid,0);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 0;
    }
    else if(bskin[playerid] == 1)
    {
    SetPlayerSkin(playerid,60);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 60;
    }
    else if(bskin[playerid] == 2)
    {
    SetPlayerSkin(playerid,193);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 193;
    }
    else if(bskin[playerid] == 3)
    {
    SetPlayerSkin(playerid,195);
    bskin[playerid] = 0;
    Spieler[playerid][Skin] = 195;
    }
    }
    if(Spieler[playerid][Member] == 1)
    {
    if(bskin[playerid] == 0)
    {
    SetPlayerSkin(playerid,106);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 106;
    }
    else if(bskin[playerid] == 1)
    {
    SetPlayerSkin(playerid,107);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 107;
    }
    else if(bskin[playerid] == 2)
    {
    SetPlayerSkin(playerid,269);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 269;
    }
    else if(bskin[playerid] == 3)
    {
    SetPlayerSkin(playerid,271);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 271;
    }
    else if(bskin[playerid] == 4)
    {
    SetPlayerSkin(playerid,56);
    bskin[playerid]++;
    Spieler[playerid][Skin] = 56;
    }
    else if(bskin[playerid] == 5)
    {
    SetPlayerSkin(playerid,105);
    bskin[playerid] = 0;
    Spieler[playerid][Skin] = 105;
    }
    }
    }
    }
    return 1;
    }


    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(1212) : error 017: undefined symbol "tmp"
    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(1212) : error 017: undefined symbol "strtok"
    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(1213) : error 017: undefined symbol "tmp"
    C:\Users\Simon Siggelkow\Desktop\Reallife\gamemodes\RL.pwn(1211) : warning 203: symbol is never used: "idx"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.

    ich mir schon.. kene aber keine :D:D ja wie müsste ich das denn abfragen? also es soll nicht im text enthalten sein, der text soll weiter sein also:
    text == weiter


    wie muss ich das denn nun machen?

    Guten Tag.


    Ich würde gerne eine Art Befehl machen, ohne das man da ein "/" vor machen soll.. und zwar wenn man in eine fraktion eingeladen wird, oder von sich aus in den binco geht, kann man skins durchswitchen...
    mit "/weiter" geht man ein skin weiter, mit "/fertig" bekommt man den skin und wird gespawnt. nun möchte ich das ganze aber ohne "/" machen. da habe ich mir gedacht das ich das einfach unter OnPlayerText packe und abfrage ob der text "weiter" oder "fertig" ist. nun würde ich gerne die abfrage wissen, wenn das überhaupt geht, oder kennt jemand ne einfachere lösung.


    MfG Simon

    Guten Tag


    Ich bin dabei mehrere Fraktionen zu scripten und dazu muss ich diesen fraktionen hq´s zuwesien. ich bin mit den gangs angefangen. wo das gs hq ist, ist natürlich kla..
    nun möchte ich die fraktion ballas hinzufügen aber weiß kein passendes hq.
    habt ihr da vllt iwelche ideen.. also genug plätze habe ich, jedoch kein was wirklich zu ballas past, da es ja eine "streetgang" ist.
    ich würde gerne mal wissen was ihr meint, wo man ballas hinstecken sollte..


    ich hoffe ich bin hier richtig, wusste net wohin damit..

    ja ich habs gerade schon gefixxt.. :D hier wie ich es habe:


    dcmd_f(playerid,params[])
    {
    new msg[256];
    if(sscanf(params, "s", msg))
    {
    return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /f [Nachricht]");
    }
    if(Spieler[playerid][Member] == 0 && Spieler[playerid][Leader] == 0)
    {
    return 0;
    }
    else
    {
    if(Spieler[playerid][Leader] >= 1)
    {
    new name[MAX_PLAYER_NAME],str[256];
    GetPlayerName(playerid,name,sizeof(name));
    format(str,sizeof(str),"%s (Leader): %s", name, msg);
    for(new j = 0; j < MAX_PLAYERS; j++)
    {
    if(Spieler[j][Member] == Spieler[playerid][Leader] || Spieler[j][Leader] == Spieler[playerid][Leader])
    {
    SendClientMessage(j,0xFFB500FF,str);
    }
    }
    }
    if(Spieler[playerid][Member] >= 1)
    {
    new name[MAX_PLAYER_NAME],str[256];
    GetPlayerName(playerid,name,sizeof(name));
    format(str,sizeof(str),"%s (Rank %d): %s", name, Spieler[playerid][Rank], msg);
    for(new j = 0; j < MAX_PLAYERS; j++)
    {
    if(Spieler[j][Member] == Spieler[playerid][Member] || Spieler[j][Leader] == Spieler[playerid][Member])
    {
    SendClientMessage(j,0xFFB500FF,str);
    }
    }
    }
    }
    return 1;
    }

    Guten tag, Ich habe ein chat für Fraktionen gescriptet. Also mit /f schreibt man in seiner fraktion. diese nachricht soll auch nur für die angezeigt werde, die in der selben fraktion sind.
    dabei kommt folgende nachricht:


    Bei Members:
    NAME Rank X): TEXT


    Bei Leaders
    NAME(Leader): Text.


    doch iwie wird das an alle geschickt, und es klappt auch nicht, das bei dem Leader (Leader) steht.


    könnte ein Tippfehler sein oder ich habe iwas vertauscht, habe es öfters überprüft undgetauscht, aber klappt iwie net. hier mein scriptausschnitt:


    dcmd_f(playerid,params[])
    {
    new msg[256];
    if(sscanf(params, "s", msg))
    {
    return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /f [Nachricht]");
    }
    else
    {
    new aname[MAX_PLAYER_NAME], astr[256];
    GetPlayerName(playerid, aname, sizeof(aname));


    for(new j = 0; j < MAX_PLAYERS; j++)
    {
    if(IsPlayerConnected(j))
    {
    if(Spieler[playerid][Member] >= 1 || Spieler[playerid][Leader] >= 1)
    {
    if(Spieler[playerid][Member] == Spieler[j][Member] || Spieler[playerid][Member] == Spieler[j][Leader])
    {
    format(astr, sizeof(astr),"%s (Rank %d): %s", aname, Spieler[playerid][Rank], msg);
    SendClientMessage(j,0xFFA400FF, astr);
    }
    else if(Spieler[playerid][Leader] == Spieler[j][Leader] || Spieler[playerid][Leader] == Spieler[j][Member])
    {
    format(astr, sizeof(astr), "%s (Leader): %s", aname, msg);
    SendClientMessage(j,0xFFA400FF, astr);
    }
    }
    }
    }
    }
    return 1;
    }


    Ich hoffe ihr könnt mir helfen, da ich denke das es sich um ein kleineres problem handelt.


    MfG
    Simon

    Guten Tag.


    Ich weiß bisher nur wir man Objekte mit MoveObjekt(id,x,y,z,s); bewegt. doch da beschränkt man sich nur auf x,y und z. kann mir einer erklären wie man die rot. von einem objekt bewegen kann, zum beispiel eine schranke. die sich so aufklappt, also sich so nach oben hin öffnet.