[Source] Trade Block System

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Source] Trade Block System

      We von euch auf dem Server das Traden blocken will, kann das nutzen, wer damit was anfangen kann Hefe fun =)

      Quellcode

      1. WORLD SERVER:
      2. --- README ---
      3. ITS NOT TESTED ! BUT IT MUST STILL WORK
      4. (C) CoReX & Sedrika
      5. NO_MEMBER_TRADE ---> No Users can Trade
      6. NO_TEAM_TRADE ---> No Helper's GM's or Operator's can trade
      7. NO_ADMIN_TRADE ---> No Admins can Trade
      8. --- BUILD LOG ---
      9. Build: 1 succeeded, 0 failed, 0 skipped
      10. --- WorldServer.ini ---
      11. NO_MEMBER_TRADE
      12. NO_TEAM_TRADE
      13. NO_ADMIN_TRADE
      14. --- VersionCommon.h ---
      15. #define __NO_TRADE
      16. --- DpSrvr.cpp ---
      17. void CDPSrvr::OnTrade( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
      18. {
      19. OBJID objidTrader;
      20. ar >> objidTrader;
      21. CWorld* pWorld;
      22. CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
      23. if( IsValidObj( pUser ) && ( pWorld = pUser->GetWorld() ) && pUser->m_vtInfo.GetOther() == NULL )
      24. {
      25. CMover* pTrader = prj.GetMover( objidTrader );
      26. if( IsValidObj( pTrader ) && pTrader->GetWorld() && pTrader->m_vtInfo.GetOther() == NULL )
      27. {
      28. if( pTrader->IsPlayer() ) // pc
      29. {
      30. #ifdef __NO_TRADE
      31. if(g_eLocal.GetState(EVE_NO_MEMBER_TRADE))
      32. {
      33. if( pUser->m_dwAuthorization == AUTH_GENERAL || pTrader->m_dwAuthorization == AUTH_GENERAL)
      34. {
      35. pUser->AddText("Trade wurde abgeschaltet!");
      36. return;
      37. }
      38. else if( pUser->m_dwAuthorization == AUTH_OBSERVER || pTrader->m_dwAuthorization == AUTH_OBSERVER)
      39. {
      40. pUser->AddText("Trade wurde abgeschaltet!");
      41. return;
      42. }
      43. else if( pUser->m_dwAuthorization == AUTH_LOGCHATTING || pTrader->m_dwAuthorization == AUTH_LOGCHATTING)
      44. {
      45. pUser->AddText("Trade wurde abgeschaltet!");
      46. return;
      47. }
      48. else if( pUser->m_dwAuthorization == AUTH_JOURNALIST || pTrader->m_dwAuthorization == AUTH_JOURNALIST)
      49. {
      50. pUser->AddText("Trade wurde abgeschaltet!");
      51. return;
      52. }
      53. }
      54. if(g_eLocal.GetState(EVE_NO_TEAM_TRADE))
      55. {
      56. if( pUser->m_dwAuthorization == AUTH_HELPER || pTrader->m_dwAuthorization == AUTH_HELPER)
      57. {
      58. pUser->AddText("Gamemasters or Administrators can't trade!");
      59. return;
      60. }
      61. else if( pUser->m_dwAuthorization == AUTH_GAMEMASTER || pTrader->m_dwAuthorization == AUTH_GAMEMASTER)
      62. {
      63. pUser->AddText("Gamemasters or Administrators can't trade!");
      64. return;
      65. }
      66. else if( pUser->m_dwAuthorization == AUTH_GAMEMASTER2 || pTrader->m_dwAuthorization == AUTH_GAMEMASTER2)
      67. {
      68. pUser->AddText("Gamemasters or Administrators can't trade!");
      69. return;
      70. }
      71. else if( pUser->m_dwAuthorization == AUTH_GAMEMASTER3 || pTrader->m_dwAuthorization == AUTH_GAMEMASTER3)
      72. {
      73. pUser->AddText("Gamemasters or Administrators can't trade!");
      74. return;
      75. }
      76. else if( pUser->m_dwAuthorization == AUTH_OPERATOR || pTrader->m_dwAuthorization == AUTH_OPERATOR)
      77. {
      78. pUser->AddText("Gamemasters or Administrators can't trade!");
      79. return;
      80. }
      81. }
      82. if(g_eLocal.GetState(EVE_NO_ADMIN_TRADE))
      83. {
      84. if( pUser->m_dwAuthorization == AUTH_ADMINISTRATOR || pTrader->m_dwAuthorization == AUTH_ADMINISTRATOR )
      85. {
      86. pUser->AddText("Administrators can't trade!");
      87. return;
      88. }
      89. }
      90. #endif
      91. #if __VER >= 8 // 8Â÷ µà¾ó 061226 ma
      92. if( 0 < pUser->m_nDuel || 0 < pTrader->m_nDuel )
      93. {
      94. return;
      95. }
      96. #endif // __VER >= 8 // 8Â÷ µà¾ó 061226 ma
      97. //°³ÀλóÁ¡ Áß¿¡´Â °Å·¡ ºÒ°¡
      98. if( pUser->m_vtInfo.VendorIsVendor() || pUser->m_vtInfo.IsVendorOpen() ||
      99. pTrader->m_vtInfo.VendorIsVendor() || pTrader->m_vtInfo.IsVendorOpen() )
      100. {
      101. return; //
      102. }
      103. #ifdef __S_SERVER_UNIFY
      104. if( pUser->m_bAllAction == FALSE || ((CUser*)pTrader)->m_bAllAction == FALSE )
      105. return;
      106. #endif // __S_SERVER_UNIFY
      107. if( pUser->m_bBank || pTrader->m_bBank )
      108. {
      109. pUser->AddDefinedText( TID_GAME_TRADELIMITPC, "" );
      110. return; //
      111. }
      112. if( pUser->m_bGuildBank || pTrader->m_bGuildBank )
      113. {
      114. pUser->AddDefinedText( TID_GAME_TRADELIMITPC, "" );
      115. return; //
      116. }
      117. pUser->m_vtInfo.SetOther( pTrader );
      118. pTrader->m_vtInfo.SetOther( pUser );
      119. pUser->AddTrade( (CUser*)pTrader, pUser->m_idPlayer );
      120. ( (CUser*)pTrader )->AddTrade( pUser, pUser->m_idPlayer );
      121. }
      122. }
      123. }
      124. }
      125. --- WorldServer.cpp ---
      126. BOOL Script( LPCSTR lpszFileName )
      127. {
      128. g_eLocal.SetState( EVE_RESPAWN, 1 );
      129. CScanner s;
      130. if( s.Load( lpszFileName ) == FALSE)
      131. {
      132. Error("Fail to open file - %s", lpszFileName );
      133. return FALSE;
      134. }
      135. s.GetToken();
      136. while( s.tok != FINISHED )
      137. {
      138. if( s.Token == "ResourceFolder" )
      139. {
      140. s.GetToken();
      141. if( !SetCurrentDirectory( s.Token ) )
      142. {
      143. Error( "Folder not found, %s", s.Token );
      144. return FALSE;
      145. }
      146. }
      147. else if( s.Token == "Key" )
      148. {
      149. g_uKey = (DWORD)s.GetNumber();
      150. #ifdef __S8_SERVER_PORT
      151. g_uIdofMulti = g_uKey % 100;
      152. #else // __S8_SERVER_PORT
      153. g_uIdofMulti = g_uKey / 100;
      154. #endif // __S8_SERVER_PORT
      155. }
      156. else if( s.Token == "Core" )
      157. {
      158. s.GetToken();
      159. strcpy( g_szCoreAddr, s.Token );
      160. }
      161. else if( s.Token == "DB" )
      162. {
      163. s.GetToken();
      164. strcpy( g_szDBAddr, s.Token );
      165. }
      166. else if( s.Token == "Account" )
      167. {
      168. s.GetToken();
      169. /*
      170. #ifdef __GIFTBOX0213
      171. lstrcpy( s_szAccountAddr, s.Token );
      172. #endif // __GIFTBOX0213
      173. */
      174. }
      175. else if( s.Token == "Heartbeat" )
      176. {
      177. s.GetToken();
      178. strcpy( g_sHeartbeat, s.Token );
      179. }
      180. else if( s.Token == "18" )
      181. {
      182. g_eLocal.SetState( EVE_18, 1 ); // 18¼¼ ¼*¹ö
      183. }
      184. else if( s.Token == "PK" )
      185. {
      186. g_eLocal.SetState( EVE_PK, 1 );
      187. }
      188. else if( s.Token == "PKCOST" )
      189. {
      190. g_eLocal.SetState( EVE_PKCOST, 1 );
      191. }
      192. else if( s.Token == "STEAL" )
      193. {
      194. g_eLocal.SetState( EVE_STEAL, 1 );
      195. }
      196. else if (s.Token == "GUILDBANK")
      197. {
      198. g_eLocal.SetState( ENABLE_GUILD_INVENTORY, 1 );
      199. }
      200. else if( s.Token == "GUILDWAR" )
      201. {
      202. g_eLocal.SetState( EVE_GUILDWAR, 1 );
      203. }
      204. else if( s.Token == "DROPITEM_REMOVE" )
      205. {
      206. g_eLocal.SetState( EVE_DROPITEMREMOVE, 1 );
      207. }
      208. else if( s.Token == "SCHOOL" )
      209. {
      210. //g_eLocal.SetState( EVE_SCHOOL, 1 );
      211. }
      212. else if( s.Token == "GUILDCOMBAT")
      213. {
      214. g_eLocal.SetState( EVE_GUILDCOMBAT, 1 );
      215. }
      216. else if( s.Token == "WORMON" )
      217. {
      218. g_eLocal.SetState( EVE_WORMON, 1 );
      219. }
      220. else if( s.Token == "respawn" )
      221. {
      222. g_eLocal.SetState( EVE_RESPAWN, (BYTE)s.GetNumber() );
      223. }
      224. #ifdef __S_RECOMMEND_EVE
      225. else if( s.Token == "RECOMMEND" )
      226. {
      227. g_eLocal.SetState( EVE_RECOMMEND, 1 );
      228. }
      229. #endif // __S_RECOMMEND_EVE
      230. #if __VER >= 11 // __GUILD_COMBAT_1TO1
      231. else if( s.Token == "GUILDCOMBAT1TO1" )
      232. {
      233. g_eLocal.SetState( EVE_GUILDCOMBAT1TO1, 1 );
      234. }
      235. #endif // __GUILD_COMBAT_1TO1
      236. #ifdef __JEFF_11_4
      237. else if( s.Token == "ARENA" )
      238. {
      239. g_eLocal.SetState( EVE_ARENA, 1 );
      240. }
      241. #endif // __JEFF_11_4
      242. #if __VER >= 12 // __SECRET_ROOM
      243. else if( s.Token == "SECRETROOM" )
      244. {
      245. g_eLocal.SetState( EVE_SECRETROOM, 1 );
      246. }
      247. #endif // __SECRET_ROOM
      248. #if __VER >= 13 // __RAINBOW_RACE
      249. else if( s.Token == "RAINBOWRACE" )
      250. {
      251. g_eLocal.SetState( EVE_RAINBOWRACE, 1 );
      252. }
      253. #endif // __RAINBOW_RACE
      254. #ifdef __NO_TRADE
      255. else if ( s.Token == "NO_MEMBER_TRADE")
      256. {
      257. g_eLocal.SetState( EVE_NO_MEMBER_TRADE, 1 );
      258. }
      259. else if ( s.Token == "NO_TEAM_TRADE")
      260. {
      261. g_eLocal.SetState( EVE_NO_TEAM_TRADE, 1 );
      262. }
      263. else if ( s.Token == "NO_ADMIN_TRADE")
      264. {
      265. g_eLocal.SetState( EVE_NO_ADMIN_TRADE, 1 );
      266. }
      267. #endif
      268. s.GetToken();
      269. }
      270. return TRUE;
      271. }
      272. --- flyffevent.h ---
      273. enum
      274. {
      275. EVE_0401A, EVE_18, ENABLE_GUILD_INVENTORY,
      276. EVE_GUILDWAR,
      277. EVE_SCHOOL, EVE_SCHOOL_BATTLE,
      278. EVE_NOFLYMONSTER, // ºñÇà ¸ó½ºÅÍ Á¦°Å
      279. EVE_NODARKON, // ´ÙÄÜ Á¦°Å
      280. EVE_NOGUILD, // ±æµå Á¦°Å
      281. EVE_WORMON,
      282. EVE_RESPAWN,
      283. EVE_PK,
      284. EVE_PKCOST,
      285. EVE_STEAL,
      286. EVE_EVENT0913,
      287. EVE_GUILDCOMBAT,
      288. EVE_DROPITEMREMOVE,
      289. EVE_EVENT1206,
      290. EVE_EVENT1219,
      291. EVE_EVENT0127,
      292. EVE_EVENT0214,
      293. #ifdef __S_RECOMMEND_EVE
      294. EVE_RECOMMEND,
      295. #endif // __S_RECOMMEND_EVE
      296. #if __VER >= 11 // __GUILD_COMBAT_1TO1
      297. EVE_GUILDCOMBAT1TO1,
      298. #endif // __GUILD_COMBAT_1TO1
      299. #ifdef __JEFF_11_4
      300. EVE_ARENA,
      301. #endif // __JEFF_11_4
      302. EVE_SECRETROOM, // 12Â÷ ºñ¹ÐÀÇ ¹æ
      303. EVE_RAINBOWRACE,
      304. #ifdef __NO_TRADE
      305. EVE_NO_MEMBER_TRADE,
      306. EVE_NO_TEAM_TRADE,
      307. EVE_NO_ADMIN_TRADE,
      308. #endif
      309. };
      Alles anzeigen
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Ridicule;225033 schrieb:

      Bald brauch man um am Source zu arbeiten auch keine Kenntnisse mehr :o

      Trotzdem netter Release, aber wenn ihr so weitermacht - macht bald mein kleiner Bruder von 9 nen Copy&Paste Source, und machtn Server draus ^^


      dann kopier den code ma wenn du schon änderungen hast :P
      wirst die sachen "ausfiltern" müssen um net eigene sachen zu schrotten. Von daher nich ganz C/P

      @topic:
      kenn icke scho aus itzekuh^^
      greetz
    • Cross;225034 schrieb:

      dann kopier den code ma wenn du schon änderungen hast :P
      wirst die sachen "ausfiltern" müssen um net eigene sachen zu schrotten. Von daher nich ganz C/P

      @topic:
      kenn icke scho aus itzekuh^^
      greetz


      War auch mehr das stilistische Mittel, einer bewussten Übertreibung *wey der Deutsch Lk lässt doch mal Grüßen xD*

      ~> Im Ernst, wenn alles Released wird - brauchste bald echt nix mehr können ;)
    • Der Leistungsaufwand war sicher ziemlich gering.
      Ich danke dir für den Beitrag, dennoch ist man von die soweit
      ich mich nicht irre andere Qualität gewohnt.

      Da ist wirklich alles nur von oben drüber Kopiert und 2 Values bzw den
      Token Namen geändert.

      Nungut tzd vielen dank.#

      Der Übersicht halber, würde ich dir auch empfehlen das bei Pastebin o.ä zu pasten.
    • cletite;225040 schrieb:

      Script ist echt sehr schlecht gecodet. Warum haste nicht einfach :

      if( pUser->m_dwAuthorization >= AUTH_GENERAL )
      {
      ...
      }

      gemacht ?


      Ich bzw. CoReX wollten jede klasse einzeln festsetzen, zudem ist es ja eingeteilt in 3 stufen des blockens.

      Synaptic;225049 schrieb:

      Der Leistungsaufwand war sicher ziemlich gering.
      Ich danke dir für den Beitrag, dennoch ist man von die soweit
      ich mich nicht irre andere Qualität gewohnt.

      Da ist wirklich alles nur von oben drüber Kopiert und 2 Values bzw den
      Token Namen geändert.

      Nungut tzd vielen dank.#

      Der Übersicht halber, würde ich dir auch empfehlen das bei Pastebin o.ä zu pasten.


      Was meinste mit besserer Qualität ? Manchmal ist das einfache auch das effektivste.
    • Synaptic;225057 schrieb:

      Soweit ich weiß sind Cases um einiges Schneller, kann mich aber auch irren.


      Mööööp. Case sind zwar schöner aber nicht schneller! Case wird beim übersetzen auch wie eine IF-Abfrage behandelt.
      switch(lol) case 1: case2:

      ist wie
      if(lol == 1)
      if(lol == 2)


      Zu dem Code:

      Das ist mal ein richtiger big fail0r fail! Das ganze könnte man mit 2-3 If abfragen machen. Aber nein du musst da ja 1.343.445.324,23 If Abfragen einbauen <.<