Beiträge von Devel

    Seit längerem gibt es nun den Gothic 2 Muliplayer und die Community wächst weiter. Nun habe ich mich entschlossen ein Forum dafür zu machen : http://www.gothicmp.de


    Die Scriptsprache ist Lua.


    Dort kann jeder sich registieren der interesse am Multiplayer hat, dort
    können Teams Werbung für ihren Server machen, denn die Seite ist Server
    unabhängig. Zudem arbeite ich daran Tutorials zu schreiben das auch neue
    Scripter hervorkommen. Hier mal eine Liste der geplanten/umgesetzten
    Features:




    • Allgemeine Informationen über den Multiplayer
    • Scripting Base
    • Hilfe Forum für Script fragen
    • Tutorials
    • Showroom
    • Codeschnipsel
    • Projekt vorstellungen mit zusatz ([BIETE]/[SUCHE])
    • Client/Server/Game Hilfe
    • Server Werbung
    • Wiki(bisher nur englisch)




    Bisher ist das Forum noch ein bisschen leer ich Arbeite daran es zu füllen, vielleicht wollt ihr ja mithelfen




    Hier der link: www.gothicmp.de




    Mit freundlichen Grüßen






    Devel

    mit


    1.


    GivePlayerMoney(pID, GetPlayerMoney(pID)+geld); // Das Geld was er davor besitzt + das neue


    oder
    2. du erstellst extra eine variable


    new oldmoney= GetPlayerMoney(pID);
    GivePlayerMoney(pID, oldmoney+geld);

    Du kannst bei SendClientMessage keine variablen einbauen;)


    du must das so machen:


    format(string,sizeof(string), "Du wurdest von %S gekickt. Grund: %s",SpielerName(playerid),reason);
    SendClientMessage(pID, rot, string);

    Ich kenn zwar die Funktion nicht, aber damit es für jeden Spieler abgespielt werden soll müss es ssoh heißen:


    PlayAudioStreamForPlayer(i,"url",0.0,0.0,0.0,10.0); //Da machsst du eine Schleife und benutzt die Variable nicht ;)

    IsPlayerInRangeOfPoint(playerid, Float:range, Float:x, Float:y, Float:z);


    if(IsPlayerInRangeOfPoint(playerid, 2 /*(range)*/ , 540.7483/*(x)*/ ,-1289.0284 /*(x)*/ ,17.2422 /*(x)*/ ,323.9335/*(zuviel)*/ ))

    So so sollte die Abfrage stimmen


    public IsAnLKW(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 403 || modelid == 406 || modelid == 407 || modelid == 408 || modelid == 413 || modelid == 414 || modelid == 416 || modelid == 427 || modelid == 428 ||
    modelid == 431 || modelid == 432 || modelid == 433 || modelid == 437 || modelid == 443 || modelid == 440 || modelid == 444 || modelid == 455 || modelid == 456 ||
    modelid == 459 || modelid == 478 || modelid == 482 || modelid == 486 || modelid == 498 || modelid == 499 || modelid == 514 || modelid == 515 || modelid == 524 ||
    modelid == 556 || modelid == 557 || modelid == 573 || modelid == 578 || modelid == 609)
    {
    return 1;
    }
    else // Wichitg else, ansonsten return nach der abfrage auch wenn er in dem Auto sitz 0
    {
    return 0;
    }
    }


    public IsAnBoat(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 472 || modelid == 473 || modelid == 493 || modelid == 595 || modelid == 484 || modelid == 430 || modelid == 453 || modelid == 452 || modelid == 446 ||
    modelid == 454 )
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }


    public IsAnCar(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 566 || modelid == 480 || modelid == 533 || modelid == 439 || modelid == 555 || modelid == 422 || modelid == 582 || modelid == 600 || modelid == 543 ||
    modelid == 576 || modelid == 605 || modelid == 531 || modelid == 552 || modelid == 554 || modelid == 536 || modelid == 575 || modelid == 567 || modelid == 535 ||
    modelid == 412 || modelid == 568 || modelid == 424 || modelid == 579 || modelid == 400 || modelid == 500 || modelid == 470 || modelid == 489 || modelid == 505 ||
    modelid == 495 || modelid == 438 || modelid == 490 || modelid == 528 || modelid == 544 || modelid == 596 || modelid == 598 || modelid == 597 || modelid == 599 ||
    modelid == 601 || modelid == 420 || modelid == 445 || modelid == 504 || modelid == 401 || modelid == 518 || modelid == 527 || modelid == 542 || modelid == 507 ||
    modelid == 562 || modelid == 585 || modelid == 419 || modelid == 526 || modelid == 604 || modelid == 466 || modelid == 492 || modelid == 474 || modelid == 546 ||
    modelid == 517 || modelid == 410 || modelid == 551 || modelid == 516 || modelid == 467 || modelid == 405 || modelid == 580 || modelid == 426 || modelid == 436 ||
    modelid == 602 || modelid == 547 || modelid == 560 || modelid == 550 || modelid == 549 || modelid == 540 || modelid == 491 || modelid == 529 || modelid == 421 ||
    modelid == 429 || modelid == 496 || modelid == 402 || modelid == 541 || modelid == 415 || modelid == 589 || modelid == 587 || modelid == 565 || modelid == 494 ||
    modelid == 502 || modelid == 503 || modelid == 411 || modelid == 559 || modelid == 603 || modelid == 475 || modelid == 506 || modelid == 451 || modelid == 558 ||
    modelid == 447 || modelid == 418 || modelid == 404 || modelid == 479 || modelid == 479 || modelid == 458 || modelid == 561 )
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }


    public IsAnMoped(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 462 || modelid == 448 || modelid == 581 || modelid == 522 || modelid == 461 || modelid == 521 || modelid == 523 || modelid == 463 || modelid == 468 ||
    modelid == 471 )
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }


    public IsAnPlane(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 417 || modelid == 425 || modelid == 447 || modelid == 460 || modelid == 469 || modelid == 476 || modelid == 487 || modelid == 488 || modelid == 497 ||
    modelid == 511 || modelid == 512 || modelid == 513 || modelid == 519 || modelid == 520 || modelid == 548 || modelid == 553 || modelid == 563 || modelid == 577 ||
    modelid == 592 || modelid == 593 )
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }

    Die meinen das hier


    for(new i=0; i<MaxTank; i++) //Eine schleife die deine Tankstellen durchläuft
    {
    new Float:x=IstAnTanke[i][tX], Float:y=IstAnTanke[i][tY], Float:z=IstAnTanke[i][tZ];
    if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))// Ist der SPieler an einem der Punkt wird weiter gemacht
    {
    //Funktion
    }
    }
    return 1;

    Kann es sein das in den anderen Key abfragen return vorkommt?



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(PRESSED(KEY_ACTION))
    {
    Befehle...
    return 0; //Falsch!! denn wenn er diese taste drückt
    }
    if(PRESSED(KEY_CROUCH))
    {
    //wird das hier nicht mehr ausgeführt
    }
    return 1;
    }


    schau mal oder poste eventuell dein Callback

    versuch das mal


    das kommt ganz oben ins Script
    // PRESSED(keys)
    #define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    print("Test 1");
    if(PRESSED( KEY_CROUCH )) // Taste "C" zu Fuss und "H/CAPSLOCK" im Fahrzeug
    {
    print("Test 2");
    if(GetPVarInt(playerid,"ChoosedfSkin") >= 0 || GetPVarInt(playerid,"ChoosedzSkin") >= 0)
    {
    if(GetPVarInt(playerid,"ChoosedfSkin") >= 0 && Spieler[playerid][Fraktionsskin] <= 0) return 0;
    SkinKaufen:
    SetPVarInt(playerid,"ChoosedfSkin",-1);
    SetPVarInt(playerid,"ChoosedzSkin",-1);
    j_SetPlayerInterior(playerid,Spieler[playerid][LastInt]);
    j_SetPlayerVirtualWorld(playerid,Spieler[playerid][LastVirt]);
    j_SetPlayerPos(playerid,Spieler[playerid][LastX],Spieler[playerid][LastY],Spieler[playerid][LastZ]);
    j_TogglePlayerControllable(playerid,1);
    SetCameraBehindPlayer(playerid);
    DestroyBincoInfo(playerid);
    if(Spieler[playerid][Duty] == 1) SetPlayerSkin(playerid,Spieler[playerid][Fraktionsskin]);
    //else if(Spieler[playerid][Duty] == 2) SetPlayerSkin(playerid,Nebenjobs[Spieler[playerid][Ziviljob]][jSkin]);
    else if(IsAGang(Spieler[playerid][Fraktion]))
    {
    SetPlayerSkin(playerid,Spieler[playerid][Fraktionsskin]);
    Spieler[playerid][Duty] = 1;
    }
    else SetPlayerSkin(playerid,Spieler[playerid][Zivilskin]);
    }
    }
    print("Test 3");
    return 1;
    }

    So


    mal ne frage zu dem code


    lspdcars[i][vID]


    i= die ID vom Auto
    vID= ist die ID vom Auto??


    geht das nicht so?


    for(new i=0; i<sizeof(lspdcars); i++) {
    lspdcars[i]= AddStaticVehicleEx(lspdcars[i][CarID],lspdcars[i][sX],lspdcars[i][sY],lspdcars[i][sZ],lspdcars[i][sA],1,1,-1);
    SetVehicleNumberPlate(lspdcars[i],"SA-PD");
    }
    for(new l=0; l<sizeof(fahrcars); l++) {
    fahrcars[l] = AddStaticVehicleEx(fahrcars[l][CarID],fahrcars[l][aX],fahrcars[l][aY],fahrcars[l][aZ],fahrcars[l][aA],1,1,-1);//hir
    SetVehicleNumberPlate(fahrcars[l],"SA-Fahrschule");
    }


    sag obs geklappt hat.

    und so?


    if(!strcmp(cmdtext, "/veh", true))
    {
    new Float:x, Float:y, Float:z, Float:rot;
    new color1, color2, ModelID; //int ModelID hinzugefügt
    if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,COLOR_ROT,"Du bist nicht zu Fuss");
    if(sscanf(cmdtext, "ddd",ModelID,color1,color2)) return SendClientMessage(playerid,COLOR_BLAU, "/veh [ModelID] [color1] [color2]"); [color=#ff0000]// Die sscanf abfrage angepassst
    if(ModelID < 400 || ModelID > 611) return SendClientMessage(playerid,COLOR_ROT, "Es muss eine Fahrzeug ID zwischen 411 und 611 sein!");
    if(color[0] < 0 || color[0] > 255 || color[1] < 0 || color[1] > 255) return SendClientMessage(playerid,COLOR_ROT, "Die Color-IDs müssen zwischen 0 und 126 sein!");
    {
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, rot);
    vehicleid = CreateVehicle(ModelID, x, y, z, rot, color1,color2,-1);
    LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
    SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
    SetVehicleNumberPlate(vehicleid,"wwwwwwww");
    SetVehicleToRespawn(vehicleid);
    PutPlayerInVehicle(playerid, vehicleid, 0);
    SendClientMessage(playerid,COLOR_ROT,"Car gespawnt, Viel Spaß!");
    }
    return 1;
    }

    mach das mal so



    new Float:x, Float:y, Float:z, Float:rot;
    new color1, color2;
    ....
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, rot);
    vehicleid = CreateVehicle(ModelID, x, y, z, rot, color1,color2,-1);


    mit z.B new color[0]; sagst du er soll eine Variable erstellen der später einen text enthält