@Andy Kann man sich die Insel auch mal Ingame anschauen das man sich ein besseres Bild machen kann um Idden zu bekommen für dein Projekt?
Beiträge von Markuslobicher
-
-
Guten Abend.
Mir ist aufgefallen das ich mit dem Samp Map Construktion in keine Interiors mehr rein fliegen kann.
Ist das ein Fehler von mein Samp oder vom Map-Editor? -
Ich werde direkt unter die Map gesetzt
-
Guten Abend
Habe mir grade ein Map geholt für ein Interior es klappt alles zwar bis dahin.
Sobald man aber das Interior betretet fällt man aus dem Interior raus.
Code sieht so aus:
enum:
Codeenum buildingsEnum{ Float:b_x, Float:b_y, Float:b_z, Float:b_ix, Float:b_iy, Float:b_iz, b_interior, b_shopname[15] }
new binfo:
Codenew bInfo[][buildingsEnum] = { {1367.6649,-1279.9034,13.5469,316.3075,-169.0963,999.5938,6,"AMMUN5"},//AMMUN5 {1726.7433,-1636.3558,20.2171,246.2245,108.1726,1003.2188,10,""},//Stadthalle {1555.1696,-1675.4641,16.1953,288.7535,167.3038,1007.1719,10,""},//LV police HQ {1434.3381,-968.2870,37.3883,1454.2911,-990.6805,2057.5977,0,""} };
OnGameModeInit:
Codefor(new i=0; i<sizeof(bInfo); i++) { CreatePickup(1239,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]); Create3DTextLabel("Zum betretten des Gebäudes nutzen sie bitte /reingehen",duneklhelblau,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],10,0,1); }
Gebäude reingehen und verlassen:Code
Alles anzeigenocmd:reingehen(playerid,params[]) { for(new i=0; i<sizeof(bInfo); i++) { if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue; SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]); SetPlayerInterior(playerid,bInfo[i][b_interior]); SetPlayerVirtualWorld(playerid,i); SetPlayerShopName(playerid,bInfo[i][b_shopname]); return 1; } return 1; } ocmd:verlassen(playerid,params[]) { for(new i=0; i<sizeof(bInfo); i++) { if(GetPlayerVirtualWorld(playerid)!=i)continue; if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))continue; SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]); SetPlayerInterior(playerid,0); SetPlayerVirtualWorld(playerid,0); return 1; } return 1; }
Die Map ist von @ReborN
Link zu der Map:Folgende Koordinaten sind für Reingehen und Rausgehen:
Ich frage mich nur warum ich durch die Welt falle
-
Mir ist was an der map aufgefallen @ReborN Die Monitore das Bild da drin ist über denn rant geraten ist das mit absicht ?
-
es lag einfach nur daran das ich sachen drin hatte die nicht gepasst haben. Den Code den ich über dir gepostet habe @Jeffry so klappt es mit mein Bot
-
ich habe bei OnPlayerConnect folgendes stehen: So geht es auch
Code
Alles anzeigenpublic OnPlayerConnect(playerid) { if(IsPlayerNPC(playerid)) return 1; new nachricht[128]; format(nachricht,sizeof(nachricht),"Du bist mit der ID %i verbunden.",playerid); SendClientMessage(playerid,rot,nachricht); //Login/Register: new name[MAX_PLAYER_NAME],query[128]; GetPlayerName(playerid,name,sizeof(name)); format(query,sizeof(query),"SELECT id FROM user WHERE username='%s' ",name); mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid); SendClientMessage(playerid,grün,"Willkommen auf Reallife Version 0.4! Wir wünschen euch ein angenehmen Spiel spaß bei uns!"); //textdraws anzeigen: TextDrawShowForPlayer(playerid,Text:uhrzeitLabel); TextDrawShowForAll(Jahr); SetPlayerColor(playerid,weiß); sInfo[playerid][level]=1; SetPlayerScore(playerid,sInfo[playerid][level]); { new botname[MAX_PLAYER_NAME]; GetPlayerName(playerid,botname,sizeof(botname)); if(!strcmp(botname,"Busbot",true)) { return 1; } } return 1; }
-
Dann habe ich was für dich:
Dialgo id ändernDefine:
Fahrzeuge ohne Motor:
Befehl:
Codeocmd:autobordcomputer(playerid,params) { if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER) return SendClientMessage(playerid, rot, "Das kann nur der Fahrer!"); ShowPlayerDialog(playerid,DIALOG_Autosystem,DIALOG_STYLE_TABLIST, "Autobordcomputer","Motor\tstarten\tauschalten\nlicht\tanschalten\tausschalten\ntüren\töffnen\tschliessen\nAutoparken\tparken","benutzen","abbrechen"); SendClientMessage(playerid,grün,"Sie haben den Bordcomputer Ihres Fahrzeuges aufgerufen!"); return 1; }
OnPlayerStateChange: (AutohausCars-system entfernen)
Code
Alles anzeigenpublic OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate==PLAYER_STATE_DRIVER) { new vID=GetPlayerVehicleID(playerid); new vModel=GetVehicleModel(vID); for(new i=0; i<sizeof(autosOhneMotor); i++) { if(autosOhneMotor[i]!=vModel)continue; new motor, licht, alarm, tueren, bonnet, boot, objective; //Motor an/ausschalten: GetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective); SetVehicleParamsEx(vID,1,licht,alarm,tueren,bonnet,boot,objective); } for(new i=0; i<sizeof(ahCars); i++) { if(ahCars[i][id_x] !=vID)continue; //Verkaufsprozess: SetPVarInt(playerid,"buyCarID",i); new string[500]; format(string,sizeof(string),"Möchten sie das Fahrzeug für %i$ kaufen?",ahCars[i][c_preis]); ShowPlayerDialog(playerid,DIALOG_AUTOHAUS,DIALOG_STYLE_MSGBOX,"Autoverkauf",string,"Kaufen","Nicht kaufen"); break; } return 1; } return 1; }
OnDialogResponse:(Code an dein Script anpassen!)
Code
Alles anzeigenif(dialogid== DIALOG_Autosystem) { if(response) { if(listitem==0) { if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,rot,"Sie sind nicht im Fahrzeug"); //motorfunktion if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER) { SendClientMessage(playerid,blau,"Sie sind nicht der Fahrer dieses Fahrzeuges"); } new vID=GetPlayerVehicleID(playerid), motor, licht, alarm, tueren, bonnet, boot, objective; //Motor an/ausschalten: GetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective); if(motor==1) motor = 0; else motor = 1; SetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective); SendClientMessage(playerid,blau,"Sie haben den Motor Ihres Fahrzeuges angeschlaten/ausgeschalten!"); } } if(listitem==1) { if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,rot,"Sie sind nicht im Fahrzeug"); if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER) return SendClientMessage(playerid,blau,"Sie befinden sich nicht in Ihr Fahrzeug"); new vID=GetPlayerVehicleID(playerid), motor, licht, alarm, tueren, bonnet, boot, objective; //licht an/ausschalten: GetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective); if(licht==1){ licht = 0; } else { licht = 1; } SetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective); SendClientMessage(playerid,blau,"Du hast das Licht an eingeschalten/ausgeschalten"); } if(listitem==2) { new motor, licht, alarm, tueren, bonnet, boot, objective; new vID = INVALID_VEHICLE_ID; if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { new Float:Pos[3]; for(new i=0;i<MAX_VEHICLES; i++) { GetVehiclePos(i, Pos[0], Pos[1], Pos[2]); if(IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2])) { vID = i; break; } } } else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { vID = GetPlayerVehicleID(playerid); } if(vID == INVALID_VEHICLE_ID) { SendClientMessage(playerid, 0xFF0000FF, "Error: Nicht nahe oder in einem Fahrzeug."); } //abschliessen: GetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective); if(tueren==1) { tueren = 0; } else { tueren = 1; } SetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective); SendClientMessage(playerid,blau,"Sie haben die Türen Ihres Fahrzeuges abgeschlossen/aufgeschlossen!"); } if(listitem==3) { new vID = GetPlayerVehicleID(playerid); if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, hellgrün, "Du bist in kein Auto!"); for (new i = 0; i < sizeof(aInfo); i++) { if(vID == aInfo[i] [id_x]) { if(aInfo[i][besitzer] == sInfo[playerid][db_id]) { new query[256]; GetVehiclePos(vID, aInfo[i][c_x],aInfo[i][c_y],aInfo[i][c_z]); GetVehicleZAngle(vID,aInfo[i][c_r]); format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",aInfo[i] [c_x],aInfo[i] [c_y],aInfo[i] [c_z],aInfo[i] [c_r],aInfo[i] [db_id]); mysql_function_query(dbhandle,query,false," "," "); SendClientMessage(playerid, hellgrün, "Du hast dein Auto geparkt."); return 1; } break; } } return SendClientMessage(playerid, hellgrün, "Sie sitzen nicht in Ihr Fahrze!"); } } return 1;
Mehr kann ich nicht machen @ShadowSpark_LP
-
was hast du zu letzt an dein Script gemacht?
-
Ohne die Serverlogs kann man nicht helfen.
-
Ich glaube nicht das er eine komplett neue Funktion gemacht hat mit den Paramenter für die Reichweite,Spielerid,X,Y,Z Koordinaten gemacht hat. Dafür hätte er Den Samp-Server komplett zer legen müssen den denn Haupt-Code und es so eingefügt haben damit es für alle Spieler sichtbar wäre
-
-
Habe Folgende Fehler nun drin:
Csamplernen.p(470) : error 035: argument type mismatch (argument 1) samplernen.p(473) : error 017: undefined symbol "gPlayerLogged" samplernen.p(473 -- 474) : warning 215: expression has no effect samplernen.p(474) : error 001: expected token: ";", but found "}" samplernen.p(523 -- 524) : error 029: invalid expression, assumed zero samplernen.p(529) : error 017: undefined symbol "car_Bubot" samplernen.p(324) : warning 204: symbol is assigned a value that is never used: "car_Busbot"
Mein Pawn Code sieht so aus:
OnGameModeInit: (achtung viel drin)
Code
Alles anzeigenpublic OnGameModeInit() { AddPlayerClass(115,329.0244,-1513.3033,36.0391,225.8344,0,0,0,0,0,0); // spawn SetGameModeText("Reallife Version 0.4"); DisableInteriorEnterExits(); EnableStuntBonusForAll(0); ManualVehicleEngineAndLights(); SendRconCommand("mapname <Las Santos>"); //mysql verbindung: dbhandle = mysql_connect(db_host,db_user,db_db,db_pass); print("Mysql wurde verbunden!"); mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG); AddStaticVehicleEx(538, 1870.9891, -1953.7533, 15.3025, -90.0000, -1, -1,0); //Gebäudeladen: for(new i=0; i<sizeof(bInfo); i++) { CreatePickup(1239,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]); Create3DTextLabel("Zum betretten des Gebäudes nutzen sie bitte /reingehen",duneklhelblau,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z],10,0,1); } CreatePickup(1239,1,1549.7753,-1810.1750,26.2171); Create3DTextLabel("/transporttresorraub um die Transport GmbH auszurauben!",grün,1549.7753,-1810.1750,26.2171,3,0,1); CreatePickup(1239,1,1866.4852,1375.1176,17.4560,0); Create3DTextLabel("Um den Beruf auszuführen tippe /Muelltransport ein.",grün,2091.5645,-2029.8954,13.5469,10,0,1); Create3DTextLabel("Um aus das Gebäude zu kommen tippe /verlassen ein",grün,288.8664,168.0153,1007.1719,10,0,1); //icon für Repair: for(new i=0; i<sizeof(repair); i++) { CreatePickup(1239,1,repair[i][r_x],repair[i][r_y],repair[i][r_z]); Create3DTextLabel("Um das Fahrzeug zu reparieren benutzen sie bitte /reparieren.\nDas Reparieren kostet dich nur 60$",duneklhelblau,repair[i][r_x],repair[i][r_y],repair[i][r_z],10,0,1); } sekunden_timer = SetTimer("sekunde",1000,true); CreatePickup(1239,1,246.4351,118.5368,1003.2188,1);//Stadtinformation Create3DTextLabel("Tippe nun /Stadtinformationen ein",grün,246.4351,118.5368,1003.2188,4,1,0); CreatePickup(1275 ,1,240.6302,112.6173,1003.2188,1);// personalausweis Create3DTextLabel("Tippe nun /Personalausweisbeantragen ein",grün,240.6302,112.6173,1003.2188,4,1,0); CreatePickup(1212,1,252.3922,117.4105,1003.2188,1);//Jobs Create3DTextLabel("Tippe nun /Arbeit ein",grün,252.3922,117.4105,1003.2188,4,1,0); //autohauserladen: for(new i=0; i<sizeof(ahCars); i++) { ahCars[i][id_x]=AddStaticVehicle(ahCars[i][model],ahCars[i][ah_x],ahCars[i][ah_y],ahCars[i][ah_z],ahCars[i][ah_r],-1,-1); } //Textdraws: uhrzeitLabel =TextDrawCreate(549.000000, 46.000000, "22:30"); TextDrawBackgroundColor (uhrzeitLabel, 255); TextDrawFont (uhrzeitLabel, 0); TextDrawLetterSize (uhrzeitLabel, 0.569999, 1.000000); TextDrawColor (uhrzeitLabel, 16711935); TextDrawSetOutline (uhrzeitLabel, 0); TextDrawSetProportional (uhrzeitLabel, 1); Jahr =TextDrawCreate(542.000000, 37.000000, "03.06.2015"); TextDrawBackgroundColor (Jahr, 255); TextDrawFont (Jahr, 1); TextDrawLetterSize (Jahr, 0.500000, 1.000000); TextDrawColor (Jahr, -16776961); TextDrawSetOutline (Jahr, 0); TextDrawSetProportional (Jahr, 1); //tresor: trsodoor = CreateObject(2634, 1551.63159, -1801.69556, 26.47590, 0.00000, 0.00000, 0.00000);//tresortür //Bots: ConnectNPC("Busbot","Busbot"); //Das erste Busbot steht für den Namen hier im Script, das 2te für den Namen der .rec Datei car_Busbot = CreateVehicle(437,1276.7120,-1379.8848,13.3639,179.8893,97,7,-1,0); return 1; }
OnPlayerConnect: (ka ob es so richtig ist!)
Code
Alles anzeigenpublic OnPlayerConnect(playerid) { if(IsPlayerNPC(playerid)) return 1; new nachricht[128]; format(nachricht,sizeof(nachricht),"Du bist mit der ID %i verbunden.",playerid); SendClientMessage(playerid,rot,nachricht); //Login/Register: new name[MAX_PLAYER_NAME],query[128]; GetPlayerName(playerid,name,sizeof(name)); format(query,sizeof(query),"SELECT id FROM user WHERE username='%s' ",name); mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid); SendClientMessage(playerid,grün,"Willkommen auf Reallife Version 0.4! Wir wünschen euch ein angenehmen Spiel spaß bei uns!"); //textdraws anzeigen: TextDrawShowForPlayer(playerid,Text:uhrzeitLabel); TextDrawShowForAll(Jahr); SetPlayerColor(playerid,weiß); sInfo[playerid][level]=1; SetPlayerScore(playerid,sInfo[playerid][level]); { new botname[MAX_PLAYER_NAME]; GetPlayerName(playerid,botname,sizeof(botname)); if(!strcmp(botname,"Busbot",true)) { ConnectNPC("BusBot") return 1; } } return 1; }
OnPlayerSpawn: (Habe das retrun 1 schon raus geholt. Falls es wer beheben kann danke)
Code
Alles anzeigenpublic OnPlayerSpawn(playerid) { if(IsPlayerNPC(playerid)) return 1 { new botname[MAX_PLAYER_NAME]; GetPlayerName(playerid,botname,sizeof(botname)); if(!strcmp(botname,"Busbot",true)) { PutPlayerInVehicle(playerid,car_Busbot,0); } } if(!isPlayerInFrakt(playerid,0)) { if(sInfo[playerid][spawnchange]==1) { new fID; fID= sInfo[playerid][fraktion]; SetPlayerPos(playerid,fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]); SetPlayerFacingAngle(playerid,fInfo[fID][f_r]); SetPlayerInterior(playerid,fInfo[fID][f_inter]); SetPlayerVirtualWorld(playerid,fInfo[fID][f_world]); SetPlayerColor(playerid,fInfo[fID][f_color]); } } SendClientMessage(playerid,rot,"/hilfe um die Befehle zu sehen!"); return 1; }
-
@Jeffry und alle anderen
Sry aber ich verstehe leider das Tutorial nicht.
Es ist für mich viel zu kompliziert erklärt worden weil es komisch aufgebaut wurde so das es meines wissen nicht gehen könnte schon alleine wegen:
Code
Alles anzeigen#define RECORDING "mynpc" //This is the filename of your recording without the extension. #define RECORDING_TYPE 1 //1 for in vehicle and 2 for on foot. #include <a_npc> main(){} public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING); #if RECORDING_TYPE == 1 public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING); public OnNPCExitVehicle() StopRecordingPlayback(); #else public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING); #endif
So kann kein Pawncode benutzt werden oder verstehe ich es falsch?
-
ich glaube aber er will das er nach dem Tutorial alles bekommt
-
Kann nicht sein. Dann hast du was falsch gemacht.
-
du musst auch in den Ordner von PawnStar rein gehen dann auf den Ordner CC und da auf den ordner Includes gehen damit alle deine Includes auch klappen können kopierst du die darein
-
@ShadowSpark_LP such mal über die Suchfunktion von diesem Forum hier nach PawnStar.
Das ist für Scripten da wird dir dein Fehler auf deutsch übersetzt und du hast sogar Extras womit du Gebiete erstellen kannst die sogar durchsichtig sind. -
@Fabi.StaR Also ich habe mir das teil herunter geladen aber da kam soviel blöder zeug mit den man garnicht haben will also ist es schon mal misst es sich zu laden.
-
Mein Code für mein NPC sieht so aus:
Ich glaube es geht aber so nicht. @Jeffry so wie alle anderen die Helfen können wäre ich sehr dankbar.
Nun zum Code:
OnGameModeInit
OnPlayerConnect:
Ich kann von OnPlayerConnect ja nicht alles Kopieren was da steht daher nur den NPC teil raus kopiert.Mehr habe ich leider nicht an Code