Beiträge von Devel

    Schau mal welches Printf nicht mehr angezeigt wird:


    stock LoadBiz(bID)
    {
    printf("Die Funktion LoadBiz wurde mit der ID %i geöffnet", bID); // Damit siehst du ob deine Schleife was bewirkt
    new str[5],str1[256];
    format(str,5,"%d",bID);
    if(mysql_CheckBiz(bID)){
    BizInfo[bID][ID] = mysql_GetInt("Business", "ID", "ID", str);
    BizInfo[bID][Owner] = mysql_GetString("Business", "Owner", "ID", str);
    BizInfo[bID][Bizname] = mysql_GetString("Business", "Bizname", "ID", str);
    BizInfo[bID][Kasse] = mysql_GetInt("Business", "Kasse", "ID", str);
    BizInfo[bID][Kaufpreis] = mysql_GetInt("Business", "Kaufpreis", "ID", str);
    BizInfo[bID][Produkte] = mysql_GetInt("Business", "Produkte", "ID", str);
    BizInfo[bID][MaxProds] = mysql_GetInt("Business", "MaxProds", "ID", str);
    BizInfo[bID][ProdPreis] = mysql_GetInt("Business", "ProdPreis", "ID", str);
    BizInfo[bID][Open] = mysql_GetInt("Business", "Open", "ID", str);
    BizInfo[bID][bPreis] = mysql_GetInt("Business", "Preis", "ID", str);
    BizInfo[bID][bEnterX] = mysql_GetFloat("Business", "EnterX", "ID", str);
    BizInfo[bID][bEnterY] = mysql_GetFloat("Business", "EnterY", "ID", str);
    BizInfo[bID][bEnterZ] = mysql_GetFloat("Business", "EnterZ", "ID", str);
    BizInfo[bID][PickupID] = mysql_GetInt("Business", "PickupID", "ID", str);
    BizInfo[bID][Owned] = mysql_GetInt("Business", "Owned", "ID", str);
    BizInfo[bID][AltName] = mysql_GetString("Business", "OldName", "ID", str);
    printf("Erste Abfrage hat geklappt"); // Deine erste Abfrage klappt
    if(BizInfo[bID][Owned] == 0)
    {
    format(str1,256,"%s\nBesitzer: %s\nDieses Geschäft steht zum Verkauf!\n\nPreis: %d$",BizInfo[bID][AltName],BizInfo[bID][Owner],BizInfo[bID][Kaufpreis]);
    BizLabel[bID] = Create3DTextLabel(str1,COLOR_WHITE,BizInfo[bID][bEnterX],BizInfo[bID][bEnterY],BizInfo[bID][bEnterZ],20.0,0,1);
    BizPickup[bID] = CreatePickup(1239,32,BizInfo[bID][bEnterX],BizInfo[bID][bEnterY],BizInfo[bID][bEnterZ]);
    printf("BizID %i hat keinen Owner!", bID);
    }
    else if(BizInfo[bID][Owned] == 1)
    {
    format(str1,256,"%s\nBesitzer: %s\nProdukte: %d/%d\nPreis: %d$",BizInfo[bID][Bizname],BizInfo[bID][Owner],BizInfo[bID][Produkte],BizInfo[bID][MaxProds],BizInfo[bID][bPreis]);
    BizPickup[bID] = CreatePickup(BizInfo[bID][PickupID],32,BizInfo[bID][bEnterX],BizInfo[bID][bEnterY],BizInfo[bID][bEnterZ]);
    BizLabel[bID] = Create3DTextLabel(str1,COLOR_LIGHTBLUE,BizInfo[bID][bEnterX],BizInfo[bID][bEnterY],BizInfo[bID][bEnterZ],20.0,0,1);
    printf("BizID %i hat einen Owner!", bID); // Die Zuweisung BizInfo[bID][Owned]... hat geklappt
    }
    }
    return 1;
    }

    So sollte es gehen.



    if(strcmp(cmdtext,"/stats",true)==0)
    {
    new string[560],string2[560],string3[560],entstring[560], fraktname[64], Leader[64];
    new jobname[64], AutoSchein[64], MotorradSchein[64], Perso[64], Geschlecht[64];
    switch(GetPVarInt(playerid,"GESCHLECHT")) {
    case 0:{Geschlecht = "";}
    case 1:{Geschlecht = "Weiblich";}
    case 2:{Geschlecht = "Männlich";}
    }
    switch(GetPVarInt(playerid,"Job")) {
    case 0:{jobname = "Arbeitlos";}
    case 1:{jobname = "Bauer";}
    case 2:{jobname = "Lieferant";}
    }
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{fraktname="Keine";}
    case 1:{fraktname=fraktname1;}
    case 2:{fraktname=fraktname2;}
    case 3:{fraktname=fraktname3;}
    case 4:{fraktname=fraktname4;}
    case 5:{fraktname=fraktname5;}
    case 6:{fraktname=fraktname6;}
    case 7:{fraktname=fraktname7;}
    }
    switch(GetPVarInt(playerid,"Leader"))
    {
    case 0:{Leader="Nein";}
    case 1:{Leader="Ja";}
    }
    switch(GetPVarInt(playerid,"AutoSchein"))
    {
    case 0:{AutoSchein="";}
    case 1:{AutoSchein="x";}
    }
    switch(GetPVarInt(playerid,"MotorradSchein"))
    {
    case 0:{MotorradSchein="Nein";}
    case 1:{MotorradSchein="Ja";}
    }
    switch(GetPVarInt(playerid,"Perso"))
    {
    case 0:{Perso="Nein";}
    case 1:{Perso="Ja";}
    }
    //--
    format(string,sizeof(string),"{0AFF2F}Personalien:{FFFFFF}\t%s\n\t\t%s\nPerso: %s\n",SpielerName(playerid),Geschlecht,Perso);
    format(string2,sizeof(string2),"{0AFF2F}Licensen:{FFFFFF}\tPKW-Schein\t\t[%s]\n\t\tLKW-Schein\t\t[]\n\t\tMotorradschein\t[]\n\t\tBootsschein\t\t[]\n\t\tHelikopterschein\t[]\n\t\tFlugzeugschein\t[]",AutoSchein);
    format(string3,sizeof(string3),"{0AFF2F}Statistik:{FFFFFF}",SpielerName(playerid));
    format(entstring,sizeof(entstring),"%s\n%s\n%s",string,string2,string3); // Du hast hier ein %s vergessen
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Statistiken",entstring,"Ok","");
    //--
    return 1;
    }
    new str[128];
    format(str, 128,"Der Befehl %s existiert nicht !",cmdtext);
    SendClientMessage(playerid,ORANGE,str);


    return 1;
    }

    Probiers mal so:



    stock LoadBiz(bID)
    {
    new str[5],str1[256];
    format(str,5,"%d",bID);
    if(mysql_CheckBiz(bID)){
    BizInfo[bID][ID] = mysql_GetInt("Business", "ID", "ID", str);
    BizInfo[bID][Owner] = mysql_GetString("Business", "Owner", "ID", str);
    BizInfo[bID][Bizname] = mysql_GetString("Business", "Bizname", "ID", str);
    BizInfo[bID][Kasse] = mysql_GetInt("Business", "Kasse", "ID", str);
    BizInfo[bID][Kaufpreis] = mysql_GetInt("Business", "Kaufpreis", "ID", str);
    BizInfo[bID][Produkte] = mysql_GetInt("Business", "Produkte", "ID", str);
    BizInfo[bID][MaxProds] = mysql_GetInt("Business", "MaxProds", "ID", str);
    BizInfo[bID][ProdPreis] = mysql_GetInt("Business", "ProdPreis", "ID", str);
    BizInfo[bID][Open] = mysql_GetInt("Business", "Open", "ID", str);
    BizInfo[bID][bPreis] = mysql_GetInt("Business", "Preis", "ID", str);
    BizInfo[bID][bEnterX] = mysql_GetFloat("Business", "EnterX", "ID", str);
    BizInfo[bID][bEnterY] = mysql_GetFloat("Business", "EnterY", "ID", str);
    BizInfo[bID][bEnterZ] = mysql_GetFloat("Business", "EnterZ", "ID", str);
    BizInfo[bID][PickupID] = mysql_GetInt("Business", "PickupID", "ID", str);
    BizInfo[bID][Owned] = mysql_GetInt("Business", "Owned", "ID", str);
    BizInfo[bID][AltName] = mysql_GetString("Business", "OldName", "ID", str);
    if(BizInfo[bID][Owned] == 0)
    {
    format(str1,256,"%s\nBesitzer: %s\nDieses Geschäft steht zum Verkauf!\n\nPreis: %d$",BizInfo[bID][AltName],BizInfo[bID][Owner],BizInfo[bID][Kaufpreis]);
    BizLabel[bID] = Create3DTextLabel(str1,COLOR_WHITE,BizInfo[bID][bEnterX],BizInfo[bID][bEnterY],BizInfo[bID][bEnterZ],20.0,0,1);
    BizPickup[bID] = CreatePickup(1239,32,BizInfo[bID][bEnterX],BizInfo[bID][bEnterY],BizInfo[bID][bEnterZ]);
    }
    else if(BizInfo[bID][Owned] == 1)
    {
    format(str1,256,"%s\nBesitzer: %s\nProdukte: %d/%d\nPreis: %d$",BizInfo[bID][Bizname],BizInfo[bID][Owner],BizInfo[bID][Produkte],BizInfo[bID][MaxProds],BizInfo[bID][bPreis]);
    BizPickup[bID] = CreatePickup(BizInfo[bID][PickupID],32,BizInfo[bID][bEnterX],BizInfo[bID][bEnterY],BizInfo[bID][bEnterZ]);
    BizLabel[bID] = Create3DTextLabel(str1,COLOR_LIGHTBLUE,BizInfo[bID][bEnterX],BizInfo[bID][bEnterY],BizInfo[bID][bEnterZ],20.0,0,1);
    }
    }
    return 1;
    }


    sag obs geklappt hat.

    Hast du schon geschaut ob du bei


    einer Funktion das Semikolon( ; ) vergessen hast


    oder ein Semikolon bei einer Abfrage hingemacht hast?


    Beispiel


    if(strcmp(cmd, "/beispiel", true) == 0);//FALSCH


    oder


    SetPVarInt(playerid, "Beispiel", 1) // Falsch Semikolon vergessen


    wäre vielleicht auch noch eine möglichkeit

    Wieso Function, ganz einfach weil er es so drinnen stehen hat, ich wäre ja für stock.


    Und mann muss ja nicht für jeden Punkt eine neue else if abfrage machen, reicht doch wenn man eine macht und wenn er an einer Dieser Orte ist true returnt?


    Oder liege ich da Falsch?

    Ich würde dir empfehlen deine


    IsAtGasStation(playerid)


    so zu schreiben


    Function IsAtGasStation(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,6.0,1004.0070,-939.3102,42.1797) ||
    IsPlayerInRangeOfPoint(playerid,6.0,1944.3260,-1772.9254,13.3906)|| //ls
    IsPlayerInRangeOfPoint(playerid,6.0,-90.5515,-1169.4578,2.4079) ||
    IsPlayerInRangeOfPoint(playerid,6.0,-1609.7958,-2718.2048,48.5391) || //ls
    IsPlayerInRangeOfPoint(playerid,6.0,-2029.4968,156.4366,28.9498) ||
    IsPlayerInRangeOfPoint(playerid,6.0,-2408.7590,976.0934,45.4175) || //SF
    IsPlayerInRangeOfPoint(playerid,6.0,-2243.9629,-2560.6477,31.8841) ||
    IsPlayerInRangeOfPoint(playerid,6.0,-1676.6323,414.0262,6.9484) || //Betweem LS and SF
    IsPlayerInRangeOfPoint(playerid,6.0,2202.2349,2474.3494,10.5258) ||
    IsPlayerInRangeOfPoint(playerid,6.0,614.9333,1689.7418,6.6968) || //LV
    IsPlayerInRangeOfPoint(playerid,6.0,-1328.8250,2677.2173,49.7665) ||
    IsPlayerInRangeOfPoint(playerid,6.0,70.3882,1218.6783,18.5165) || //LV
    IsPlayerInRangeOfPoint(playerid,6.0,2113.7390,920.1079,10.5255) ||
    IsPlayerInRangeOfPoint(playerid,6.0,-1327.7218,2678.8723,50.0625) || //LV
    IsPlayerInRangeOfPoint(playerid,6.0,1449.6364,-1667.3773,13.3687) ||
    IsPlayerInRangeOfPoint(playerid,6.0,1449.6364,-1667.3773,13.3687) || //LSPD Parkplatz Tanke
    IsPlayerInRangeOfPoint(playerid,6.0,1446.6611,-1668.4176,13.3687) ||
    IsPlayerInRangeOfPoint(playerid,6.0,1446.6611,-1668.4176,13.3687) || //LSPD Parkplatz Tanke
    IsPlayerInRangeOfPoint(playerid, 30.0, 2002.8409,-2382.0603,13.5469)) //LS Airport
    {
    return 1;
    }
    else
    {
    return 0;
    }
    }
    }


    dann ist es auch mal übersichtlicher



    und so dein CMD


    if(strcmp(cmd, "/tanken", true) == 0)
    {
    if(IsAtGasStation(playerid))
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid,COLOR_YELLOW," Du kannst kein Fahrrad betanken!");
    }
    else
    {
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    SendClientMessage(playerid,COLOR_WHITE," Dein Fahrzeug wird betankt, Bitte warten....");
    }
    }
    return 1;
    }

    Hallo,


    ich möchte euch Heute meine include Datei vorstellen.


    Sie hat zwei Funktionen:
    GetAreaName(Float:x, Float:y, Float:z)
    GetMainAreaName(Float:x, Float:y, Float:z)


    als Returnwert erhält man dann den namen der Zone.


    Beispiel: Man kann abfragen wo sich ein Spieler befindet, das würde so aussehen:


    new Float:x1, Float:y1, Float:z1;
    new teststring[128];
    GetPlayerPos(playerid, x1, y1, z1);
    format(teststring, sizeof(teststring), "Du befindest dich in : %s, %s.", GetMainAreaName(x1, y1, z1), GetAreaName(x1, y1, z1));
    SendClientMessage(playerid, white, teststring);


    raus kommen würde:


    Du befindest dich in Las Venturas, The Strip.


    Man kann also mit mit den Floatwerten: x,y,z herrausfinden wie die Zone heißt.


    pastebin


    Da das mein Erster Thread im Showroom ist und somit mein erstes Filterscript/Include Datei, bitte ich euch nicht gleich rum zu schreiben wie schlecht es ist.


    Kritik, Verbesserungsvorschläge oder Anregungen werden gerne angenommen.


    Mit freundlichen Grüßen



    Devel484



    #Edit: Umgeändert von einem Filterscript in eine Inlcude datei.

    Kann mir jemand sagen wie ich die Schleife bzw die komplette Abfrage schreibe?


    Ich selber komme nicht weiter und finde nix im Forum was mir hilft.

    ich hab sowas schon im script:


    enum zoneinfo {
    zone_name[128],
    Float:zone_minx,
    Float:zone_miny,
    Float:zone_minz,
    Float:zone_maxx,
    Float:zone_maxy,
    Float:zone_maxz
    }


    und


    new Float:izones[2][zoneinfo] = {
    { "Caligula's Palace", 2087.30, 1543.20, 900.00, 2437.30, 1703.20, 1200.90}}// Indoor zones


    new Float:ozones[355][zoneinfo] = {
    { "The Big Ear", -410.00, 1403.30, -3.00, -137.90, 1681.20, 200.00}}// Outdoor Zones


    new Float:bzones[9][zoneinfo] = {
    { "Los Santos", 44.60, -2892.90, -242.90, 2997.00, -768.00, 900.00}}// Main Zones


    wie kann ich jetzt abfragen in welcher Indoor,Outdoor und Main zoner man sich befindet?

    OK dann kann ich das vergessen, aber gibt es eine andere möglichkeit ohne das es so extrem viel Code entsteht.


    Ich hätte noch so ne Idee aber keine Ahnung wie ich es umsetzten soll:


    Zonen Definieren(zoneinfo(minX,minY,maxX,maxY) und dann abfragen ob der in einer der ingesammt 366 Zonen von Gta ist. hab eine datei da stehen alle Orte drin jedoch mit minX,minY,minZ und maxX,maxY,maxZ

    Hi ich hab seit kurzem versucht, dass bei dem Befehl /wobinich eine Nachricht kommt wo man sich gerade befindet.


    Bisher habe ich es so gemacht:


    Der Befehl:


    if (strcmp("/wobinich", cmdtext, true) == 0)
    {
    GetZoneName(playerid);
    return 1;
    }


    Hier der Stock wie es auch funktioniert


    stock GetZoneName(playerid)
    {
    if(IsPlayerInArea(playerid,44.60, -2892.90, 2997.00, -768.00))
    {
    SendClientMessage(playerid, rot, "Aktuelle Region:Los Santos");
    return 1;
    }
    if(IsPlayerInArea(playerid,869.40, 596.30, 2997.00, 2993.80))
    {
    SendClientMessage(playerid, rot, "Aktuelle Region:Las Venturas");
    return 1;
    }
    if(IsPlayerInArea(playerid,-480.50, 596.30, 869.40, 2993.80))
    {
    SendClientMessage(playerid, rot, "Aktuelle Region:Bone County");
    return 1;
    }
    if(IsPlayerInArea(playerid,2997.40, 1659.60, -480.50, 2993.80))
    {
    SendClientMessage(playerid, rot, "Aktuelle Region:Tierra Robada");
    return 1;
    }
    if(IsPlayerInArea(playerid,-1213.90, 596.30, -480.50, 1659.60))
    {
    SendClientMessage(playerid, rot, "Aktuelle Region:Tierra Robada");
    return 1;
    }
    if(IsPlayerInArea(playerid,-2997.40, -1115.50, -1213.90, 1659.60))
    {
    SendClientMessage(playerid, rot, "Aktuelle Region:San Fierro");
    return 1;
    }
    if(IsPlayerInArea(playerid,-1213.90, -768.00, 2997.00, 596.30))
    {
    SendClientMessage(playerid, rot, "Aktuelle Region:Red County");
    return 1;
    }
    if(IsPlayerInArea(playerid, -1213.90, -2892.90, 44.60, -768.00))
    {
    SendClientMessage(playerid, rot, "Aktuelle Region:Flint County");
    return 1;
    }
    if(IsPlayerInArea(playerid, -2997.40, -2892.90, -1213.90, -1115.50))
    {
    SendClientMessage(playerid, rot, "Aktuelle Region:Whetstone");
    return 1;
    }
    return 1;
    }


    und jetzt hatte ich mir gedacht das bisschen sparrender und übersichtlicher zumachen und hatte mir vorgestellt es so zumachen:


    stock GetZoneName(playerid)
    {
    new Float:minX,Float:minY,Float:maxX,Float:maxY;
    new areastring[128];
    new area[64];
    format(areastring,sizeof(areastring),"Aktueller Ort:%s", area);
    switch(IsPlayerInArea(playerid, Float:minX,Float:minY,Float:maxX,Float:maxY))
    {
    case 44.60, -2892.90, 2997.00, -768.00:{area="Los Santos";}
    case 869.40, 596.30, 2997.00, 2993.80:{area="Las Venturas";}
    case -480.50, 596.30, 869.40, 2993.80:{area="Bone County";}
    case 2997.40, 1659.60, -480.50, 2993.80:{area="Tierra Robada";}
    case -1213.90, 596.30, -480.50, 1659.60:{area="Tierra Robada";}
    case -2997.40, -1115.50, -1213.90, 1659.60:{area="San Fierro";}
    case -1213.90, -768.00, 2997.00, 596.30:{area="Red County";}
    case -1213.90, -2892.90, 44.60, -768.00:{area="Flint County";}
    case -2997.40, -2892.90, -1213.90, -1115.50:{area="Whetstone";}
    }
    return 1;
    }


    Nur geht das mit den case nicht: könnte mir dort jemand helfen? bzw gibt es noch eine andere Möglichkeit?

    Danke für die Antwort, mach ich auch.
    Finde aber so direkt keins über Switch case. Wenn du selber ein hast Posten pls, dann kann ich mich dort rüber auch informieren.


    Kannst du mir aber auch Sagen was es mit* auf sich hat?


    *switch(classid)


    {


    case 282 || 283 || 284 || 288: dini_IntSet(Spielerdatei,"Fraktion", 1);


    }


    if(classid==282 || 283 || 284 || 288)


    {


    SetPlayerPos(playerid, 2333.6821, 2454.0083, 14.9688);


    SetPlayerCameraPos(playerid, 2329.5276,2450.5156,13.2904);


    SetPlayerCameraLookAt(playerid, 2333.6821, 2454.0083, 14.9688);


    SetPlayerFacingAngle(playerid, 127.9668);


    }


    switch(classid)


    {


    case 202 || 206 || 236 || 242 || 261: dini_IntSet(Spielerdatei,"Fraktion", 2);


    }


    if(classid==202 || 206 || 236 || 242 || 261)//trucker


    {


    SetPlayerPos(playerid, 1667.6809, 1089.8563, 10.8203);


    SetPlayerCameraPos(playerid, 1667.3920, 1079.1116, 10.8203);


    SetPlayerCameraLookAt(playerid, 1667.6809, 1089.8563, 10.8203);


    SetPlayerFacingAngle(playerid, 182.5125);


    }


    wiso es immer Fraktion:2 speichert?



    Problem selbständig gelöst!!!


    #edit
    #edit

    Hallo,


    Ich hab eine frage zu meinem Script, ich weiß nicht weiter qas zu tun ist bei diesem fehler und hoffe, dass einer von euch weiter weiß.


    switch(classid)
    {
    case 0:{ 282 || 283 || 284 || 288 = dini_IntSet(Spielerdatei,"Fraktion", 1);}
    case 1:{ 202 || 206 || 236 || 242 || 261 = dini_IntSet(Spielerdatei,"Fraktion", 2);}
    }


    Fehler:


    C:\Users\KingMetal\Desktop\Pawno\gamemodes\Devel.pwn(108) : error 022: must be lvalue (non-constant)
    C:\Users\KingMetal\Desktop\Pawno\gamemodes\Devel.pwn(109) : error 022: must be lvalue (non-constant)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.



    Vorher hatte ich es so drin:


    switch(classid)
    {
    case 282 || 283 || 284 || 288: dini_IntSet(Spielerdatei,"Fraktion", 1);
    }
    if(classid==282 || 283 || 284 || 288)
    {
    SetPlayerPos(playerid, 2333.6821, 2454.0083, 14.9688);
    SetPlayerCameraPos(playerid, 2329.5276,2450.5156,13.2904);
    SetPlayerCameraLookAt(playerid, 2333.6821, 2454.0083, 14.9688);
    SetPlayerFacingAngle(playerid, 127.9668);
    }
    switch(classid)
    {
    case 202 || 206 || 236 || 242 || 261: dini_IntSet(Spielerdatei,"Fraktion", 2);
    }
    if(classid==202 || 206 || 236 || 242 || 261)//trucker
    {
    SetPlayerPos(playerid, 1667.6809, 1089.8563, 10.8203);
    SetPlayerCameraPos(playerid, 1667.3920, 1079.1116, 10.8203);
    SetPlayerCameraLookAt(playerid, 1667.6809, 1089.8563, 10.8203);
    SetPlayerFacingAngle(playerid, 182.5125);
    }


    Dort hat es jedoch immer Fraktion:2 gespichert und nie Fraktion1


    Danke schon im vorraus!


    Und seit bitte nicht so streng ich lerne ja noch :)